Существует несколько способов, позволяющих подключать два клиента за некоторыми типами NAT.
Короче, NAT назначает временный общий адрес и порт для клиента, когда соединение установлено. В некоторых случаях, если другой клиент знает этот временный порт, он может подключиться через него.
Проверьте STUN, TURN и ICE.