Encaminhamento de porta no Linux sem iptables?


34

Eu tenho um servidor Linux VPS (virtuozzo) e preciso configurar o encaminhamento de porta, mas meu provedor de hospedagem não permite módulos de kernel iptables-nat, portanto iptables -t nat- não está funcionando.

Estou procurando outras maneiras de como fazê-lo. Eu sei que posso encaminhar porta usando o openssh , mas preciso encaminhar mais de 20 portas diferentes, tcp e udp, para que essa não seja uma opção.

Existe algum software para linux que possa encaminhar portas?


huh boa pergunta +1. não estou ciente de uma solução, estou ansioso para ver se há algo aqui.
O Shurrican

E então, o que dizer de um programa que permite encaminhar portas para diferentes destinos com base no IP de origem?
dpk 10/05

Evite o problema completamente, nunca usando VPS baseados em Virtuozzo / OpenVZ.
Michael Hampton

@MichaelHampton: Não é extremamente construtivo ...
Nicolas Raoul

Respostas:


47

Use a ferramenta chamada "socat", é uma ótima ferramenta para essas coisas e já está empacotada em muitas distribuições linux. Leia aqui: http://www.dest-unreach.org/socat/doc/README

Exemplo de encaminhamento de porta com socat:

socat TCP4-LISTEN:80,fork TCP4:www.yourdomain.org:8080

Isso redireciona todas as conexões TCP na porta 80 para www.yourdomain.org porta 8080 TCP.


Não se esqueça https é padrão na porta 443, em vez de porta 80 :)
keiki

Socat é a única ferramenta que funcionou para mim em um pi ipv6-only framboesa
chotchki

Perfeito, resolvi meu problema instantaneamente. Observe que você precisa ter certeza de que a porta de entrada está aberta no iptables, se houver.
jancha

13

Há um pequeno programa de recursos leves chamado redirque é bastante configurável.

apt-get install redir em distribuições baseadas no Debian.


Eu usei esta ferramenta no passado e ele funciona muito bem ...
Alex

Eu segundo esta ferramenta. Parece que esta não é uma ferramenta de encaminhamento de pacotes, mas o tcp tunnel. Ele mudará o endereço IP de origem visto pelo destino. Por isso, funciona muito bem quando você precisa redirecionar uma porta para outro computador que possui uma configuração de roteamento diferente.
22818 scegg #


6

xinetdsuporta um atributo de redirecionamento que fará o que você deseja. Como outros observaram, existem vários programas que lidam com redirecionamentos.

O uso de xinetdoutro programa que utilize a tcpwrappersbiblioteca permitirá aplicar restrições de acesso, se e quando necessário.


4

xinet / inetd. Por exemplo:

redirecionar

Permite que um serviço tcp seja redirecionado para outro host. Quando o xinetd recebe uma conexão tcp nessa porta, gera um processo que estabelece uma conexão com o host e o número da porta especificados e encaminha todos os dados entre os dois hosts.

http://linux.die.net/man/5/xinetd.conf


Parece interessante, mas é limitado a TCP apenas como você disse
Doud

4

Eu encontrei um pequeno utilitário chamado portfwd http://portfwd.sourceforge.net/ ele faz exatamente o que eu preciso (encaminhamento de TCP e UDP), a página inicial diz que foi atualizada pela última vez em 2002, mas a versão mais recente é 2007 e funciona no kernel 2.6 .


Aceito minha resposta, pois parece que este é o único software que suporta totalmente os protocolos TCP e UDP.
troex

3

SSH Faz o encaminhamento de porta, desde que você possa encapsular em uma conexão SSL.


-3

Ok, aqui está a resposta simples que deve funcionar, não é ciência de foguetes, mas a maioria das pessoas complica a resposta e confunde todas as novidades dos usuários do Linux.

ufw allow 2xxx

2xxx = qualquer que seja o número da sua porta, basta digitar esse comando no terminal do servidor e a porta desejada é aberta.


Apenas abre a porta nas interfaces voltadas para fora do servidor. Não redireciona nem encaminha a porta de um IP para o outro. ABRE O PORTO.
AmirHossein
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.