需要讓只有特定 Android 應用程式使用代理嗎?本文以 v2rayNG 目前常見介面為基準,說明「設定」中的應用程式代理入口、繞過模式與指定模式的差異,並示範如何選取 App、啟動 VPN、確認系統代理狀態,再透過 IP、日誌與實際連線結果判斷分流是否生效。不同版本的翻譯可能略有差異,但判斷邏輯與排錯順序相同。
v2rayNG 應用程式代理是怎麼運作的
v2rayNG 的應用程式代理功能不是替單一 App 另外建立一條節點連線,而是先由 Android VPN 介面建立虛擬網路通道,再依照應用程式的識別資訊判斷哪些流量送入 V2Ray 或 Xray 核心。當核心收到請求後,仍會按照目前設定的路由規則選擇代理、直連或阻擋出站。因此,應用程式代理與節點本身是兩個不同層次:前者決定「哪些 App 可以進入代理入口」,後者決定「進入後如何連到遠端伺服器」。
在 Android 上,每個已安裝的應用程式都有對應的 UID。v2rayNG 透過 VPN 服務取得流量來源,再將 UID 與應用程式代理清單比對。這表示分流通常比單純依網域名稱判斷更早發生,也能處理同一個 App 同時連線多個網域的情況。不過,部分應用程式會使用獨立程序、工作設定檔、WebView 或外部瀏覽器,實際流量未必全部屬於同一個套件,測試時不能只憑 App 名稱下結論。
繞過模式
- 清單含義
- 選取的 App 不進入代理
- 其他 App
- 通常送入代理
- 適合用途
- 大部分程式代理,少數排除
- 常見例子
- 代理瀏覽器,繞過銀行 App
選取清單中的應用程式會直接使用本地網路,未選取的應用程式才會進入代理入口。
指定模式
- 清單含義
- 只有選取的 App 進入代理
- 其他 App
- 維持直連或不經 VPN
- 適合用途
- 只代理一至三個程式
- 常見例子
- 只讓瀏覽器使用代理
清單越小越容易控制範圍,適合不希望影響銀行、支付或本地服務的情境。
判斷重點:「繞過」與「指定」的差別在清單的語意,而不是節點速度。若選錯模式,即使節點完全正常,也會出現「指定的 App 沒有代理」或「所有其他 App 都被代理」的結果。
在 v2rayNG 找到應用程式代理設定
開啟 v2rayNG 後,先不要急著啟動連線。主畫面左上角通常可以開啟側邊選單,部分版本則在右上角的功能選單中進入設定。常見路徑是「設定」→「路由設定」→「應用程式代理」;若版本將功能直接放在「設定」頁面,則可在設定清單中搜尋「應用程式代理」、「App proxy」或相近字樣。翻譯名稱會因 v2rayNG 版本與語言設定不同而稍有變化。
-
開啟設定頁
在 v2rayNG 主畫面開啟側邊選單,點選「設定」,再進入「路由設定」或具有相同意義的流量分流頁面。
-
選擇代理模式
找到「應用程式代理」後,先確認目前是「繞過模式」還是「指定模式」。不要只看下方勾選數量,必須先理解清單代表的意思。
-
勾選應用程式
點選應用程式清單,勾選需要代理或需要排除的 App。若清單很長,可使用搜尋欄輸入套件名稱或顯示名稱。
-
儲存並返回
完成選取後返回上一層,確認設定沒有被重設。部分版本在離開頁面時自動儲存,部分版本則需要點選右上角的確認或儲存按鈕。
-
啟動 VPN
回到主畫面選取可用節點,點選連線按鈕並接受 Android 顯示的 VPN 連線要求。狀態列出現 VPN 圖示後,才開始進行應用程式測試。
第一次使用時,Android 會顯示「允許此連線建立 VPN」之類的系統確認視窗。這不是遠端伺服器的授權,而是允許 v2rayNG 建立本機 VPN 介面。若拒絕、按返回,或同時有其他 VPN 工具正在運作,v2rayNG 可能顯示已啟動但實際沒有捕獲流量。測試前應先關閉其他 VPN 服務,並確認 Android 設定中的 VPN 頁面目前連線名稱確實是 v2rayNG。
繞過模式與指定模式怎麼選
繞過模式適合「大部分應用程式都需要代理,只有少數 App 必須保持直連」的環境。例如日常瀏覽、影音或測試工具多數需要使用節點,但銀行、內部辦公系統、區域網路控制器不應經過遠端出口,此時可以選擇繞過模式,將這些不需要代理的 App 加入清單。要注意的是,繞過清單不是代理白名單;被勾選的項目通常正是排除對象。
指定模式則適合「只有少數應用程式需要代理」的需求。例如只希望某個瀏覽器或測試用 App 使用代理,其他程式全部維持 Android 原有網路,此時應選擇指定模式,然後只勾選目標 App。這種模式的好處是影響範圍較小,對通知、同步、區域網路服務與其他背景程式的干擾也較容易控制。
- 只代理一個瀏覽器:選擇指定模式,勾選該瀏覽器,先不要勾選其餘 App。
- 所有程式代理但排除支付工具:選擇繞過模式,將支付工具與需要直連的 App 加入繞過清單。
- 測試某個 App 是否依賴特定地區出口:使用指定模式,只保留測試 App,避免背景程式流量干擾判斷。
- 需要區域網路印表機或路由器:即使使用代理,也應確認私有 IP 與區域網路流量沒有被錯誤送往遠端出站。
結論:先用指定模式縮小變數
第一次驗證功能時,建議只勾選一個測試 App,使用指定模式並保持其他設定不變。確認該 App 能正常連線後,再改用繞過模式處理大範圍需求,這樣最容易分辨是清單邏輯錯誤,還是節點與路由本身有問題。
清單選取時的三個邊界
第一,顯示名稱相近的 App 可能不是同一個套件。預裝瀏覽器、測試版瀏覽器與工作設定檔版本,可能以不同項目出現在清單中。第二,系統元件通常不建議隨意加入,尤其是 Android 系統服務、VPN 服務本身與網路管理元件;錯誤選取可能造成啟動循環或無法取得網路。第三,若目標 App 透過外部瀏覽器完成登入,單獨代理主程式不一定會代理登入頁,必須視登入流程使用的實際 App 一併測試。
應用程式代理與路由、DNS 的關係
應用程式清單只負責把流量分成「進入 v2rayNG」與「不進入 v2rayNG」兩大類。進入核心後,仍可能受到 routing.rules、網域分類、IP 分流與 DNS 策略影響。例如指定模式已將瀏覽器送入 VPN,但路由規則又將某些網域標記為 direct,該瀏覽器的部分請求仍會直連。這不是應用程式代理失效,而是第二層路由規則作出的選擇。
DNS 也會讓測試結果看起來不一致。若 App 先透過本地 DNS 解析出 IP,再把請求送進核心,路由可能依解析結果判定為直連;若由代理端解析,則可能得到不同的 IP 或不同的地理位置。若目的是確認某個 App 是否使用遠端出口,應同時測試網頁顯示的出口 IP,以及 v2rayNG 日誌中的請求與出站資訊,不要只根據 DNS 查詢結果判斷。
應用程式層
- 判斷依據
- Android App UID
- 控制範圍
- 哪些程式進入 VPN
- 設定位置
- 應用程式代理
- 常見誤判
- 把繞過清單當成代理清單
先確認目標 App 是否真的進入 v2rayNG,再分析核心路由。
核心路由層
- 判斷依據
- 網域、IP、連接埠與規則
- 控制範圍
- 代理、直連或阻擋
- 設定位置
- 路由設定與訂閱內容
- 常見誤判
- 看到 VPN 圖示就認為全部走代理
App 進入核心不等於每個目標網域都會使用代理出站。
{
"routing": {
"domainStrategy": "IPIfNonMatch",
"rules": [
{
"type": "field",
"domain": ["geosite:cn"],
"outboundTag": "direct"
},
{
"type": "field",
"network": "tcp,udp",
"outboundTag": "proxy"
}
]
}
}
上面的片段只是說明核心路由概念,不能直接取代 v2rayNG 自動產生的完整設定。實際節點的出站標籤可能不是 proxy,路由資料檔也可能由用戶端或訂閱提供。若修改了路由,應先備份現有設定,並確認引用的 outboundTag 確實存在。若只想控制某個 App,不建議為了這個需求大幅重寫整份 JSON,先使用內建的應用程式代理選項會更安全。
用實際測試確認分流是否正常
完成設定後,先徹底停止 v2rayNG,再重新啟動並接受 VPN 授權,避免舊的 VPN 狀態或快取連線影響結果。測試時準備兩個應用程式:一個是已加入代理清單的目標 App,另一個是未加入清單的對照 App。兩者最好同時存取相同的出口 IP 查詢服務,並在相近時間記錄結果。若使用指定模式,只有目標 App 的出口應呈現節點所在位置;對照 App 則應維持原本網路出口。
除了出口 IP,也要觀察延遲與日誌。v2rayNG 主畫面的連線狀態只能表示核心服務正在執行,不能證明每個 App 都已依清單分流。打開日誌後,在目標 App 發起一次新的請求,確認是否出現對應的目標網域、連線建立與出站處理紀錄。若日誌完全沒有新增請求,可能是 App 使用了既有連線、被 Android 背景限制,或該流量沒有進入 VPN。
我選了指定模式,為什麼其他 App 還能上網?
指定模式通常只限制哪些 App 進入 v2rayNG,未選取的 App 仍可使用 Android 的一般網路。這是預期行為,不代表代理清單失效;請改用出口 IP 或核心日誌確認目標 App 是否走代理。
勾選 App 後仍顯示原本的出口 IP?
先確認目前模式是否為指定模式、Android VPN 圖示是否存在,再重新啟動目標 App。若仍無效,檢查路由規則是否將目標網域送往 direct,以及是否存在另一個 VPN 工具搶占服務。
為什麼同一個 App 有些頁面代理、有些頁面直連?
應用程式清單只控制流量是否進入核心,核心內的網域、IP、連接埠與路由規則仍可能逐項分流。查看日誌中的目標位址與出站標籤,才能確認是哪條規則造成差異。
切換模式後設定會不會立即生效?
建議修改後停止 v2rayNG,再重新啟動 VPN 服務。部分 Android 版本會保留既有連線,重新開啟目標 App 或清除其最近使用狀態後,測試結果會更可靠。
錯誤:VPN permission denied
原因與解法:Android 沒有授予 v2rayNG 建立 VPN 的權限——回到主畫面重新啟動連線並接受系統確認;若已有其他 VPN,先停止另一個 VPN 服務。
錯誤:failed to start VPN service
原因與解法:VPN 服務被系統限制、背景程序被結束,或目前存在衝突的網路服務——解除 v2rayNG 的電池最佳化限制,重新開機後再測試。
錯誤:目標 App 無法連線,但其他 App 正常
原因與解法:該 App 可能被錯誤加入繞過清單、使用獨立程序,或被核心路由規則送往不適用的出站——切換至指定模式單獨測試,並核對日誌中的網域與出站標籤。
實際驗證可以按照「停止服務、修改清單、重新啟動、測試目標、測試對照、查看日誌」的順序完成。每次只修改模式或一個 App,並在每次測試前清除瀏覽器頁面或重新開啟應用程式,避免快取內容讓結果失真。若目標 App 使用長時間連線,等待 10 至 30 秒讓舊連線逾時,或手動結束後重新啟動,才能觀察新的分流結果。