分类 linux相关 下的文章

针对 Ubuntu 桌面环境,目前最主流且活跃的 Clash 图形界面客户端之一是 Clash Verge Rev(它是原 Clash Verge 的社区延续版本)。

以下是它的 GitHub Releases 页面地址,你可以在这里下载适用于 Ubuntu 的安装包:

推荐的下载地址 (Clash Verge Rev)
GitHub Releases 页面:

https://github.com/clash-verge-rev/clash-verge-rev/releases
如何下载适用于 Ubuntu 的文件
在上面的 Releases 页面中,你需要找到最新版本的发布,然后在 Assets 列表中查找以下格式的文件:

.deb 文件 (Debian/Ubuntu 标准安装包,推荐)

适用于大多数 64 位 Ubuntu 系统:

Clash.Verge_X.X.X_amd64.deb

(X.X.X 是版本号)

下载后,你可以双击安装,或者使用命令安装:sudo dpkg -i Clash.Verge_X.X.X_amd64.deb

.AppImage 文件 (无需安装,直接运行)

如果你不想安装,可以选择 AppImage 文件:

Clash.Verge_X.X.X_amd64.AppImage
下载后,你需要给予执行权限才能运行:

chmod +x Clash.Verge_X.X.X_amd64.AppImage
./Clash.Verge_X.X.X_amd64.AppImage
核心/命令行版本
如果你是高级用户,希望使用纯命令行核心,可以搜索 Mihomo (原 Clash Meta) 的 GitHub 页面,下载其 Linux 可执行文件。

Mihomo (Clash Meta) GitHub 搜索关键词: MetaCubeX/mihomo

无论选择哪个版本,下载后都别忘了导入你的 Clash 配置文件(通常是 .yaml 文件) 才能正常使用。

Samba 服务器(Linux 系统中实现 SMB 共享的服务)。从 Windows 访问时提示“没有权限”,核心原因是 Samba 服务配置、Linux 系统权限、Windows 访问设置三者中存在权限不匹配,具体排查方向如下:

一、优先排查 Samba 服务自身配置(最常见原因)

Samba 共享权限需在  /etc/samba/smb.conf  配置文件中明确设置,若未允许访问或权限不足,会直接导致 Windows 提示无权限。

1. 检查共享目录的 Samba 权限配置

打开配置文件: sudo vi /etc/samba/smb.conf ,找到您设置的共享段(如  [share] ),确保包含以下关键配置(根据需求调整):

ini

[share] # 共享名称(Windows 访问时显示的名称)

path = /home/smb_share  # 实际共享的 Linux 目录路径
public = no  # 是否允许匿名访问(no=需 Samba 账号密码)
writable = yes  # 是否允许写入(yes=可读写,no=只读)
valid users = smbuser  # 允许访问的 Samba 账号(需提前创建)
create mask = 0644  # 新建文件的权限
directory mask = 0755  # 新建目录的权限

 

  • 若  public = yes  仍无法访问,需检查是否漏加  guest ok = yes (允许匿名)。
  • 配置后需重启 Samba 生效: sudo systemctl restart smb nmb 。

    2. 确认 Samba 账号已创建并生效

    Samba 权限依赖独立的“Samba 账号”(与 Linux 系统账号可同名,但密码独立),若未创建或密码错误,会提示无权限:

  • 创建 Samba 账号(需先存在同名 Linux 账号,如  smbuser ):
     sudo smbpasswd -a smbuser (按提示输入并确认密码)。
  • 检查账号是否激活: sudo pdbedit -L (列出所有有效 Samba 账号,确保目标账号在列)。

二、排查 Linux 系统目录的基础权限(易忽略)

Samba 权限生效的前提是:Linux 系统本身对“共享目录”的权限,允许 Samba 服务(或 Samba 账号)访问。即使 Samba 配置允许,Linux 目录权限不足仍会阻断访问。

1. 查看并调整共享目录的 Linux 权限

执行命令查看权限(将  /home/smb_share  替换为您的共享目录):
 ls -ld /home/smb_share 

  • 要求:目录的“所有者”或“所属组”需包含 Samba 账号(如  smbuser ),且至少具备  r-x  权限(读+执行,执行权限是进入目录的前提)。
  • 若权限不足,执行命令调整(示例:给所属组添加  r-x  权限):
     sudo chmod g+r-x /home/smb_share 
  • 若需允许写入,需添加  w  权限: sudo chmod g+w /home/smb_share 。

    2. 检查 SELinux 限制(CentOS/RHEL 特有)

    Linux 系统的 SELinux 安全机制可能默认阻止 Samba 访问目录,需手动允许:

  • 临时关闭 SELinux 测试(若测试后可访问,说明是 SELinux 问题):
     sudo setenforce 0 (重启后失效,仅用于测试)。
  • 永久允许 Samba 访问目录(推荐):
     sudo semanage fcontext -a -t samba_share_t "/home/smb_share(/.*)?" 
     sudo restorecon -Rv /home/smb_share (刷新 SELinux 上下文)。

三、排查 Windows 端访问设置(细节问题)

1. 确认访问方式正确

Windows 访问 Samba 共享的路径格式: \Samba服务器IP\共享名称 (如  \192.168.1.100\share ),避免输错 IP 或共享名称。

2. 验证登录账号密码正确

当 Windows 弹出“输入网络凭据”时,需输入 Samba 账号和密码(不是 Linux 系统账号密码,也不是 Windows 本地账号),且注意区分大小写。

3. 清除旧的错误凭据(若曾输错过密码)

若之前保存过错误的账号密码,Windows 会重复使用导致权限失败,需清除:

  • 打开 Windows “控制面板 → 用户账户 → 管理你的凭据 → Windows 凭据”。
  • 找到对应 Samba 服务器(如  192.168.1.100 )的凭据,点击“删除”,重新访问时输入正确账号密码。

四、快速排查流程(按顺序操作)

1. 先测试 Samba 服务是否正常:在 Linux 本地执行  smbclient -L //localhost/share -U smbuser (输入密码后能看到共享列表,说明 Samba 服务和账号正常)。

2. 再检查 Linux 目录权限: ls -ld /home/smb_share  确保 Samba 账号有访问权限。

3. 最后在 Windows 端清除旧凭据,重新用  \IP\共享名  访问,输入正确 Samba 账号密码。

按以上步骤排查,90% 以上的“权限问题”可解决,核心是确保 Samba 配置权限、Linux 目录权限、Windows 登录凭据三者一致且有效。

在 Ubuntu 系统中安装 KVM 需先确认硬件支持,再通过命令行完成安装,具体步骤如下:

1. 确认硬件虚拟化支持

首先检查 CPU 是否开启虚拟化(Intel-VT 或 AMD-V),在终端执行以下命令:

bash

grep -Eoc '(vmx|svm)' /proc/cpuinfo
 

  • 输出 大于 0:支持虚拟化,继续下一步;
  • 输出 0:需重启电脑进入 BIOS/UEFI,手动开启虚拟化功能。

2. 安装 KVM 核心组件

更新系统软件包后,安装 KVM 及相关工具( qemu-kvm  为核心虚拟化模块, libvirt-daemon  用于管理虚拟机, virt-manager  为图形化管理工具):

bash

1. 更新软件源

sudo apt update

2. 安装 KVM 组件

sudo apt update

sudo apt install -y \
    qemu-kvm \
    libvirt-daemon-system \
    libvirt-clients \
    virtinst \
    bridge-utils \
    cpu-checker

 

如果你有桌面环境,可以再安装:

sudo apt install -y virt-manager

检查 KVM:

lsmod | grep kvm

正常 Intel CPU 一般看到:

kvm_intel
kvm

AMD 则通常是:

kvm_amd
kvm

检查:

sudo kvm-ok

如果没有 kvm-ok:

sudo apt install -y cpu-checker
sudo kvm-ok

正常:

INFO: /dev/kvm exists
KVM acceleration can be used 

3. 将当前用户添加到相关组

避免每次操作都需输入  sudo ,将用户加入  kvm  和  libvirt  组(需注销或重启生效):

bash
  
sudo adduser $USER kvm
sudo adduser $USER libvirt
 

4. 验证安装

执行以下命令,若输出  running  则表示 KVM 服务已正常启动:

bash
  
sudo systemctl status libvirtd
 

5. 启动 KVM 管理工具

  • 图形化界面:在 Ubuntu 应用菜单中搜索  Virtual Machine Manager (或终端执行  virt-manager );
  • 命令行:可通过  virsh  命令管理虚拟机(如  virsh list --all  查看虚拟机列表)。

6、配置你的 br0

先执行下面这 4 个命令:

ip -br addr
ip route
ls -l /etc/netplan/
cat /etc/netplan/*.yaml

获取相关的网络配置信息
image.png

先备份 Netplan

非常建议:

sudo cp /etc/netplan/50-cloud-init.yaml \
        /etc/netplan/50-cloud-init.yaml.bak

然后编辑:

sudo nano /etc/netplan/50-cloud-init.yaml

把现在:

network:
  version: 2
  ethernets:
    eno2:
      dhcp4: true

改成:

network:
  version: 2

  ethernets:
    eno2:
      dhcp4: false

  bridges:
    br0:
      interfaces:
      - enp3s0
    addresses:
    - 192.168.1.100/24
    routes:
    - to: default
      via: 192.168.1.1
    nameservers:
      addresses:
      - 192.168.1.1
      - 8.8.8.8
    parameters:
      stp: false
      forward-delay: 0

保存:

⚠️ 不要直接 netplan apply

因为你现在很可能是 SSH 远程登录。
先去掉

parameters:
  stp: false
  forward-delay: 0

否则sudo netplan try执行不成功
先执行:

sudo netplan generate

如果没有任何错误,再执行:

sudo netplan try

这是非常重要的一步。

netplan try 会临时应用新的网络配置。

如果网络正常,确认配置。

如果网络真的断了,没有确认,Netplan 会自动回滚。

检查ip -br addr

应用更改:sudo netplan apply

在使用 VirtualBox 时,如果遇到无法启用 AMD-V(AMD虚拟化技术)扩展的问题,可能是因为与 KVM 内核模块冲突。AMD-V 是 AMD处理器上的一个硬件特性,用于提高虚拟化性能。而 KVM 是 Linux 下的一个开源虚拟化模块,它允许在 Linux 上运行虚拟化技术。

要解决这个问题,你可以尝试以下几种方法:

1. 禁用 KVM 内核模块

你可以尝试禁用 KVM 内核模块,这样 AMD-V 就可以被启用。以下是操作步骤:

查看当前加载的模块:

打开终端,输入以下命令来查看当前加载的内核模块:

lsmod | grep kvm

临时禁用 KVM:

你可以通过重新加载 VirtualBox 的内核模块来暂时禁用 KVM。首先卸载 VirtualBox 的内核模块,然后重新加载它们:

sudo modprobe -r kvm_amd # 如果你的处理器是 Intel 处理器,则使用 kvm_intel
sudo modprobe -r kvm # 卸载 kvm 模块
sudo modprobe kvm # 重新加载 kvm 模块

永久禁用 KVM:

如果你希望永久禁用 KVM,可以编辑 /etc/modprobe.d/blacklist.conf 文件(如果不存在,则创建此文件),并添加以下行:

blacklist kvm_amd
blacklist kvm

然后重新启动系统。

2. 检查 BIOS/UEFI 设置

确保在 BIOS/UEFI 设置中启用了 AMD-V(或 Intel VT-x,取决于你的处理器类型)。有时候,即使 Linux 禁用了 KVM,BIOS/UEFI 设置中也可能需要手动启用这些虚拟化技术。

重启你的电脑并进入 BIOS/UEFI 设置。

在设置中找到“AMD Virtualization”(或“Intel Virtual Technology”)选项,并确保它被启用。

保存设置并重启电脑。

3. 更新 VirtualBox 和内核

确保你的 VirtualBox 和 Linux 内核都是最新版本。有时候,软件更新可以解决兼容性问题或已知的bug。

sudo apt update && sudo apt upgrade # 对于基于 Debian 的系统
sudo yum update # 对于基于 RHEL 的系统

更新 VirtualBox:

sudo apt install virtualbox # Debian/Ubuntu
sudo yum install VirtualBox # CentOS/RHEL

4. 检查 VirtualBox 配置文件

检查 VirtualBox 的配置文件,确保没有错误的设置阻止了 AMD-V 的启用。你可以尝试重置 VirtualBox 的网络配置或重新安装 VirtualBox。

5. 使用命令行选项启动 VirtualBox

在启动 VirtualBox 时,使用命令行选项来尝试解决问题:

VBoxManage setextradata global GUI/SuppressMessages dialogID # 根据提示信息具体操作,例如禁用某些警告或错误信息。

通过上述方法,你应该能够解决 VirtualBox 无法启用 AMD-V 的问题。如果问题仍然存在,可能需要查看更详细的系统日志或联系技术支持获取进一步帮助。

要让 vncserver 服务在 Armbian 启动时自动运行,最推荐和最现代的方法是创建一个 systemd 服务单元文件。Systemd 是大多数现代 Linux 发行版(包括 Armbian 所基于的 Debian/Ubuntu)使用的初始化系统。

以下是详细步骤:

1. 创建 VNC Systemd 服务文件

你需要为每个 VNC 用户创建一个服务文件。假设你希望 VNC 服务以用户 your_username 运行,并且在显示 :1 上。

打开终端或通过 SSH 连接到你的 Armbian 设备。

创建服务文件:
使用 sudo 和文本编辑器(如 nano)创建一个新的 systemd 服务文件。文件名通常是 vncserver@.service,其中 @ 符号表示这是一个模板服务,可以为不同的用户或显示号实例化。

Bash

sudo nano /etc/systemd/system/vncserver@.service

添加服务内容:
将以下内容粘贴到文件中。请务必将 User=your_username 替换为你实际的用户名,并将 ExecStart 和 ExecStop 中的 your_username 替换为你的用户名。

Ini, TOML

[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target

[Service]
Type=forking
User=%i
# PIDFile=/home/%i/.vnc/%H%i.pid # 某些版本可能需要,但通常不必要

# Customize the following line to fit your needs
# For example, 1280x800 resolution and 24-bit color depth
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

User=%i: %i 是 systemd 模板服务中的一个占位符,它会在你启用服务时被替换为实例名。例如,如果你启用 vncserver@1.service,那么 %i 就会变成 1。然而,对于 VNC 服务,我们通常希望它以特定用户身份运行,所以这里我们直接指定 User=。

ExecStart: 启动 VNC 服务器的命令。

-depth 24: 设置颜色深度为 24 位。

-geometry 1280x800: 设置 VNC 会话的分辨率。你可以根据需要修改。

:%i: 这是 VNC 的显示号。当你启用服务时,例如 vncserver@1.service,%i 会被替换为 1,表示 VNC 会话将在显示 :1 上运行。

ExecStop: 停止 VNC 服务器的命令。

保存并关闭文件(在 nano 中按 Ctrl+O,回车,然后 Ctrl+X)。

2. 重载 systemd 配置

创建或修改服务文件后,需要让 systemd 重新加载其配置:

Bash

sudo systemctl daemon-reload

3. 启用并启动 VNC 服务

现在,你可以启用服务,使其在每次启动时自动运行。你需要指定 VNC 会话的显示号(例如 1)作为服务实例。

启用服务:

Bash

sudo systemctl enable vncserver@1.service

这会创建一个符号链接,确保服务在系统启动时被激活。

立即启动服务:

Bash

sudo systemctl start vncserver@1.service

4. 验证服务状态

你可以检查服务是否正在运行:

Bash

sudo systemctl status vncserver@1.service

如果一切正常,你应该会看到 Active: active (running) 的输出。

5. 注意事项

用户权限: 确保 your_username 用户已经设置了 VNC 密码 (vncserver 命令会提示你设置)。这个用户也应该有权限启动 XFCE 会话。

防火墙: 如果你的 Armbian 上启用了防火墙(如 ufw),请确保 VNC 端口(默认是 5900 + 显示号,例如 :1 对应端口 5901)是开放的。

Bash

sudo ufw allow 5901/tcp

sudo ufw enable # 如果没启用过
多用户/多会话: 如果你需要为多个用户或在不同的显示号上启动 VNC 服务,只需为每个用户/显示号重复 sudo systemctl enable vncserver@X.service 和 sudo systemctl start vncserver@X.service,其中 X 是不同的显示号。

~/.vnc/xstartup 文件: 确保你之前配置的 ~/.vnc/xstartup 文件内容正确,并且有执行权限。这个文件告诉 VNC 服务器启动哪个桌面环境(例如 startxfce4 &)。

完成这些步骤后,你的 Armbian 设备在每次启动时都应该会自动启动 VNC 服务器,你就可以从 Windows 远程连接了。