Questão Como posso fazer proxy de uma porta para um serviço de rede


Imagine que você tem 2 servidores, um está servindo serviço de rede na porta 800 e outro está fazendo outro serviço na porta 801.

Você usa IP público para ambos, ambos os servidores têm 2 interfaces de rede e também estão em uma LAN privada conectada entre si. Você deseja salvar um IP público (porque os endereços IPv4 não são baratos atualmente), portanto, você gostaria que um servidor "proxy" o outro servidor, para que houvesse apenas um endereço IP público do servidor A que estaria ouvindo em ambos 800 e 801, mas o tráfego da porta 801 seria redirecionado para o servidor B.

Como posso fazer isso? Eu não estou procurando por proxy da web, o serviço em questão pode ser qualquer serviço de rede TCP em potencial. No linux.


1


origem




Respostas:


Você precisa configurar algum tipo de NAT ou encaminhamento no servidor A. No Linux, você poderia fazer isso usando o iptables, mas isso não seria muito simples.

Uma alternativa simples é usar rinetd. A configuração consiste em uma única linha:

# bind ip     port destination ip  port
206.125.69.81 801  1.2.3.4         801

Isso funcionará para todos os protocolos baseados em TCP, não acho que o rinetd faça o UDP. Verifique o gerenciador de pacotes da sua distribuição para o pacote. Geralmente a configuração pode ser encontrada em /etc/rinetd.conf


1