Anda memerlukan tun2socks, ini adalah bagian dari proyek BadVPN ( https://github.com/ambrop72/badvpn ). Sudah ada jawaban di sini merekomendasikan tun2socks, tetapi tidak memiliki contoh.
Anda dapat membangun tun2socks dari sumber atau menginstal paket yang sudah dikompilasi. Misalnya, di Ubuntu:
sudo add-apt-repository ppa:hda-me/badvpn-tun2socks
sudo apt-get update
sudo apt-get install badvpn-tun2socks
ip tuntap add dev tun1 mode tun user nobody
ifconfig tun1 up 10.0.0.1/24
# --netif-ipaddr 10.0.0.2 is not a typo.
# It specifies the IP address of the virtual router inside the TUN device,
# and must be different than the IP of the TUN interface itself.
# This command assumes you have tor up and running on 127.0.0.1:9050.
# Of course, you can use any other SOCKS proxy instead.
badvpn-tun2socks --tundev tun1 --netif-ipaddr 10.0.0.2 --netif-netmask 255.255.255.0 --socks-server-addr 127.0.0.1:9050
Selanjutnya, Anda perlu memutuskan apakah Anda ingin merutekan semua lalu lintas melalui proxy, atau hanya lalu lintas ke beberapa IP atau host tertentu. Jika Anda memiliki daftar tersebut (atau dapat membuatnya dengan upaya yang wajar), ini adalah solusi yang paling efisien.
# Here list of hosts or IPs to route through proxy is just an example.
# You need to specify your own list.
list_of_IPs_to_route_via_proxy="example.com 203.0.113.5"
for IP in $(echo $list_of_IPs_to_route_via_proxy); do
route add $IP gw 10.0.0.2; done
Jika Anda perlu merutekan semua lalu lintas melalui proxy, ini akan sedikit lebih rumit. Dalam hal ini saya sarankan untuk membaca https://github.com/ambrop72/badvpn/wiki/Tun2socks dengan hati-hati . Dokumentasi resmi mengasumsikan Anda ingin menggunakan localhost: 1080 sebagai proxy Anda, dan memberikan instruksi cara membuat server SOCKS lokal dengan penerusan dinamis SSH. Bagian terpenting dari dokumentasi:
Sambungkan ke server SSH, dengan -D localhost: 1080 ke perintah ssh untuk mengaktifkan penerusan dinamis. Ini akan membuat ssh membuka server SOCKS lokal yang akan digunakan badvpn-tun2socks. Jika Anda menggunakan Putty, buka Connection-> SSH-> Tunnels, ketik 1080 di port Source, pilih Dynamic dan klik Add.
Yang tersisa hanyalah merutekan koneksi melalui perangkat TUN alih-alih gateway default yang ada. Ini dilakukan sebagai berikut:
Tambahkan rute ke server SSH melalui gateway Anda yang ada, dengan metrik yang lebih rendah dari rute default aslinya. Jika server DNS Anda ada di Internet (bukan jaringan lokal Anda), tambahkan juga rute untuk mereka (seperti untuk server SSH). Ini diperlukan karena tun2socks tidak meneruskan UDP secara default (lihat di bawah). Tambahkan rute default melalui router virtual di perangkat TUN, dengan metrik lebih rendah dari rute default asli, tetapi lebih tinggi dari rute SSH dan DNS.
Ini akan membuat semua koneksi eksternal melalui perangkat TUN, kecuali untuk koneksi SSH (kalau tidak SSH akan pergi melalui perangkat TUN, yang akan melalui ... SSH).
Misalnya (dengan asumsi tidak ada rute default yang ada dengan metrik <= 6; kalau tidak hapus atau ubah metriknya), di Linux:
route add <IP_of_SSH_server> gw <IP_of_original_gateway> metric 5 <same for DNS>
route add default gw 10.0.0.2 metric 6
The dokumentasi juga memiliki contoh untuk menggunakan tun2socks untuk UDP forwarding, bagaimana rute semua lalu lintas melalui Tor, bagaimana untuk mendapatkan dukungan IPv6.