En realidad, puedes (más o menos)
Es un poco complicado y no funcionará todo el tiempo, pero aquí está la esencia de cómo funciona:
Dado:
Routera con IP pública 1.2.3.4
PC1 con IP ABCD privado (detrás del enrutador A)
Routerb con IP pública 5.6.7.8
PC2 con IP private EFGH (detrás del enrutador b)
Ahora, dada una solución ideal (es decir, no Pat) ...
Paso A:
Envíe cualquier mensaje desde PC1 en cualquier puerto (10000 para este ejemplo) al IP público para RouterB (4.5.6.7). Esto registrará ABCD: 10000 -> 4.5.6.7:10000 en el NAT y PAT para Routera. Routerb descartará este paquete (como se esperaba porque no se solicitó).
Paso B: Al mismo tiempo, envíe continuamente un paquete de PC2 al IP público del enrutador A (1.2.3.4) en el mismo puerto (10000). Esto registrará EGFH: 10000 -> 1.2.3.4:10000 en Routerb's Nat y Pat.
Paso C:
Ahora, aquí es donde sucede la magia:
PC2 está constantemente enviando el paquete a Routera, manteniendo el 'agujero' abierto en el enrutador para que regrese una respuesta. Cuando PC1 envíe su único paquete a RouterB, parecerá que Routerb como respuesta y, por lo tanto, se reenviará a PC2. Una vez que PC2 recibe esta 'respuesta', asegúrese de que se apague un paquete más y deje de enviar paquetes continuos. ¡Este último paquete actuará como 'respuesta' a PC1 y pasará por el 'agujero' creado en el paso A. y voila! Ahora tienes NAT Transversal. Solo necesita enviar un solo paquete cada minuto más o menos, ambas direcciones para mantener el 'agujero' abierto.
Nota: Esto solo funciona con UDP, ya que es sin conexión (los paquetes caídos están bien).
Ahora, casi todos los enrutadores usan PAT, por lo que debe 'adivinar' qué puerto 'responder' a la mayoría de los enrutadores hará una compensación de +-10 (IEAbcd: 10000 -> 5.6.7.8:10010).
Simplemente intente algunos en ese rango (-10 a +10 hasta que obtenga una respuesta)
El resto de los enrutadores son aleatorios en su palmadita. Si es así, estás jodido ... prueba la otra dirección (es decir, inicia la conexión en la otra dirección). Si eso falla, no puedes conectarte ... lo siento)