Phần mềm tun2socks của tôi (Linux, Windows) tạo giao diện mạng ảo chuyển tiếp tất cả các kết nối TCP đến thông qua một máy chủ proxy được chỉ định. Nó chỉ có thể sử dụng proxy SOCKS và theo mặc định chỉ có thể chuyển tiếp TCP, mặc dù UDP cũng có thể được chuyển tiếp nếu bạn có thể chạy udpgw
giao nhận của tôi ở đâu đó đằng sau SOCKS. Giả sử bạn đáp ứng các yêu cầu đó, đây là cách bạn có thể thiết lập nó:
Đầu tiên tạo giao diện ảo và cấu hình nó. Trên Linux:
openvpn --mktun --dev tun0 --user <your_user>
ifconfig tun0 10.0.0.1/24
Hoặc, trên Windows, chỉ cần cài đặt OpenVPN để có giao diện ảo TAP-Win32 và gán cho nó IP 10.0.0.1, netmask 255.255.255.0.
Sau đó bắt đầu tun2socks, thực hiện chuyển tiếp thực tế:
badvpn-tun2socks --tundev tun0
--netif-ipaddr 10.0.0.2 --netif-netmask 255.255.255.0
--socks-server-addr <socks_server_address>:<socks_port>
Đây 10.0.0.2
là IP của bộ định tuyến ảo bên trong giao diện ảo. Nó phải nằm trong cùng một mạng con với và khác với mạng con được gán cho chính giao diện ảo ( 10.0.0.1/24
). Trên Windows, thay vì tun0
sử dụng:
--tundev "tap0901:<display_name_of_TAP-Win32_device>:10.0.0.1:10.0.0.0:255.255.255.0"
Tại thời điểm này, bạn sẽ có thể ping bộ định tuyến ảo 10.0.0.2
(trong trường hợp đó, tun2socks
chương trình đang chạy sẽ là bộ đáp ứng). Để chuyển tiếp kết nối qua proxy, tất cả những gì bạn phải làm là định tuyến chúng qua thiết bị ảo. Trên Linux:
route add default gw 10.0.0.2 metric 0
Hoặc trên Windows:
route add 0.0.0.0 mask 0.0.0.0 10.0.0.2 metric 0
Phần quan trọng ở đây là tuyến đường ghi đè bất kỳ tuyến mặc định hiện có. Ngoài ra, nếu máy chủ SOCKS của bạn không có trên mạng cục bộ, bạn phải thêm một tuyến ngoại lệ với số liệu cao hơn để ngăn kết nối được chuyển trở lại vào giao diện ảo. Xem liên kết ở trên cùng để biết thêm thông tin.