Para encaminhar uma porta, a primeira coisa que você precisa fazer é ativar o encaminhamento no kernel usando um dos dois métodos:
-
Modifique as configurações em
/proc
como root; dura apenas até a reinicialização:echo 1 > /proc/sys/net/ipv4/ip_forward
-
Modifique as configurações em
/etc/sysctl.conf
; isso é persistente:acrescente
net.ipv4.ip_forward=1
a/etc/sysctl.conf
e execute$ sudo sysctl -p
A segunda coisa que você precisa fazer é configurar a regra de encaminhamento em iptables
usando a seguinte sintaxe:
iptables -t nat -A PREROUTING -i [external_interface] -p [protocol] \
--dport [external_port] -j DNAT --to-destination [internal_ip]:[internal_port]
Então, usando seu script:
external_iface=p2p1
iptables -t nat -A PREROUTING -i $external_iface -p tcp \
--dport $MyPort -j DNAT --to-destination ${DestIP}:${DestPort}
Isso encaminhará todo o tráfego da porta 10001 na psp1 (independentemente do seu endereço IP) para a porta 80 em 192.168.3.100. No 192.168.3.100, o tráfego parecerá vir de qualquer endereço IP atribuído a em1.
O \
não é obrigatório na regra. Só é usado para dividir a regra em duas linhas.