내 tun2socks 소프트웨어 (Linux, Windows)는 지정된 프록시 서버를 통해 들어오는 모든 TCP 연결을 전달하는 가상 네트워크 인터페이스를 만듭니다. SOCKS 프록시 만 사용할 수 있으며 기본적으로 TCP 만 전달할 수 있지만 udpgw
SOCKS 뒤에서 전달자 를 실행할 수 있으면 UDP도 전달할 수 있습니다 . 이러한 요구 사항을 충족한다고 가정하면 다음과 같이 설정할 수 있습니다.
먼저 가상 인터페이스를 생성하고 구성하십시오. Linux에서 :
openvpn --mktun --dev tun0 --user <your_user>
ifconfig tun0 10.0.0.1/24
또는 Windows에서 OpenVPN을 설치하여 TAP-Win32 가상 인터페이스를 얻고 IP 10.0.0.1, netmask 255.255.255.0을 할당하십시오.
그런 다음 실제 전달을 수행하는 tun2socks를 시작하십시오.
badvpn-tun2socks --tundev tun0
--netif-ipaddr 10.0.0.2 --netif-netmask 255.255.255.0
--socks-server-addr <socks_server_address>:<socks_port>
여기, 10.0.0.2
가상 인터페이스 내부의 가상 라우터 IP입니다. 가상 인터페이스 자체 ( 10.0.0.1/24
)에 할당 된 서브넷과 동일한 서브넷에 있어야합니다 . Windows에서 대신에 다음 tun0
을 사용하십시오.
--tundev "tap0901:<display_name_of_TAP-Win32_device>:10.0.0.1:10.0.0.0:255.255.255.0"
이 시점에서 가상 라우터를 ping 할 수 있어야합니다 10.0.0.2
(이 경우 실행중인 tun2socks
프로그램이 응답 할 것임). 프록시를 통해 연결을 전달하려면 가상 장치를 통해 연결해야합니다. Linux에서 :
route add default gw 10.0.0.2 metric 0
또는 Windows의 경우 :
route add 0.0.0.0 mask 0.0.0.0 10.0.0.2 metric 0
여기서 중요한 부분은 경로가 기존 기본 경로보다 우선한다는 것입니다. 또한 SOCKS 서버가 로컬 네트워크에없는 경우 연결이 가상 인터페이스로 다시 라우팅되지 않도록 메트릭이 더 높은 예외 경로를 추가해야합니다. 자세한 내용은 상단의 링크를 참조하십시오.