Mon logiciel tun2socks (Linux, Windows) crée une interface réseau virtuelle qui redirige 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 rediriger que TCP, bien que l'UDP puisse également être redirigé si vous êtes capable de faire fonctionner mon udpgw
quelque part derrière le SOCKS. En supposant que vous respectiez ces exigences, voici comment vous pouvez le configurer :
Créez d'abord l'interface virtuelle et configurez-la. Sur Linux :
openvpn --mktun --dev tun0 --user
ifconfig tun0 10.0.0.1/24
Ou, sur Windows, installez simplement OpenVPN pour obtenir l'interface virtuelle TAP-Win32, et attribuez-lui l'IP 10.0.0.1, le masque de sous-réseau 255.255.255.0.
Ensuite, démarrez tun2socks, qui effectue la redirection réelle :
badvpn-tun2socks --tundev tun0
--netif-ipaddr 10.0.0.2 --netif-netmask 255.255.255.0
--socks-server-addr :
Ici, 10.0.0.2
est l'IP du routeur virtuel à l'intérieur de l'interface virtuelle. Il doit être dans le même sous-réseau que, et différent de, celui attribué à l'interface virtuelle elle-même (10.0.0.1/24
). Sur Windows, au lieu de tun0
, utilisez :
--tundev "tap0901::10.0.0.1:10.0.0.0:255.255.255.0"
À ce stade, vous devriez pouvoir effectuer un ping vers le routeur virtuel 10.0.0.2
(auquel cas le programme tun2socks
en cours d'exécution sera celui qui répondra). Pour rediriger les connexions via le proxy, il vous suffit de les router via le périphérique virtuel. Sur Linux :
route add default gw 10.0.0.2 metric 0
Ou sur 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 les connexions d'être routées à nouveau vers l'interface virtuelle. Consultez le lien en haut pour plus d'informations.