跳到主要內容

首頁 / 部落格 / DNS 與網路

游戲走代理為什麼反而更卡?UDP、NAT 類型與延遲最佳化

DNS 與網路2026-06-182088 字約 5 分鐘
游戲走代理為什麼反而更卡?UDP、NAT 類型與延遲最佳化

「開了代理游戲更卡了」是個高頻反饋。原因不是代理沒用,而是游戲流量和網頁流量的需求完全不同

游戲流量的三個特點

游戲為什麼難加速用 UDP 而不是 TCP系統代理完全不處理 UDP,必須靠 TUN對延遲極敏感網頁慢 200ms 無感,游戲多 50ms 就能感覺到怕丟包勝過怕慢丟一個包就是一次卡頓或瞬移,重傳來不及
網頁最佳化的是「總吞吐」,游戲最佳化的是「每個包都准時到」

為什麼必須用 TUN

系統代理(HTTP/SOCKS)只處理 TCP。游戲的實時資料(位置同步、技能釋放)幾乎都走 UDP,系統代理對它們視而不見。

結果就是:登入、商店、更新走了代理(TCP),但實际對戰流量還在原來的路徑上。這種「一半走一半不走」的狀態,有時比完全不走代理還糟。

要讓游戲流量真的走代理,只能開 TUN。

但節點得支援 UDP

設定裡的 udp: true 只是用戶端側的聲明,伺服器端是否真的轉發 UDP 取決於服務商。

proxies:
  - name: "HK-01"
    type: trojan
    server: hk.example.com
    port: 443
    password: "pwd"
    udp: true        # 声明支持,实际能不能用取决于服务端

NAT 類型是怎麼回事

聯機游戲裡常見的 NAT 類型(開放/中等/嚴格,或 Type 1/2/3),說的是你的設備能不能被外部主動連接

三種 NAT 類型開放 Full Cone任何外部主機P2P 直連成功率最高最理想中等 Restricted只有你先聯繫大部分情況可用常見狀態嚴格 Symmetric每個目標用不P2P 幾乎必失敗需要中繼,延遲高
走代理後 NAT 類型由節點伺服器決定,不再取決於你家路由器

代理會改變 NAT 類型——好的方向或壞的方向都有可能:

  • 如果節點伺服器有獨立公網 IP 且未做連接埠限制 → 可能得到 Full Cone,比家裡的寬頻還好
  • 如果節點是共享 IP 的中轉、或做了嚴格的連接埠映射 → 會變成 Symmetric,聯機反而更難

這就是「開了代理游戲連不上房間」的常見原因。

延遲不是唯一指標,丟包更要命

對游戲體驗的影響權重(示意)丟包率1% 丟包就有明顯卡頓抖動 Jitter延遲忽高忽低比穩定的高延遲更難受平均延遲60ms 和 90ms 差別不如想象中大頻寬游戲本身佔用頻寬很小相對權重示意,具體因游戲類型而異

url-test 只測延遲,測不出丟包和抖動。所以不要用自動選擇來挑游戲節點

怎麼測丟包

# Windows:連續 ping 100 次看丟包率
ping -n 100 节点IP
# macOS / Linux
ping -c 100 节点IP

# 更好的工具:mtr,能看到每一跳的丟包
mtr -r -c 100 节点IP

關注最後一行的 Loss%。超過 1% 就不適合玩對戰游戲。

mtr 還能告訴你丟包發生在哪一跳——如果是中間某跳丟但最後一跳不丟,那多半是那台路由器限制了 ICMP,不代表真的丟包。

面向游戲的設定

一、獨立的游戲策略組

proxy-groups:
  - name: "🎮 游戏"
    type: fallback              # 用 fallback 不用 url-test
    proxies: ["专线-HK", "专线-JP", "普通-HK"]
    url: "http://www.gstatic.com/generate_204"
    interval: 600               # 间隔设长,减少切换

為什麼用 fallback:游戲中途切節點 = 掉線重連。fallback 只在當前節點真的掛了才換,穩定性遠好於 url-test。

二、TUN 設定調整

tun:
  enable: true
  stack: gvisor          # UDP 场景下 gvisor 兼容性最好
  auto-route: true
  auto-detect-interface: true
  dns-hijack: [any:53]
  mtu: 1400              # 适当降低,减少分片

三、按行程或網域分流到游戲組

prepend-rules:
  # 按行程
  - PROCESS-NAME,steam.exe,🎮 游戏
  - PROCESS-NAME,Battle.net.exe,🎮 游戏
  # 按網域
  - DOMAIN-SUFFIX,steamserver.net,🎮 游戏
  - DOMAIN-SUFFIX,battle.net,🎮 游戏
  # 按連接埠(很多游戲用固定連接埠段)
  - AND,((NETWORK,UDP),(DST-PORT,27000-27100)),🎮 游戏

行程規則需要 find-process-mode: strict,見行程規則詳解

四、關掉可能干擾的功能

sniffer:
  enable: true
  skip-domain:
    - "+.steamserver.net"      # 嗅探可能干扰游戏协议

有些游戲的自定義協議會被嗅探器誤判,加進 skip-domain

什麼樣的節點適合游戲

按適合程度排序1IPLC IEPL 專線2中轉 + 優質落地入口在国內最佳化線路,出口在目標區域3BGP 中轉多線接入,晚高峰表現較好4直連 IDC 機房白天還行,晚高峰容易擁塞5廉價大流量方案通常共享頻寬嚴重,不適合游戲
游戲加速對線路品質的要求,比看影片高一個量級

判斷一條線路適不適合游戲,實測比參數可靠。用體驗流量跑一遍:

實測清單mtr -c 100 看丟包率,要求 < 1%連續 ping 觀察抖動,波動應在 ±20ms 內實际進游戲打一局,看有沒有瞬移和技能延遲測試晚高峰(20:00-23:00)而不是凌晨確認 UDP 真的通了(能進對局而不只是能登入)

什麼時候不該用代理玩游戲

該用 / 不該用該用伺服器在境外,直連延遲 200m直連丟包嚴重需要訪問境外游戲平台不該用伺服器在国內,直連本來就快你的節點是廉價共享線路游戲有反作弊且對虛擬網路卡敏感
国服游戲開代理,幾乎必然更差

国內游戲一定要走直連。加一條規則明確排除:

prepend-rules:
  - PROCESS-NAME,某国服游戏.exe,DIRECT

關於反作弊

部分游戲的反作弊系統會偵測虛擬網路卡和異常網路路徑。虽然使用代理本身通常不違反規則,但:

  • 有些游戲的服務條款禁止使用第三方網路工具
  • IP 頻繁變化可能觸發風控(異地登入偵測)
  • 極少數反作弊會因為虛擬網路卡直接拒絕啟動

一份最佳化前後的對照

常見的錯誤設定 vs 最佳化後最佳化前只開系統代理url-test 自動選擇全部流量一個組stack 用 system最佳化後開 TUN,stack 用游戲用 fallback 組游戲流量獨立分流MTU 調到 1400
最大的兩處改動:必須開 TUN,以及不要讓游戲流量跟著自動選擇跑

小結

  • 游戲用 UDP,只有 TUN 能接管,系統代理沒用
  • 節點必須真的支援 UDPudp: true 只是聲明
  • 丟包和抖動比延遲重要,用 mtr 實測
  • 游戲組用 fallback 不用 url-test,避免中途切換
  • 国服游戲走直連,開代理只會更差
  • 專線(IPLC/IEPL)才是游戲場景的正解,普通中轉很難達到要求

相關:TUN 底層原理行程規則詳解


相關文件