¿Cómo puedo hacer que un servidor TCP funcione detrás de un enrutador (NAT) sin necesidad de configuración de redirección?

El escenario es el siguiente. Tengo dos máquinas A y B: A: Cliente (detrás de NAT) B: Servidor (detrás de NAT)

Quiero que B pueda escuchar en cualquier puerto dado, para que A pueda enviar paquetes a B a través de ese puerto TCP específico y reciba cualquier respuesta. Si ambas máquinas no están detrás de un NAT, es un proceso bastante directo. Sin embargo, ¿cómo puedo hacer que funcione para que funcione incluso cuando B está detrás de un enrutador, sin que tenga que cambiar la configuración del enrutador?

Por ejemplo, ¿cómo funcionan los programas peer-to-peer como los clientes de torrent sin que el usuario tenga nada que configurar?

Respuestas a la pregunta(4)

Su respuesta a la pregunta