Linux 安裝 v2rayN:deb/rpm 套件安裝與登入自動啟動設定

示範如何在 Debian/Ubuntu 與 Fedora 系發行版安裝 deb、rpm 套件,設定登入桌面後自動啟動,並排解權限與系統代理問題。

本文重點

本文適用於使用 Linux 圖形桌面的使用者。先確認發行版、處理器架構與安裝套件,再透過系統套件管理器安裝 v2rayN、確認本機代理入口,最後設定目前使用者登入桌面後自動啟動。指令會讀取實際下載的檔案,不依賴固定版本號或猜測套件名稱;沒有圖形工作階段的伺服器不適用這套桌面自動啟動流程。

安裝前檢查:發行版、架構與桌面工作階段

Linux 請選擇 v2rayN 的 Avalonia 桌面版;WPF 版則是為 Windows 設計。deb 與 rpm 是發行版使用的套件格式,不代表代理協定或核心類型。先在終端機執行以下指令確認系統資訊;桌面環境也會影響系統代理與自動啟動項目的設定方式。

cat /etc/os-release
uname -m
printf '桌面:%s\n工作階段:%s\n' "$XDG_CURRENT_DESKTOP" "$XDG_SESSION_TYPE"

依發行版選擇安裝套件

建議

Debian、Ubuntu 請選擇實際提供的 deb 套件,Fedora 則選 rpm 套件。透過 apt 或 dnf 管理安裝紀錄與套件宣告的相依項目,之後也能依套件名稱解除安裝。

適用情境:日常桌面安裝,且希望保留系統安裝紀錄。

Linux 壓縮檔

如果目標版本只提供壓縮檔,請依該版本的說明解壓縮並執行,不要把副檔名改成 deb 或 rpm。桌面捷徑與啟動路徑需要自行確認。

適用情境:目標發行版沒有對應安裝套件,或需要單獨測試某個版本。

uname -m 回傳 x86_64 時通常對應 x64;回傳 aarch64 時通常對應 arm64。Debian 套件的架構欄位可能標示為 amd64;名稱雖不同,對應的處理器架構類別相同。請前往下載頁面確認目前提供的 Linux 檔案;本文的安裝步驟只適用於已取得的相應格式套件,不保證每個版本都同時提供兩種格式。

Debian 與 Ubuntu:使用 apt 安裝 deb 套件

建議將這次下載的安裝套件放在獨立資料夾,再從該資料夾開啟終端機。先列出目前資料夾中的 deb 檔案,接著輸入實際路徑,例如直接從檔案管理員拖曳檔案到終端機。使用變數可保留檔名中的空格;請勿一次選取多個舊版本。

find "$PWD" -maxdepth 1 -type f -name '*.deb' -print
read -r -p '請輸入 deb 檔案的完整路徑:' pkg
if [ -f "$pkg" ]; then
  dpkg-deb -f "$pkg" Package Version Architecture
  dpkg --print-architecture
else
  printf '找不到檔案,請重新選擇。\n'
fi

確認套件架構與系統相符後再安裝。apt install 會處理本機套件宣告的相依項目;比起只解開套件,更適合一般桌面使用者。首次安裝需要管理員授權,但日常使用客戶端不必因此改用管理員身分。

if [ -f "$pkg" ]; then
  pkg="$(realpath "$pkg")"
  sudo apt update
  sudo apt install "$pkg"
fi

Fedora:使用 dnf 安裝 rpm 套件

Fedora 使用 dnf 安裝本機 rpm 套件。安裝前先查看套件名稱、版本與架構,避免把桌面程式名稱誤當成套件管理器使用的名稱。以下指令會讀取實際檔案;套件名稱由安裝檔的中繼資料決定,不會在教學中預先寫死。

find "$PWD" -maxdepth 1 -type f -name '*.rpm' -print
read -r -p '請輸入 rpm 檔案的完整路徑:' pkg
if [ -f "$pkg" ]; then
  pkg="$(realpath "$pkg")"
  rpm -qp --queryformat '%{NAME} %{VERSION}-%{RELEASE} %{ARCH}\n' "$pkg"
  uname -m
  sudo dnf install "$pkg"
else
  printf '找不到檔案,請重新選擇。\n'
fi

安裝工具與執行身分分開處理

安裝階段
  • apt 或 dnf 需要管理員授權才能寫入系統目錄。
  • 套件管理器會處理套件宣告的相依項目。
  • 發生錯誤時請保留終端機輸出,先找出具體的相依套件或檔案衝突。
執行階段
  • 從目前使用者的桌面應用程式清單啟動 v2rayN。
  • 訂閱、節點與路由設定由目前使用者管理。
  • TUN 權限請另外設定,不要長期以管理員身分執行整個桌面程式。

不要為了解決一般安裝錯誤而停用系統安全機制。請先分辨是套件安裝、程式啟動還是代理連線出了問題。

安裝成功後,可執行 rpm -ql "$(rpm -qp --queryformat '%{NAME}' "$pkg")" 查看程式與桌面捷徑的位置。如果應用程式清單中找得到 v2rayN,卻在啟動後立即關閉,請從終端機執行桌面捷徑記錄的程式路徑,查看是否有缺少程式庫或核心啟動錯誤,而不是反覆安裝不同架構的套件。

首次連線:訂閱、監聽連接埠與系統代理

安裝完成只代表客戶端可以執行,不代表已具備可用的遠端連線。v2rayN 負責管理節點與設定,實際連線則由選定的核心執行。VMess、VLESS 是協定名稱;訂閱連結用來取得節點清單,與本機 HTTP 或 SOCKS 入口並非同一個位址。

  1. 新增訂閱

    開啟「訂閱分組」→「訂閱分組設定」,新增分組並填入可信任的訂閱網址。不同版本的按鈕位置可能有所差異,請以目前介面中的分組管理入口為準。

  2. 更新清單

    在「訂閱分組」選單中執行更新。首次連線尚未建立時,請選擇不經代理的更新方式;如果網址本身無法直接連線,就必須先準備可用的連線,重複點選無法解決問題。

  3. 選擇節點

    在節點清單選取一個節點,並設為作用中的伺服器。確認協定、傳輸參數符合伺服器端要求,再查看記錄中的核心啟動結果。

  4. 確認連接埠

    進入「設定」→「參數設定」,確認本機監聽位址與連接埠。本文以 127.0.0.1:10808 作為混合入口範例;若介面顯示其他連接埠,後續測試都要改用實際值。

  5. 設定代理

    先測試明確指定代理,再嘗試使用客戶端的「系統代理」→「自動設定系統代理」。Linux 上的生效範圍取決於桌面環境,以及應用程式是否讀取相應設定。

10808
本文範例的混合監聽連接埠
127.0.0.1
僅供本機使用的迴路位址
15 秒
下方連線測試的逾時上限

這些數字僅為設定範例,不代表實測效能或所有版本的預設值。確認入口同時支援 HTTP 與 SOCKS 後,才能使用這兩種方式測試。socks5h 會讓 curl 將目標網域交由代理端解析,可協助判斷問題出在本機 DNS 解析還是代理連線。

ss -ltnp 'sport = :10808'
curl --noproxy "" --proxy http://127.0.0.1:10808 \
  --max-time 15 --head https://example.com
curl --noproxy "" --proxy socks5h://127.0.0.1:10808 \
  --max-time 15 --head https://example.com

登入桌面後自動啟動:沿用現有 desktop 捷徑

這裡所說的「開機自動啟動」,實際上是使用者登入圖形桌面後啟動。這不等於系統開機時啟動背景服務,也不會在登入畫面出現時就提供代理。請先手動執行並確認一次,再設定自動啟動項目,避免每次登入都重複觸發同一個設定錯誤。

優先沿用安裝套件提供的 desktop 檔案。檔案通常已包含正確的 Exec 路徑與必要參數,比自行猜測執行檔位置可靠。以下從標準應用程式目錄尋找候選捷徑;若找到多個檔案,請逐一確認,只選擇確實屬於這次安裝的檔案。

find /usr/share/applications "$HOME/.local/share/applications" \
  -maxdepth 1 -type f -iname '*v2rayn*.desktop' -print 2>/dev/null

read -r -p '請輸入已確認的 desktop 檔案完整路徑:' desktop_file
if [ -f "$desktop_file" ]; then
  grep -E '^(Type|Name|Exec|TryExec|Hidden|OnlyShowIn|NotShowIn)=' "$desktop_file"
fi

確認 Type=Application、Exec 指向已安裝的程式,且沒有會阻止目前桌面啟動的限制後,再執行以下複製指令。目標資料夾是目前使用者的 XDG 自動啟動目錄,不需要 sudo。如果舊檔案中有 Hidden=true,請先了解停用原因,不要直接照搬。

if [ -f "$desktop_file" ]; then
  autostart_dir="${XDG_CONFIG_HOME:-$HOME/.config}/autostart"
  mkdir -p "$autostart_dir"
  cp -- "$desktop_file" "$autostart_dir/v2rayN.desktop"
fi

目前使用者的自動啟動

目錄
$XDG_CONFIG_HOME/autostart;未設定時使用 ~/.config/autostart
啟動時機
登入支援 XDG 自動啟動的圖形桌面
執行身分
目前桌面使用者
捷徑來源
本次安裝套件提供的 desktop 檔案

本文採用此方式,適合互動式桌面客戶端。

系統啟動服務

啟動時機
系統開機時,或服務管理器指定的目標
圖形工作階段
啟動時不一定存在
設定對象
需要專門設計的背景程序與權限
本文範圍
不將 v2rayN 桌面視窗設定為系統服務

不要把桌面客戶端的啟動指令直接放進系統服務,就期待視窗能正常顯示。

權限與系統代理:依症狀排解

本機代理、桌面系統代理與 TUN 屬於不同層級。一般應用程式可透過 HTTP 或 SOCKS 連接本機連接埠;桌面設定則是提供代理資訊給會讀取該設定的應用程式;TUN 涉及虛擬網路裝置、路由與額外權限。先確認本機代理正常,再擴大流量接管範圍,能讓排查更有效率。

症狀優先檢查項目處理方式
連線遭本機連接埠拒絕ss -ltnp、監聽連接埠、核心記錄確認核心已啟動、連接埠沒有衝突,且測試位址與介面設定一致。
curl 成功,瀏覽器失敗瀏覽器代理設定與桌面代理確認瀏覽器會讀取系統代理,或直接為瀏覽器設定本機入口。
桌面程式正常,終端機未經代理目前 shell 的環境變數依指令需求設定代理;桌面代理設定不會自動套用到所有終端機程式。
TUN 顯示權限不足目前版本的 Linux TUN 權限說明依版本說明授權所需元件,不要未經確認就遞迴變更整個安裝目錄的權限。
登入後啟動失敗desktop 檔案中的 Exec 欄位與記錄檢查升級後路徑是否變更、工作階段是否可用,以及是否設定了重複的自動啟動項目。

在 GNOME 桌面中,可前往「設定」→「網路」→「網路代理」檢查手動代理;HTTP、HTTPS 代理可指向支援 HTTP 的本機入口,SOCKS 則應指向支援 SOCKS 的入口。HTTPS 代理欄位通常仍填寫本機 HTTP 代理的主機與連接埠,並非要求本機入口另外提供 TLS。其他桌面環境請使用各自的設定入口,不要直接套用 GNOME 專用指令。

# 僅影響目前終端機及其後續啟動的子程序
export http_proxy=http://127.0.0.1:10808
export https_proxy=http://127.0.0.1:10808
export all_proxy=socks5h://127.0.0.1:10808

# 測試結束後清除這次設定
unset http_proxy https_proxy all_proxy
退出 v2rayN 後,為什麼部分應用程式無法連線?

這些應用程式可能仍指向已停止監聽的本機連接埠。退出前請將系統代理恢復為關閉或原本的設定,並檢查瀏覽器自訂代理與 shell 環境變數。代理設定是獨立狀態,不要假設所有桌面環境都會在程式退出時自動還原。

需要在防火牆開放 10808 連接埠嗎?

若只供本機使用,入口應繫結至迴路位址,通常不需要對外開放這個連接埠。若監聽所有網路介面,便會擴大可存取範圍;除非確實需要在區域網路分享,且已設定存取控制,否則不應如此設定。

升級後需要重新建立自動啟動項目嗎?

如果安裝路徑與 desktop 檔案的啟動參數都沒有變更,通常不需要重新建立。如果客戶端無法啟動,請比對新安裝捷徑與自動啟動副本中的 Exec、TryExec 等欄位。使用者目錄中的副本不一定會隨系統應用程式捷徑更新。

下載v2rayN