iptables -t nat -A OUTPUT -d www.kunde.de -p tcp -m tcp -dportar 445 -j REDIRECIONAR - para portas 1445
Porque os pacotes originados localmente passam por OUTPUT, em vez de por PREROUTING.
No "Servidor A", tenho um serviço em execução na porta 1445. "Servidor B" pode se conectar ao "Servidor A" na porta 445 através da seguinte regra:
iptables -t nat -A PREROUTING -d www.kunde.de -p tcp -m tcp -dporta 445 -j REDIRECIONAR - para portas 1445
Isso não funciona para conexões iniciadas no "Servidor A", isto é, conexões locais. O que posso fazer?
É melhor ler alguns manuais e documentos.
De qualquer forma, descrição resumida de cadeias:
* “PREROUTING”: Packets will enter this chain before a routing decision is made.
* “INPUT”: Packet is going to be locally delivered. (N.B.: It does not have anything to do with processes having a socket open. Local delivery is controlled by the “local-delivery” routing table: 'ip route show table local'.)
* “FORWARD”: All packets that have been routed and were not for local delivery will traverse this chain.
* “OUTPUT”: Packets sent from the machine itself will be visiting this chain.
* “POSTROUTING”: Routing decision has been made. Packets enter this chain just before handing them off to the hardware.
E dê uma olhada aqui:
se você usa lxc ou outra tecnologia de virtualização, você redireciona todo o tráfego da porta 445 para o 1455 do contêiner.
A solicitação local no Servidor A não passará PREROUTING
. O motivo foi abordado antes. O tráfego local não acessará nat table
, mas se você usar o DNAT antes, ele só funcionará para o tráfego externo para o Servidor A, REDIRECT
funcionou somente para encaminhamento de porta, não pode ser usado como DNAT