dialer-proxy
특정 proxies가 다른 프록시 그룹/아웃바운드 프록시를 통해 네트워크 연결을 맺도록 지정하여 체인 프록시를 구성합니다. 주로 자신의 VPS 착지 노드의 실제 IP를 보호하거나 내외부 네트워크 격리 환경을 통과하는 데 사용됩니다.
기본 사용법
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 착지 노드 보호
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에 입력하면, 브라우저에서 접속할 때 보이는 IP는 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를 일괄 설정하여 마이그레이션할 수 있습니다:
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을 경유해 아웃바운드하도록 일괄 설정하는 것입니다. 이는 기존 체인 프록시와 동등한 효과를 냅니다.