先確認 Linux 發行版與處理器架構,再用套件管理工具安裝合適的桌面套件,接著匯入訂閱、確認本機監聽連接埠並測試系統代理。最後透過桌面工作階段的自動啟動機制,在登入後啟動程式;這和電腦開機、尚未登入時執行背景服務不同。本文以一般使用者的桌面工作階段為目標,不必先啟用 TUN。
一、下載前確認發行版、架構與套件格式
v2rayN 是用來管理節點、訂閱與核心設定的桌面用戶端。Linux 安裝套件必須同時符合發行版的套件管理系統與 CPU 架構。Ubuntu、Debian 通常使用 deb,Fedora 通常使用 rpm;即使副檔名相同,也不代表適用於所有發行版,請一併確認下載說明中的系統需求。
# 查看發行版與處理器架構
cat /etc/os-release
uname -m
# Debian / Ubuntu 的套件架構
dpkg --print-architecture
# Fedora 的套件架構
rpm --eval '%{_arch}'
請依照發行版選擇要執行的指令,不必全部執行。x86_64 通常對應下載頁面的 x64;Debian 套件常標示為 amd64;aarch64 通常對應 ARM64。請勿將 Windows 套件用於 Linux 桌面,也不要只憑電腦品牌判斷架構。前往下載中心選擇 Linux 平台,並以頁面當下提供的套件格式為準。
Ubuntu / Debian
- 套件格式
- deb
- 本機安裝
- apt install
- 套件資訊
- dpkg-deb -f
- 已安裝檔案
- dpkg -L
優先使用 apt 處理相依套件,不要只解壓縮套件就當作安裝完成。
Fedora
- 套件格式
- rpm
- 本機安裝
- dnf install
- 套件資訊
- rpm -qip
- 已安裝檔案
- rpm -ql
請使用符合目前發行版的版本;若缺少相依套件,先查看具體錯誤訊息。
二、使用 apt 或 dnf 安裝本機套件
請在 Bash 終端機中執行以下指令,輸入已下載安裝套件的完整路徑,不要貼上下載頁面的網址;路徑含空格也能正常處理。範例不固定套件名稱,避免版本更新後仍照抄舊檔名。安裝時會要求管理員權限,但日常啟動用戶端應使用一般使用者帳號。
Ubuntu / Debian:安裝 deb
read -r -e -p "請輸入 deb 檔案的完整路徑:" package_file
package_file="$(realpath -- "$package_file")"
if [ -f "$package_file" ]; then
dpkg-deb -f "$package_file" Package Version Architecture
sudo apt update
sudo apt install "$package_file"
else
printf '%s\n' "找不到檔案,請確認路徑後再試一次。"
fi
使用 apt install 安裝本機檔案時,apt 會根據已設定的軟體來源解析相依套件。若出現相依套件無法滿足的訊息,請先確認發行版版本、架構與軟體來源狀態;反覆強制安裝無法補齊執行環境。apt update 只會更新軟體來源索引,不會升級整台電腦。
Fedora:安裝 rpm
read -r -e -p "請輸入 rpm 檔案的完整路徑:" package_file
package_file="$(realpath -- "$package_file")"
if [ -f "$package_file" ]; then
rpm -qip "$package_file"
sudo dnf install "$package_file"
else
printf '%s\n' "找不到檔案,請確認路徑後再試一次。"
fi
三、首次啟動:先匯入訂閱,再確認核心
安裝完成後,從桌面應用程式選單搜尋 v2rayN 並開啟。首次啟動請維持預設權限與一般代理模式;TUN 涉及虛擬網卡、路由與額外權限,不適合和首次安裝問題一起排查。介面選單可能隨版本更新而變動,以下列出中文介面常見名稱;若找不到相同項目,請依目前版本中功能相同的設定操作。
-
開啟用戶端
從應用程式選單啟動 v2rayN。若只看到系統匣圖示,先點選圖示開啟主視窗;不要連續啟動多個執行個體。
-
新增訂閱
前往「訂閱分組」→「訂閱分組設定」,新增分組並填入訂閱網址與備註,儲存後返回主畫面。
-
更新訂閱
在「訂閱分組」選單中選擇「更新全部訂閱(不透過代理)」。本機尚無可用節點時,先嘗試直接更新;若失敗,再檢查網路與訂閱網址。
-
設為目前使用項目
從伺服器清單選取有效設定,使用右鍵選單中的「設為活動伺服器」。訂閱更新成功,不代表已選取可用節點。
-
確認監聽狀態
開啟「設定」→「參數設定」,確認本機監聽位址、連接埠及核心相關設定,再查看執行記錄,確認核心已啟動且沒有連接埠衝突。
訂閱通常已包含節點的協定與傳輸參數,不必為了安裝 Linux 版而將 VMess 改成 VLESS,也不應任意更換 TLS、伺服器名稱或傳輸路徑。若記錄顯示找不到核心檔案,請確認所選安裝套件是否包含所需核心,以及目前用戶端設定指向的檔案是否確實存在;這和系統代理開關是兩個不同的排查方向。
四、Linux 系統代理:監聽連接埠與桌面設定必須一致
系統代理只會影響讀取相關代理設定的應用程式,不會自動接管所有處理程序。請先確認用戶端的本機代理可正常使用,再設定桌面環境的代理。以下以 127.0.0.1:10808 作為示範,並非所有版本的預設值;實際值請從參數設定與記錄中確認。
在 GNOME 桌面中,前往「設定」→「網路」→「網路代理」→「手動」確認設定。HTTP 與 HTTPS 欄位填入本機 HTTP 代理的主機與連接埠;HTTPS 欄位不代表代理伺服器本身必須透過 HTTPS 連線。若核心提供 SOCKS 監聽,請填入 SOCKS 欄位,不要將純 SOCKS 連接埠填在 HTTP 欄位。混合監聽支援哪些協定,請以目前核心設定為準。
# 查看示範連接埠是否正在監聽
ss -ltnp 'sport = :10808'
# 若此連接埠支援 HTTP 代理
curl --connect-timeout 5 --max-time 15 \
--proxy http://127.0.0.1:10808 \
-I https://example.com
# 若此連接埠支援 SOCKS5,請由代理端解析目標網域名稱
curl --connect-timeout 5 --max-time 15 \
--proxy socks5h://127.0.0.1:10808 \
-I https://example.com
請依監聽類型選擇其中一個 curl 指令,不必兩個都成功。明確指定 --proxy 是為了略過桌面代理設定,先確認「本機監聽→核心→節點→目標網站」這條連線是否正常。收到 HTTP 回應只代表這次請求已抵達目標,不代表所有網站、UDP 或整套路由都已通過測試。
- 本機連線遭拒:先確認核心是否正在執行,以及連接埠是否填錯。
- 本機可連線,但請求逾時:檢查目前使用的節點、核心記錄、目標網域解析與路由比對結果。
- curl 成功,瀏覽器失敗:確認瀏覽器是否使用系統代理,是否設有獨立代理,或仍在使用需要重新啟動的舊工作階段。
- 桌面設定沒有變更:部分桌面環境不會套用用戶端的系統代理操作,請在桌面設定中手動確認,不要只看用戶端按鈕的狀態。
五、開機自動啟動的實際意義:登入後啟動桌面應用程式
本文建議在登入圖形桌面後自動執行 v2rayN,而不是在登入畫面出現前啟動圖形介面。後者缺少使用者工作階段、顯示服務與桌面設定環境,直接建立系統層級服務,容易導致視窗無法顯示,或代理設定寫入錯誤的使用者帳號。請先手動啟動並確認正常,再設定自動啟動,以減少排查變因。
桌面工作階段自動啟動
建議使用桌面環境的自動啟動功能,或複製安裝套件提供的 desktop 啟動項目。沿用應用程式實際的啟動指令,讓程式在使用者登入圖形工作階段後啟動。
適用情境:一般桌面使用者,以及需要系統匣與視窗管理的部署方式
用戶端內建開機啟動
若目前 Linux 版本提供此功能,可先啟用並重新登入測試。不同版本與桌面環境的實作可能不同,不要同時啟用另一種自動啟動方式。
適用情境:目前版本明確提供此功能,且確認運作正常
自行撰寫服務單元
需要區分使用者服務與系統服務,並處理圖形工作階段環境及結束行為。本文不會將圖形介面用戶端包裝成登入前執行的背景服務。
適用情境:了解工作階段生命週期,且需要自行設計服務相依性的管理員
若要使用桌面自動啟動,建議沿用套件安裝時提供的 .desktop 檔案,不要自行猜測執行檔所在目錄。以下指令會使用前面安裝時的 package_file 變數查詢套件名稱並列出啟動項目;若已關閉終端機,請重新輸入安裝套件路徑,再執行相應指令。
# Ubuntu / Debian:從 deb 取得實際套件名稱並尋找啟動項目
package_name="$(dpkg-deb -f "$package_file" Package)"
dpkg -L "$package_name" | grep '/applications/.*\.desktop$'
# Fedora:從 rpm 取得實際套件名稱並尋找啟動項目
package_name="$(rpm -qp --queryformat '%{NAME}' "$package_file")"
rpm -ql "$package_name" | grep '/applications/.*\.desktop$'
以上兩組指令只需執行適用於目前系統的一組。確認輸出檔案確實對應 v2rayN 主程式後,再使用以下指令複製。若查無結果,不要複製其他應用程式的啟動項目;請改用目前桌面環境的「自動啟動」設定,新增實際的啟動指令。
read -r -e -p "請輸入查詢到的 desktop 檔案完整路徑:" desktop_file
if [ -f "$desktop_file" ]; then
grep -E '^(Name|Exec|TryExec|Hidden|OnlyShowIn|NotShowIn)=' "$desktop_file"
mkdir -p "$HOME/.config/autostart"
install -m 644 -- "$desktop_file" \
"$HOME/.config/autostart/v2rayn.desktop"
else
printf '%s\n' "找不到啟動項目檔案,未建立自動啟動設定。"
fi
六、重新登入測試與常見問題排除
設定完成後,先登出再登入,通常不必重新啟動整台電腦。確認用戶端只啟動一次、目前使用的伺服器設定仍在、本機連接埠正在監聽,再重新執行前面的代理請求。視窗出現、核心啟動與桌面代理生效是三個獨立的檢查項目;只看到系統匣圖示,無法證明網路連線已恢復。
登入後為什麼會出現兩個視窗?
檢查用戶端內建的自動啟動、桌面的「自動啟動」清單與 ~/.config/autostart/,只保留一種方式。若要刪除本文建立的副本,請執行 rm -f "$HOME/.config/autostart/v2rayn.desktop";這不會解除安裝用戶端。
提示連接埠已被占用,該怎麼辦?
執行 ss -ltnp 'sport = :10808',先確認是否有舊執行個體仍在運作。若要修改監聽連接埠,請在「設定」→「參數設定」中儲存變更,並同步更新桌面代理與終端機測試指令,避免兩邊設定不一致。
升級後自動啟動失效了?
重新查詢新版套件的 desktop 檔案,比對 Exec= 與 TryExec=。使用者目錄中的副本不會隨系統檔案自動更新;若路徑有變,請重新複製並登出再登入測試。
關閉用戶端後,網頁反而無法開啟?
確認桌面代理是否仍指向已停止的本機連接埠。在 GNOME 中前往「設定」→「網路」→「網路代理」,切換為「已停用」後再測試直接連線;若要繼續使用代理,請先重新啟動核心。
為什麼終端機程式沒有使用系統代理?
許多命令列工具不會讀取 GNOME 的代理設定。先使用明確指定的 curl --proxy 測試,再依工具文件設定代理參數或環境變數;不要以為桌面代理生效後,所有指令都會自動使用代理。
七、升級或還原前要備份哪些設定
後續升級請繼續使用符合相同發行版與架構的套件,並透過 apt 或 dnf 安裝新版。安裝套件管理的是程式檔案;訂閱、路由與介面偏好等使用者資料,則可能存放在獨立的設定目錄。實際位置會依版本與執行方式而異,請從目前用戶端的設定目錄入口或記錄中確認,不要直接套用網路上某個固定路徑。
- 先結束用戶端:避免複製設定時仍有背景寫入,尤其不要只關閉視窗,卻讓系統匣中的程序繼續執行。
- 備份使用者設定:備份已確認的設定目錄,並記下目前使用的節點、路由預設、監聽連接埠與自動啟動方式。訂閱網址可能包含存取憑證,請勿貼到公開記錄中。
- 升級後先手動啟動:確認核心記錄與本機監聽狀態,再測試 HTTP 或 SOCKS 請求,最後檢查自動啟動。
- 還原時注意資料格式:新版寫入的資料不保證能由舊版讀取;若確實需要還原,請搭配升級前的設定備份,不要反覆覆寫程式檔案。
完成以上步驟後,Linux 版 v2rayN 的部署可分成四個階段:套件安裝完成、用戶端與核心正常啟動、應用程式請求確實經過代理,以及登入後能自動恢復執行。遇到問題時逐項排查,比同時切換節點、路由與 TUN 更容易找出原因。若想進一步了解模式差異,請參閱系統代理與代理模式說明;調整路由請參閱路由設定參考。