Como encaminhar uma única porta no Linux?

0

Eu tenho duas máquinas na minha rede (A e B), onde A é o diretamente acessado de fora quando eu chamo meu endereço IP e B é muito poderoso, o que deve servir para tarefas muito intensas.

Gostaria de encaminhar uma certa porta, por exemplo 9090, de A para B, então qualquer pedido enviado para A na porta 9090 é diretamente encaminhado para B.

Como isso pode ser alcançado?

(Se alguma resposta contiver endereços IP para A ou B, por favor use 192.168.2.A / B, respectivamente)

    
por David Stockinger 07.05.2013 / 22:04

1 resposta

1

Esta página descreve em detalhes como fazer o que você re depois. Os comandos salientes, a serem executados na máquina A, são estes:

root@A # iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 9090 -j DNAT --to 192.168.2.B:9090
root@A # iptables -A FORWARD -p tcp -d 192.168.2.B --dport 9090 -j ACCEPT

O primeiro comando cria uma regra iptables que redirecionará os pacotes que entram na porta 9090 da máquina A para ir para a porta 9090 da máquina B; a segunda regra permite que tais pacotes sejam encaminhados para a máquina B. (A segunda regra pode não ser necessária dependendo da política definida para a cadeia FORWARD na máquina A, mas não faz mal adicioná-la; se não for necessária, ela será simplesmente não faça nada.)

Observe que essas alterações não persistem nas reinicializações, a menos que estejam explicitamente configuradas para isso. Diferentes distribuições lidam com isso de maneiras diferentes; se você é incapaz ou não quer usar qualquer método que sua distribuição defina, você pode fazer

iptables-save > /etc/network/iptables

(ou algum arquivo semelhante, se não /etc/network/iptables ), e adicione o seguinte a /etc/rc.local :

iptables-restore < /etc/network/iptables

(usando o mesmo caminho dado no comando iptables-save ) para reaplicar as alterações na inicialização.

    
por 07.05.2013 / 22:13