本文適用於使用 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
- 若下載相依套件時失敗,請先確認軟體來源可正常使用,再重試安裝;不要忽略相依項目強行安裝。
- 若套件架構不符,請回到下載頁面重新選擇檔案,不要使用強制安裝參數略過檢查。
- 安裝完成後,請在桌面應用程式清單搜尋 v2rayN。若找不到應用程式捷徑,可使用
dpkg -L "$(dpkg-deb -f "$pkg" Package)"查看套件實際安裝的檔案。 - 更新同一套件時,可以重新執行本機套件安裝指令。覆寫程式檔案不等於備份訂閱與路由設定,更新前仍應先保存重要設定。
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 入口並非同一個位址。
新增訂閱
開啟「訂閱分組」→「訂閱分組設定」,新增分組並填入可信任的訂閱網址。不同版本的按鈕位置可能有所差異,請以目前介面中的分組管理入口為準。
更新清單
在「訂閱分組」選單中執行更新。首次連線尚未建立時,請選擇不經代理的更新方式;如果網址本身無法直接連線,就必須先準備可用的連線,重複點選無法解決問題。
選擇節點
在節點清單選取一個節點,並設為作用中的伺服器。確認協定、傳輸參數符合伺服器端要求,再查看記錄中的核心啟動結果。
確認連接埠
進入「設定」→「參數設定」,確認本機監聽位址與連接埠。本文以
127.0.0.1:10808作為混合入口範例;若介面顯示其他連接埠,後續測試都要改用實際值。設定代理
先測試明確指定代理,再嘗試使用客戶端的「系統代理」→「自動設定系統代理」。Linux 上的生效範圍取決於桌面環境,以及應用程式是否讀取相應設定。
這些數字僅為設定範例,不代表實測效能或所有版本的預設值。確認入口同時支援 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 桌面視窗設定為系統服務
不要把桌面客戶端的啟動指令直接放進系統服務,就期待視窗能正常顯示。
- 登出並重新登入後,確認 v2rayN 是否啟動、核心是否正在執行,以及本機連接埠是否在監聽。
- 如果客戶端已啟用內建自動啟動功能,就不要再保留另一個同類捷徑,以免重複執行。
- 如果登入後網路尚未就緒,客戶端視窗出現不代表訂閱更新或節點連線會立即成功;網路連線就緒後,請再查看記錄。
- 若要停用本文建立的捷徑,請執行
rm -- "${XDG_CONFIG_HOME:-$HOME/.config}/autostart/v2rayN.desktop";此操作只會移除自動啟動檔案。
權限與系統代理:依症狀排解
本機代理、桌面系統代理與 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 等欄位。使用者目錄中的副本不一定會隨系統應用程式捷徑更新。