Pregunta ¿Cómo puedo proxy un puerto para un servicio de red


Imagine que tiene 2 servidores, uno está prestando servicio de red en el puerto 800 y otro está prestando otro servicio en el puerto 801.

Usas IP pública para ambos, ambos servidores tienen 2 interfaces de red y también están en una LAN privada conectada entre sí. Desea guardar una IP pública (porque las direcciones IPv4 no son baratas en estos días) por lo que le gustaría que un servidor "proxy" al otro servidor, de modo que haya solo una dirección IP pública del servidor A que escuche en ambos 800 y 801, pero el tráfico del puerto 801 sería redirigido al servidor B.

¿Cómo puedo hacer esto? No busco proxy web, el servicio en cuestión puede ser cualquier posible servicio de red TCP. En Linux.


1


origen




Respuestas:


Necesita configurar algún tipo de NAT o reenviar en el servidor A. En Linux puede hacerlo usando iptables, pero eso no sería muy simple.

Una alternativa simple es usar rinetd. La configuración consiste en una sola línea:

# bind ip     port destination ip  port
206.125.69.81 801  1.2.3.4         801

Esto funcionará para todos los protocolos basados ​​en TCP, no creo que rinetd haga UDP. Verifique el administrador de paquetes de su distribución para el paquete. Por lo general, la configuración se puede encontrar en /etc/rinetd.conf


1