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-providers 的 override 批量設定 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 出站,效果等價於原來的鏈式代理。