1

Недавнее появление BitTorrent Sync заставило меня задуматься о том, как они обеспечивают надежное одноранговое соединение между двумя компьютерами, подключенными к Интернету.

В рамках моего ограниченного понимания и исследований я понимаю, что без открытого входящего порта хотя бы на одном конце компьютеры не могут соединиться с туннелированием портов. Это правда? Если это так, значит ли это, что трекер синхронизации также ведет себя как туннель? Разве это не означает, что непомерное количество трафика попадает на их сервер?

Или есть другой способ сделать это? Я нашел этот вопрос (как ssh два компьютера за NAT и Firewall, без третьего компьютера), который связан, но без туннелирования не было дано абсолютно надежного решения.

1 ответ1

5

Я думаю, что мы путаем NAT и брандмауэр

Начнем с наихудшего сценария. У вас есть правильно настроенный брандмауэр, и все, кроме основных портов, заблокировано в обе стороны. Если вы не используете один из этих портов (и никто не использует его), вы никак не сможете соединить две системы на противоположных сторонах брандмауэра. Здесь полезны такие инструменты, как йод .

Большинство домашних брандмауэров не настолько ограничены - они запрещают многие входящие порты, но допускают большинство внешних портов. Таким образом, если соединение инициируется изнутри сети, вы можете подключиться к произвольным ресурсам. Многие методы туннелирования полагаются на это - например, ваша «классическая» обратная реализация ssh.

NAT это не брандмауэр. Все, что он делает, это позволяет вам подключать несколько систем с локальными диапазонами IP-адресов к одному внешнему IP-адресу. Кстати, это почти всегда в паре с брандмауэром, чтобы позволить вам делать такие вещи, как блокировать и переадресовывать порты. В случае NAT вы можете переадресовывать порты (или использовать upnp, даже если в наши дни это выходит из моды) или использовать многие механизмы, которые будет использовать домашний брандмауэр.

Теперь, когда я получил все это от своей системы, процесс, который мы, вероятно, рассматриваем, это « пробивание отверстий » и в большинстве случаев некоторая разновидность пробивки отверстий по протоколу TCP (поскольку UDP является опцией, и я не вижу какой-либо индикация того, что синхронизация использует другой транспортный механизм), она также имеет опцию для сопоставления портов через upnp - что из опыта быстрее. Хотя торренты могут терпеть отсутствие переадресации портов, в этом случае они работают не очень хорошо. Аналогично, в системе с наихудшим сценарием она не будет работать вообще. Торренты не волшебство.

Скорее всего, все, что делает торрент-трекер - это (очень похоже на традиционный трекер), дайте вам знать, что файл, который вы хотите, находится на конкретном клиенте, попросите обе стороны поговорить, а затем уйдите с пути.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .