
IPTABLES
Yo 10.8.0.7 Debian
Servidor Linux cent8 eth0 192.168.88.11 tun0 10.8.0.6
¿Cómo conectar el reenvío de puertos 10.8.0.6:8888 a la máquina local 192.168.88.10:443?
Habilitar reenvío
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
sudo sysctl -w net.ipv4.ip_forward=1
echo '1' | sudo tee /proc/sys/net/ipv4/conf/eth0/forwarding ;
echo '1' | sudo tee /proc/sys/net/ipv4/conf/tun0/forwarding
sudo iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
# forward 10.8.0.6:8888 to local 192.168.88.10:443
sudo iptables -t nat -A PREROUTING -p tcp -d 10.8.0.6 --dport 8888-j DNAT --to-destination 192.168.88.10:443
# return
sudo iptables -t nat -A POSTROUTING -p tcp --dst 192.168.88.10 -j SNAT --to-source 10.8.0.6:8888
# remove
sudo iptables -t nat -D PREROUTING 2
sudo iptables -t nat -D POSTROUTING 2
¿Qué es eso que no funciona?
Respuesta1
Si necesita reenviar solo un puerto, no activaría el reenvío de IP en el kernel ni me metería con iptables, sino que usaría un programa especializado comosocatpara hacer el reenvío de puertos (en la página vinculada tienes un ejemplo de cómo hacer el reenvío de puertos socat
). Mi herramienta de reenvío de puertos favorita estcppmdesde el3proxypaquete.