Переадресация портов и настройка клиента для сети Direct Connect.

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

  Активный Режим Пассивный Режим
Поисковые запросы Напрямую к/от других пользователей Направляются хабом
Результаты поиска Максимум 10 от каждого пользователя Максимум 10 от каждого пользователя
Ограничения соединения нет Пассивные пользователи не могут соединяться с другими пассивными
Требуемые настройки Настройки роутера/брэндмауэра если используется нет

    Настройка активного режима:
    Рассмотрим первый, самый простой случай, требующий только настройки клиента - когда у нас установлен режим моста (bridge) в роутере или ethernet кабель напрямую подключён в сетевую карту (например, при ETTH соединении):

Ниже на примере программы FlylinkDC++ в настройках соединения мы выбираем прямое:



    Рассмотрим второй случай, когда используется роутер в режиме маршрутизатора и настройка активного режима требует двух шагов:

* Настройки переадресации портов на маршрутизаторе/шлюзе.
* Настройки активного режима в клиенте DC++.

Настройка переадресации портов

    К сожалению, процесс настройки переадресации называется по разному у различных производителей маршрутизаторов. Он может называться: port forwarding, port mapping, virtual servers (для роутеров D-Link) или другими синонимами. Не важно как они называются, все они используют один принцип. Его идея состоит в следующем: маршрутизатор настраивается таким образом, что соединение на определенный порт на маршрутизатор (порт выбранный вами) переадресуется на конкретную машину внутри сети.

Ниже рассмотрим настройку переадресации портов (порт-форвардинг) для роутера ZyXel P660RT2:

Открываем браузер, переходим по адресу 192.168.1.1. Логинимся, идём на вкладку Network > NAT > Port Forwarding. Создаём правила, выбрав Service Name - User define (выбранное пользователем):

Указываем IP-адрес сетевой карты (в данном примере - 192.168.1.2, у вас возможно другой,  узнать можно введя в командной строке ipconfig, нас там интересует ipv4 адрес). Для протокола TCP назначаем порт 30001:

Для протокола UDP назначаем порт 30002:

Нажимаем Apply, видим 2 новых созданных правила:

Это означает, что перенаправление успешно создано. В большинстве моделей правила вступают в действие без перезагрузки роутера.

Следующий шаг - настройка клиента DC++ на примере программы FlylinkDC++:

  Мы ввели номера портов TCP и UDP, это должны быть порты, настроенные на переадресацию в предыдущем разделе. Порты можно назначать произвольного номера, желательно порядком выше. TCP и UDP порт в большинстве клиентов можно указать один и тот же, TLS порт также следует открыть. Если есть необходимость в DHT, то переадресация потребуется и для её порта (в GreylinkDC++ не выделяется отдельный порт для DHT, настройка не требуется). В программе можно протестировать доступность подключений на указанные порты, воспользовавшись опцией "Проверить настройки". В клиентах FlylinkDC++, Greylink есть полезная опция - автоматически обновлять IP-адрес. При несоответствии IP-адреса хаб отключает пользователя; чтобы избежать этого, рекомендуется поставить галочку (если у вас динамический IP).

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

    Если локальная сеть небольшая или её нет совсем, то нежелательно иметь настройку роутера на получение внутреннего IP сервером DHCP и соответственно настройку системы на регистрацию и обновление внутреннего IP-адреса, т.к. при смене адреса слетают все вышеуказанные настройки. В таком случае отключаем DHCP-сервер через веб-интерфейс роутера и задаём статический адрес в Windows (на примере Windows 7):
 Static6.jpg

Вышеуказанные поля заполняются из следующих соображений: сетевой интерфейс и подключаемый к нему LAN порт маршрутизатора должны принадлежать к одной подсети. Допустим, что LAN порт маршрутизатора имеет IP-адрес 192.168.1.1, тогда сетевому интерфейсу компьютера необходимо указать IP-адрес из диапазона от 192.168.1.2 до 192.168.1.254 (маска подсети 255.255.255.0). IP-адрес шлюза должен совпадать с IP-адресом LAN порта маршрутизатора (в нашем примере 192.168.1.1).



    

    Также следует иметь в виду, что некоторые брэндмауэры (файрволлы), в том числе встроенные в антивирусы, блокируют входящие подключения. Проблема устраняется созданием разрешающего правила на соответствующие порты и конкретную программу.

    Кроме того, можно встретить встроенные во многие версии DC++ клиентов фильтры IP, разрешающие трафик только на локальный диапазон адресов. Если нет необходимости в данном фильтре, удаляется файл ipfilter.dat в папке программы и удаляется URL автозагрузки фильтра из Интернета.

    В выборе DC++ клиента может помочь статья http://ru.wikipedia.org/wiki/Сравнение_клиентов_Direct_Connect

Были использованы источники:

http://dccp.ru/node/64

http://79.120.0.54/wiki/index.php/Общие_вопросы