Каким образом торрент обходит NAT?

Суть торента на сколько я понимаю состоит в том, что файлы качаются не с сервера(ну или не только с него), а с компов других людей, которые уже скачали эти самые файлы, а это в свою очередь как я понимаю означает что торрент как-то пробрасывать порты через NAT, то есть открывает порты на сером ip.
А теперь вопрос: как он это делает и можно ли подобным образом открыть порт для сервера например?
  • Вопрос задан
  • 403 просмотра
Пригласить эксперта
Ответы на вопрос 7
HemulGM
@HemulGM
Delphi Developer, сис. админ
Торрент клиент может использовать UPnP для общения с роутером и проброса временных портов.
5ee9ae63da931587928866.png
Ответ написан
chupasaurus
@chupasaurus
Сею рефлекторное, злое, временное
Белые адреса, VPN/Proxy или работающий UPnP у других пиров. С первыми двумя всё понятно, третья технология позволяет прозрачно для приложения прокидывать порт для прослушивания и включена по-умолчанию на большинстве домашних роутеров.
Ответ написан
CityCat4
@CityCat4
Если я чешу в затылке - не беда!
Ничего он никуда не пробрасывает. Сто тысяч раз было уже обьяснено - любой проход через NAT делается только коннектом на заранее известный сервер (или сет из серверов). Инициация коннекта изнутри NAT, фиксация на внешнем сервере и соединение по указанному порту или порту по умолчанию. И все. И так работают все программы, "обходящие" NAT, потому что другого способа просто нет.
Ответ написан
Diman89
@Diman89
Если у всех раздающих будут серые IP, вы ничего не скачаете. Вы скачиваете только от раздающих с белыми IP
Ответ написан
saboteur_kiev
@saboteur_kiev
software engineer
Ваш торрент-клиент подключается к торрент-трекеру.
Другие торрент-клиенты подключаются к торрент-трекеру.

Торрент-трекер сообщает вашему торрент-клиенту список доступных торрент-клиентов, которые сейчас подключены.

То есть для вас торрент-трекер выступает сервером, через который он вас связывает и предоставляет по какому адресу-порту можно обмениваться данными напрямую. Но этот адрес-порт уже открыт со стороны клиента, когда он подключался к торрент-трекеру.
Ответ написан
@Igorjan
Teredo

Вариант автоматической настройки из-за NAT. Если у вас есть uTorrent 1.8 и выше, у него в настройках появилась кнопка «Install IPv6/Teredo» — её нажатия достаточно для настройки. Для установки вручную надо из командной строки выполнить две команды:
ipv6 install
netsh int ipv6 set teredo client
В *никс системах достаточно установить miredo например, командой:
sudo apt-get install miredo
В Vista он включен по умолчанию.

Минус такого варианта в том, что он работает не со всеми типами NAT. Если после установки у вас не открывается ipv6.google.com запустите из командной строки
netsh int ipv6 show teredo
если написано «Ошибка: клиент за симметричным NAT» — вам не повезло. В любому случае, очень желательно установить последние сервиспаки, например XP SP2 создавала адрес с префиксом 3ffe: а не 2001: В SP3 это исправлено, в SP2 можно поставить KB922819 или в regedit поправить/добавить \HKLM\System\CurrentControlSet\Services\Tcpip6\Parameters\GlobalParams\TeredoPrefix на 0x120 (288). Второй минус в том, что не смотря на кажущуюся простоту настройки, далеко не всегда всё оказывается просто. У одних всё работает только при выключенном встроенном в винду фаерволе, у кого-то — наоборот, только при включенном. И заранее описать все возможные проблемы, конфликты, и способы их решения просто невозможно.

Большой плюс (как и в случае 6to4) в том, что с теми, кто также подключен через teredo, вы будете соединяться напрямую, внешний сервер будет только помогать установить соединение посредством NAT Traversal, и возможно пускать через себя ping. Поэтому скорость будет не хуже, чем в случае прямого соединения (потери на «оборачивание» IPv6 пакетов в UDPv4-пакеты минимальные).

https://habr.com/ru/post/53625/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы