Mon logiciel tun2socks (Linux, Windows) crée une interface réseau virtuelle qui transfère toutes les connexions TCP entrantes via un serveur proxy spécifié. Il ne peut utiliser qu'un proxy SOCKS et, par défaut, ne peut transmettre que TCP, bien que UDP puisse également être transféré si vous pouvez exécuter mon udpgw
redirecteur quelque part derrière le SOCKS. En supposant que vous remplissez ces conditions, voici comment vous pouvez le configurer:
Créez d'abord l'interface virtuelle et configurez-la. Sous Linux:
openvpn --mktun --dev tun0 --user <your_user>
ifconfig tun0 10.0.0.1/24
Ou, sous Windows, installez simplement OpenVPN pour obtenir l'interface virtuelle TAP-Win32 et attribuez-lui IP 10.0.0.1, masque de réseau 255.255.255.0.
Ensuite, démarrez tun2socks, qui effectue le transfert réel:
badvpn-tun2socks --tundev tun0
--netif-ipaddr 10.0.0.2 --netif-netmask 255.255.255.0
--socks-server-addr <socks_server_address>:<socks_port>
Voici 10.0.0.2
l'IP du routeur virtuel à l'intérieur de l'interface virtuelle. Il doit être dans le même sous-réseau et différent de celui affecté à l'interface virtuelle elle-même ( 10.0.0.1/24
). Sous Windows, au lieu de tun0
, utilisez:
--tundev "tap0901:<display_name_of_TAP-Win32_device>:10.0.0.1:10.0.0.0:255.255.255.0"
À ce stade, vous devriez être en mesure d'envoyer une requête ping au routeur virtuel 10.0.0.2
(auquel cas le tun2socks
programme en cours d'exécution sera celui qui répondra). Pour transférer des connexions via le proxy, il vous suffit de les acheminer via le périphérique virtuel. Sous Linux:
route add default gw 10.0.0.2 metric 0
Ou sous Windows:
route add 0.0.0.0 mask 0.0.0.0 10.0.0.2 metric 0
La partie critique ici est que la route remplace toute route par défaut existante. De plus, si votre serveur SOCKS n'est pas sur le réseau local, vous devez ajouter une route d'exception avec une métrique plus élevée pour empêcher que les connexions ne soient redirigées vers l'interface virtuelle. Voir le lien en haut pour plus d'informations.