ของฉัน tun2socks ซอฟต์แวร์ (Linux, Windows) สร้างอินเตอร์เฟสเครือข่ายเสมือนที่ส่งต่อการเชื่อมต่อ TCP ขาเข้าทั้งหมดผ่านพร็อกซีเซิร์ฟเวอร์ที่ระบุ มันสามารถใช้พร็อกซี SOCKS เท่านั้นและโดยค่าเริ่มต้นสามารถส่งต่อ TCP ได้เท่านั้นแม้ว่า UDP สามารถส่งต่อได้เช่นกันหากคุณสามารถใช้งาน udpgw
ส่งต่อที่ไหนสักแห่งที่อยู่เบื้องหลังถุงเท้า สมมติว่าคุณปฏิบัติตามข้อกำหนดเหล่านี้นี่คือวิธีการตั้งค่า:
ขั้นแรกให้สร้างอินเตอร์เฟสเสมือนและกำหนดค่า บน 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 ของคุณไม่ได้อยู่ในเครือข่ายท้องถิ่นคุณต้องเพิ่มเส้นทางข้อยกเว้นที่มีตัวชี้วัดที่สูงกว่าเพื่อป้องกันการเชื่อมต่อไม่ให้ถูกส่งกลับเข้าไปในอินเทอร์เฟซเสมือน ดูลิงค์ที่ด้านบนสำหรับข้อมูลเพิ่มเติม