文件 設定 dialer-proxy

dialer-proxy

指定某個 proxies 透過另一個策略組/出站代理來建立網路連線,從而組成一條代理鏈——常用來保護自己 VPS 落地節點的真實 IP,或者穿透內外網隔離環境。

基本用法

config.yaml YAML
proxies:
  - name: "ss1"
    dialer-proxy: dialer
    # ...

  - name: "ss2"
    # ...

proxy-groups:
  - name: dialer
    type: select
    proxies:
      - ss2

rules:
  - MATCH,ss1

上面這個例子裡,ss1 透過 ss2 建立連線,代理鏈變成:核心 --ss1--> ss2 包裹 --ss2--> ss2 伺服端 --ss1--> ss1 伺服端 --> 目標。最終表現是:

  • 目標網站只看到 ss1 的 IP不知道 ss2 的存在
  • 你的寬頻業者只看到在存取 ss2不知道 ss1 的存在
  • ss2 伺服端只知道在轉發到 ss1不知道最終存取的是什麼網站

常見場景:保護自建 VPS 落地

config.yaml YAML
proxies:
  - name: "ss1"
    dialer-proxy: dialer
    # ...

proxy-providers:
  provider1:
    type: http
    url: "http://test.com"

proxy-groups:
  - name: dialer
    type: select
    use:
      - provider1

rules:
  - MATCH,ss1

把訂閱位址填入 provider1,把自己 VPS 上架設的節點填入 ss1,瀏覽器存取時顯示的就是 ss1 的 IP。

沒有特殊需求時,被中轉的落地 VPS 節點請不要選 hy2/tuic/wg 等 UDP 類協議,也不要用 reality/shadowtls 等帶 TLS 偽裝的協議——訂閱節點可能無法正常承載這些協議,建議選最簡單的 SS-AEAD 或 VMess。

從 relay 遷移

relay 類型的策略組已經被棄用(見 relay),但策略組本身並不直接支援 dialer-proxy,如果原來的 relay 裡包含多個 select 分組,可以用 proxy-providersoverride 批量設定 dialer-proxy 來遷移:

config.yaml YAML
proxies:
  - { name: "proxy1", type: "socks" }
  - { name: "proxy2", type: "socks" }
proxy-groups:
  - { name: "select1", type: select, proxies: ["proxy1", "proxy2"] }
  - { name: "select2", type: select, use: ["provider1"] }
proxy-providers:
  provider1:
    type: inline
    override:
      dialer-proxy: select1
    payload:
      - { name: "proxy3", type: "socks" }
      - { name: "proxy4", type: "socks" }
rules:
  - MATCH,select2

思路是把原來 relay 後半段的節點(proxy3/proxy4)定義在一個 inline 類型的 proxy-providers 裡,用 override.dialer-proxy 統一設定它們都經過 select1 出站,效果等價於原來的鏈式代理。