Como mapear / encaminhar a porta no Ubuntu para outra máquina? (localhost 555 - 192.168.0.21:555)

4

Alguma idéia de como eu posso criar uma porta de escuta "virtual" no meu computador Ubuntu portando para IP remoto?

Quero dizer, algo assim.

Quando eu escrevo telnet 127.0.0.1 555 , eu quero obter uma conexão com o computador 192.168.0.21 na porta 555 (onde eu tenho meu servidor).

Alguma ideia?

    
por marc 02.05.2010 / 21:10

3 respostas

4

Eu acho que o iptables é o que você está procurando e já deve estar instalado no Ubuntu.

Pode levar um pouco de tentativa e erro, mas algo como os comandos abaixo devem funcionar:

iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 555 -j DNAT --to 192.168.0.21:555
iptables -A INPUT -p tcp -m state --state NEW --dport 555 -i eth1 -j ACCEPT

Uma explicação mais detalhada do que esses comandos podem fazer aqui .

Outro método é usar um programa chamado rinetd que está disponível no Ubuntu via synaptic.

Redirects TCP connections from one IP address and port to another. rinetd is a single-process server which handles any number of connections to the address/port pairs specified in the file /etc/rinetd.conf.

Há um guia sobre como usá-lo aqui

    
por 02.05.2010 / 21:23
2

link

You think this should be enough by now, and it really is, unless considering one final aspect to this whole scenario. What if the firewall itself tries to access the HTTP server, where will it go? As it looks now, it will unfortunately try to get to its own HTTP server, and not the server residing on $HTTP_IP. To get around this, we need to add a DNAT rule in the OUTPUT chain as well. Following the above example, this should look something like the following:

iptables -t nat -A OUTPUT --dst $INET_IP -p tcp --dport 80 -j DNAT --to-destination $HTTP_IP
    
por 03.05.2010 / 00:36
1

Use o redirecion em vez do iptables: link

    
por 11.09.2012 / 21:33