Я думаю, что мы путаем NAT и брандмауэр
Начнем с наихудшего сценария. У вас есть правильно настроенный брандмауэр, и все, кроме основных портов, заблокировано в обе стороны. Если вы не используете один из этих портов (и никто не использует его), вы никак не сможете соединить две системы на противоположных сторонах брандмауэра. Здесь полезны такие инструменты, как йод .
Большинство домашних брандмауэров не настолько ограничены - они запрещают многие входящие порты, но допускают большинство внешних портов. Таким образом, если соединение инициируется изнутри сети, вы можете подключиться к произвольным ресурсам. Многие методы туннелирования полагаются на это - например, ваша «классическая» обратная реализация ssh.
NAT это не брандмауэр. Все, что он делает, это позволяет вам подключать несколько систем с локальными диапазонами IP-адресов к одному внешнему IP-адресу. Кстати, это почти всегда в паре с брандмауэром, чтобы позволить вам делать такие вещи, как блокировать и переадресовывать порты. В случае NAT вы можете переадресовывать порты (или использовать upnp, даже если в наши дни это выходит из моды) или использовать многие механизмы, которые будет использовать домашний брандмауэр.
Теперь, когда я получил все это от своей системы, процесс, который мы, вероятно, рассматриваем, это « пробивание отверстий » и в большинстве случаев некоторая разновидность пробивки отверстий по протоколу TCP (поскольку UDP является опцией, и я не вижу какой-либо индикация того, что синхронизация использует другой транспортный механизм), она также имеет опцию для сопоставления портов через upnp - что из опыта быстрее. Хотя торренты могут терпеть отсутствие переадресации портов, в этом случае они работают не очень хорошо. Аналогично, в системе с наихудшим сценарием она не будет работать вообще. Торренты не волшебство.
Скорее всего, все, что делает торрент-трекер - это (очень похоже на традиционный трекер), дайте вам знать, что файл, который вы хотите, находится на конкретном клиенте, попросите обе стороны поговорить, а затем уйдите с пути.