
Tenho um servidor com vários endereços IP associados a ele. Estou tentando executar um servidor web node.js (que não quero executar como root), usando apenas um desses endereços IP (seria muito ruim se o tráfego de todos os endereços IP fosse encaminhado).
Através da pesquisa de superusuário, parecia que isso seria possível com o iptables:
Como configurar o iptables para encaminhamento de tráfego na porta 80 de fontes específicas
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 --source 212.333.111.222 -j REDIRECT --to-port 9020
No entanto, não entendo por que a eth0 é necessária.
De acordo com:
http://blog.softlayer.com/2011/iptables-tips-and-tricks-port-redirection/
isso poderia ser feito com:
iptables -t nat -A PREROUTING -p tcp --dport 2525 -j REDIRECT --to-ports 25
Qual é a forma correta de encaminhar o tráfego de um único IP na porta 80, digamos 111.111.111.111:80 para outra porta no mesmo servidor, digamos 111.111.111.111:8765?
Obrigado pela ajuda!
Responder1
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8765
Em vez de usar o endereço IP, use o nome da interface, quero dizer, em vez de eth0
você pode usar a interface desejada.
Esta regra diz iptables:
- Faça isso no PreRouting
- Não faça nada
- Na interface eth0
- O protocolo é TCP
- A porta de destino correspondente é 80
- Redirecione para a porta 8765