Moje oprogramowanie tun2socks (Linux, Windows) tworzy interfejs sieci wirtualnej, który przekazuje wszystkie przychodzące połączenia TCP przez określony serwer proxy. Może używać tylko proxy SOCKS i domyślnie może przekazywać tylko TCP, chociaż UDP może być również przekazywane, jeśli możesz uruchomić mój udpgw
forwarder gdzieś za SOCKS. Zakładając, że spełniasz te wymagania, oto jak możesz to skonfigurować:
Najpierw utwórz interfejs wirtualny i skonfiguruj go. W systemie Linux:
openvpn --mktun --dev tun0 --user <your_user>
ifconfig tun0 10.0.0.1/24
Lub w systemie Windows wystarczy zainstalować OpenVPN, aby uzyskać interfejs wirtualny TAP-Win32 i przypisać mu adres IP 10.0.0.1, maska sieci 255.255.255.0.
Następnie uruchom tun2socks, który wykonuje właściwe przekazywanie:
badvpn-tun2socks --tundev tun0
--netif-ipaddr 10.0.0.2 --netif-netmask 255.255.255.0
--socks-server-addr <socks_server_address>:<socks_port>
Tutaj 10.0.0.2
jest adres IP wirtualnego routera wewnątrz interfejsu wirtualnego. Musi znajdować się w tej samej podsieci, co inny niż ten przypisany do samego interfejsu wirtualnego ( 10.0.0.1/24
). W systemie Windows zamiast tun0
:
--tundev "tap0901:<display_name_of_TAP-Win32_device>:10.0.0.1:10.0.0.0:255.255.255.0"
W tym momencie powinieneś być w stanie pingować wirtualny router 10.0.0.2
(w takim przypadku działający tun2socks
program będzie tym, który odpowie). Aby przekazywać połączenia przez serwer proxy, wystarczy przekierować je przez urządzenie wirtualne. W systemie Linux:
route add default gw 10.0.0.2 metric 0
Lub w systemie Windows:
route add 0.0.0.0 mask 0.0.0.0 10.0.0.2 metric 0
Najważniejsze jest to, że trasa zastępuje istniejącą trasę domyślną. Ponadto, jeśli twój serwer SOCKS nie znajduje się w sieci lokalnej, musisz dodać trasę wyjątku z wyższymi parametrami, aby zapobiec przekierowaniu połączeń z powrotem do interfejsu wirtualnego. Zobacz link u góry, aby uzyskać więcej informacji.