Mon routeur (192.168.1.1) connecté à Internet via PPPoE. Le client OpenVPN est installé sur le serveur (192.168.1.20) et tous les autres ordinateurs obtiennent 192.168.1.20 à partir de DHCP comme passerelle par défaut. Mon téléphone IP n'a pas besoin de VPN, c'est pourquoi j'ai défini sa passerelle par défaut sur 192.168.1.1 manuellement. Cela fonctionne parfaitement.
Puis-je faire quelque chose de similaire avec le serveur pour y installer la transmission afin de télécharger des torrents via 192.168.1.1? Je ne suis pas familier avec iptables (je viens de copier-coller des règles pour configurer NAT sur le serveur afin de partager une connexion VPN).
Pour simplifier les choses: comment ajouter une règle iptables pour transférer tous les paquets non-en transit du serveur vers 192.168.1.1 au lieu d’utiliser une connexion VPN? Merci d'avance!
J'ai passé quelques heures et j'ai enfin trouvé la solution. Pas aussi bien que conseillé auparavant, mais ça marche toujours.
route del -net 0.0.0.0 netmask 128.0.0.0 dev tun0
Je suis en train de supprimer la route de passerelle par défaut créée par le client openvpn. Donc tout le trafic de la maschine va à 192.168.1.1 exactement comme j'avais besoin.
Mais la rosée pour NAT masquer les autres périphériques de mon réseau reste au-delà du VPN.
J'ai ajouté cette chaîne à /etc/rc.local
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
Une méthode simple consiste à utiliser un utilisateur distinct pour exécuter le client torrent, puis à utiliser iptables pour marquer les paquets et les acheminer de manière appropriée.
iptables -t mangle -A OUTPUT -m owner --uid-owner custom_user -j MARK --set-mark 11
Une fois que vous avez fait cela, alors vous devez router les paquets avec cette marque le long de votre passerelle non tunnelée:
ip rule add fwmark 11 table 11
ip route add 0.0.0.0/0 table 11 dev whatever_dev_here
Remplacez whatever_dev_here
par le nom de périphérique de votre connexion locale.