ドキュメント 設定 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 を経由するように設定します。これにより元のチェーンプロキシと同等の効果が得られます。