· 平台部署 · 约 10 分钟

Linux 安装与自启动

在 Ubuntu、Debian、Fedora 等发行版上用 deb 或 rpm 包安装 v2rayN,处理依赖与权限,并通过桌面自启动项实现登录后自动运行。

本文速览

本文面向使用 Linux 图形桌面的 v2rayN 用户。按发行版与处理器架构选择安装包,通过包管理器处理依赖,再用普通用户完成首次连接和桌面自启动。重点区分“系统开机”与“用户登录”:这里配置的是登录图形桌面后启动客户端,不是无人登录时运行的系统服务。

先确认发行版与架构

v2rayN 是桌面客户端,负责管理节点、订阅和内核进程。deb、rpm 是软件包格式,不决定节点协议。能否使用某个 VMess 或 VLESS 节点,还取决于所选内核、传输参数与服务端配置。安装前先确认本机环境,不要用更换包格式解决协议错误。

cat /etc/os-release
uname -m
printf '桌面:%s\n会话:%s\n' "$XDG_CURRENT_DESKTOP" "$XDG_SESSION_TYPE"

Ubuntu / Debian

包格式
deb
安装工具
apt
x86_64 对应
通常标为 amd64 或 x64
aarch64 对应
通常标为 arm64

最终以 deb 包的 Architecture 字段与本机架构为准。

Fedora

包格式
rpm
安装工具
dnf
x86_64 对应
x86_64
aarch64 对应
aarch64

不要把 amd64 理解为仅适用于某个处理器品牌,它表示一种架构。

从客户端下载页选择 Linux 安装说明与对应架构。本文不写死版本号和安装包文件名,避免升级后命令指向旧文件。下面的命令按 Bash 编写,运行时输入已下载文件的真实路径;路径含空格也可使用,但输入时不要额外添加引号。

用包管理器安装 deb 或 rpm

安装本地软件包时,优先让发行版的包管理器解析依赖。Ubuntu、Debian 使用 apt install,Fedora 使用 dnf install。如果软件源不可达,依赖解析也可能失败;这时应先修复软件源网络,而不是强行忽略依赖。

  1. 确认包路径

    在文件管理器中找到下载文件,复制其完整路径。终端输入路径后,用下面的命令查看包名、版本和架构,确认文件确实对应当前发行版。

  2. 执行安装

    只执行所属发行版的命令组。阅读包管理器列出的依赖变更,再确认安装;若出现删除大量桌面组件的计划,应先取消并排查软件源混用。

  3. 首次启动

    从桌面应用菜单打开 v2rayN。安装使用管理员权限,日常运行使用普通用户,两者不要混淆。先保留窗口,确认没有内核启动错误,再设置登录自启动。

Ubuntu / Debian:安装 deb

read -r -p '输入 deb 文件完整路径:' pkg
pkg="$(realpath -- "$pkg")"
dpkg-deb -f "$pkg" Package Version Architecture
sudo apt install "$pkg"

本地绝对路径用于明确告诉 apt 安装磁盘上的文件,而不是按名称搜索软件源。如果之前使用 dpkg -i 留下了未配置的软件包,可先运行 sudo apt --fix-broken install,检查修复计划后再确认。不要用强制忽略依赖作为常规安装步骤。

Fedora:安装 rpm

read -r -p '输入 rpm 文件完整路径:' pkg
pkg="$(realpath -- "$pkg")"
rpm -qp --queryformat '%{NAME} %{VERSION}-%{RELEASE} %{ARCH}\n' "$pkg"
sudo dnf install "$pkg"

先验证连接,再设置自启动

安装成功只说明程序文件已部署。首次打开后,先添加订阅或导入节点,再选择一个节点进行连接测试。不同版本的菜单分组可能调整;常见入口是「订阅分组」→「订阅分组设置」,随后在「订阅分组」菜单中执行更新。若当前界面文字不同,以实际版本的菜单为准,不要寻找其他平台客户端的同名按钮。

127.0.0.1
本机代理测试地址
10808
下方命令的示例监听端口
15 秒
单次请求超时上限

到「设置」→「参数设置」查看本地监听端口与监听类型。这里的 10808 只是测试示例,不保证是每个版本的默认值;下面按该端口提供 SOCKS 或混合入站编写,执行前必须与实际配置核对。先检查端口监听,再绕过桌面系统代理设置做一次显式代理请求。

ss -ltnp 'sport = :10808'
curl --proxy socks5h://127.0.0.1:10808 \
  --connect-timeout 5 --max-time 15 \
  --head https://example.com/

socks5h 表示将目标域名交给代理侧处理。它能减少本次测试对应用本地解析的依赖,但不能单凭这一次请求证明整台系统的 DNS 或全部应用流量都已按预期分流。

选择登录自启动方式

桌面客户端依赖用户会话。对日常桌面使用,XDG 自启动文件比创建系统级服务更贴近需求。它在用户登录图形桌面时生效,不会让客户端在登录界面之前自动运行。以下两种方式选一种即可,避免登录后同时启动两个实例。

XDG 桌面自启动

推荐

将已安装的桌面启动文件复制到用户的 autostart 目录,保留软件包提供的启动命令、参数和图标信息。目录可直接检查,也便于撤销。

适合:需要可检查、可迁移配置的 Linux 桌面用户。

桌面设置界面

KDE Plasma 可在「系统设置」→「自动启动」→「添加」中选择「添加应用程序」并选择 v2rayN。具体分组和按钮文字随 Plasma 版本变化,添加后检查是否已有同名项目。

适合:希望通过桌面设置管理启动项的用户。

如果当前 v2rayN 版本已经提供并启用了自启动选项,先确认它实际创建的启动项,再决定是否采用本文的手动方式。不要同时保留客户端自建启动项、桌面设置启动项和手动复制的启动项。窗口关闭后仍在托盘运行,也不等于已经配置了下次登录自启动。

创建可检查的自启动文件

先找出安装包提供的 .desktop 文件,而不是猜测程序一定在某个固定目录。以下查询分别适用于 deb 和 rpm;将安装时查到的包名输入即可。输出中优先选择 /usr/share/applications/ 下对应 v2rayN 的主启动文件。

查询桌面入口

# Ubuntu / Debian
read -r -p '输入 deb 的 Package 字段:' package
dpkg -L "$package" | grep -E '/applications/[^/]+\.desktop$'

# Fedora:仅在 Fedora 上执行这一组
read -r -p '输入 rpm 的 NAME 字段:' package
rpm -ql "$package" | grep -E '/applications/[^/]+\.desktop$'

下面使用 desktop-file-edit 编辑键值。Ubuntu、Debian 可运行 sudo apt install desktop-file-utils,Fedora 可运行 sudo dnf install desktop-file-utils 安装所需工具。随后以普通用户执行复制,不要给下面这组命令加 sudo。

read -r -p '输入已安装的 desktop 文件完整路径:' source
test -f "$source" && grep -E '^(Name|Exec|TryExec|DBusActivatable)=' "$source"

autostart_dir="${XDG_CONFIG_HOME:-$HOME/.config}/autostart"
target="$autostart_dir/v2rayn-login.desktop"

mkdir -p "$autostart_dir"
cp -- "$source" "$target"

desktop-file-edit \
  --remove-key=Hidden \
  --remove-key=OnlyShowIn \
  --remove-key=NotShowIn \
  --remove-key=DBusActivatable \
  --set-key=X-GNOME-Autostart-enabled --set-value=true \
  "$target"

desktop-file-validate "$target"

执行复制前应确认查询结果确实指向目标程序,且 Exec= 是有效的启动命令。此处沿用包内的 Exec,移除桌面环境显示限制,并让启动项直接按命令启动,而不是依赖 D-Bus 激活。若原文件带有 TryExec,它指向的程序也必须存在,否则桌面可能跳过启动项。

验证工具无输出通常表示通过格式检查,但不能证明程序一定能运行。保存后先正常退出客户端,再注销桌面并重新登录;只重开终端不能验证登录自启动。登录后等待桌面加载,检查窗口、托盘以及本地端口,确认只启动了一个实例。

依赖、权限与登录故障排查

安装时报缺少依赖,能强制装吗?

先确认包架构,再检查软件源是否启用且可访问。Ubuntu、Debian 用 apt 安装本地 deb;Fedora 用 dnf 安装本地 rpm。若当前发行版无法提供所需库版本,应核对该安装包的系统要求,不要随意复制其他发行版的共享库到系统目录。

点击图标没有窗口,怎么找错误?

先检查是否已经缩到托盘,再查看桌面文件的 Exec=。在普通用户终端中按其实际程序路径和参数启动,去掉用于桌面文件的 %U 等字段码,观察标准错误输出。界面未启动和内核启动失败是两层故障,应分别处理。

手动能打开,登录后却没启动?

检查 autostart 文件是否属于当前登录用户,核对 Exec、TryExec,并检查是否残留 Hidden=true。可用 journalctl --user -b 查看当前启动周期的用户日志;搜索程序名或真实可执行文件名,不要只凭窗口是否出现判断。

登录后程序在,但连接超时?

先等网络连接建立,再手动重试同一节点。桌面自启动不保证网络已可用,订阅更新失败也不代表现有节点必然失效。重新执行显式代理测试,区分网络未就绪、节点不可达和应用未读取系统代理。

以前用 sudo 启动,现在无法保存?

先退出客户端,找到日志中实际报错的用户数据目录,用 ls -ld 检查所有者。只有确认该目录属于当前用户的客户端数据后才修复归属;不要对整个主目录或系统安装目录递归改权限。软件包部署的系统文件应继续由包管理器管理。

升级与撤销自启动

升级时仍使用对应发行版的本地安装命令,并先退出正在运行的客户端。安装新版通常不等于删除用户配置,但升级前仍应备份实际使用的数据目录,尤其是订阅分组、路由和自定义配置。目录位置以当前版本的设置或日志为准,不要把程序安装目录当成唯一的数据目录。

如果只想停止登录自动运行,不必卸载 v2rayN。删除本文创建的启动文件即可;若另有桌面设置或客户端创建的入口,还需在对应位置关闭。撤销自启动不会自动结束当前已经运行的进程。

autostart_dir="${XDG_CONFIG_HOME:-$HOME/.config}/autostart"
rm -f -- "$autostart_dir/v2rayn-login.desktop"
客户端与安装包