Устранение неполадок переадресации портов

From DD-WRT Wiki

Jump to: navigation, search

Contents

[edit] Введение

На этой странице объясняется, как устранить неполадки, связанные с переадресацией портов, чтобы выяснить, в чём на самом деле заключается проблема и исправить её. Могут быть самые разные проблемы, включая:

  • несколько уровней преобразования сетевых адресов NAT (маршрутизатор за другим маршрутизатором);
  • неправильная настройка переадресации портов;
  • программные брандмауэры на перенаправляемом компьютере;
  • необъяснимое поведение, вызванное не сделанным сбросом 30/30/30;
  • и т.д.

Сначала вы должны ознакомиться с руководством по настройке переадресации портов, прежде чем пытаться устранить неполадки.

[edit] Основные варианты

[edit] Сброс 30/30/30

Единственные случаи, когда я видел настоящие ошибки с переадресацией портов в DD-WRT, - это необъяснимое поведение, вызванное правилами iptables, которое было исправлено путем сброса 30/30/30 и настройки маршрутизатора с нуля. Если в конфигурацию маршрутизатора внесено мало изменений, попробуйте выполнить сброс к настройкам по умолчанию и начать сначала. Если изменений много, сначала попробуйте другие варианты, т.к. большинство проблем в любом случае являются ошибками пользователя.

[edit] Проверка IP-адреса интерфейса WAN

Откройте веб-интерфейс и проверьте IP-адрес интерфейса WAN маршрутизатора.

  • Если IP-адрес интерфейса WAN равен 0.0.0.0, значит нет подключения к Интренету или маршрутизатор используется в конфигурации моста или коммутатора (bridge/switch) канального уровня (уровень 2) сетевой модели OSI (WAP, WDS, CB, RB). Если второе, то переадресация портов не требуется, поскольку маршрутизатор не выполняет преобразование сетевых адресов (NAT) или маршрутизацию. Если первое, то нужно исправить проблемы с интернет-соединением, что в данной статье не обсуждается.
  • Если IP-адрес интерфейса WAN начинается с 192.168.x.x, 172.[16-31].x.x или 10.x.x.x, то маршрутизатор находится за другим маршрутизатором, который также выполняет преобразование сетевых адресов (NAT). Нужно настроить перенаправление портов на обоих маршрутизаторах либо организовать демилитаризованную зону (ДМЗ).
  • Любой другой IP-адрес интерфейса WAN, скорее всего, является публичным (маршрутизируемым) адресом, на котором просто нужно правильно настроить переадресацию портов.

[edit] Тестирование обратной петли

Некоторые интернет-провайдеры блокируют определенные порты или даже проводят глубокий анализ пакетов (Deep packet inspection, уровень 7 сетевой модели OSI), поэтому, чтобы определить, работает ли переадресация портов, вы должны попытаться получить доступ к порту изнутри локальной сети, используя обратную петлю NAT (NAT loopback). Этот тест будет работать, только при использовании клиентской программы, которая позволяет указать IP-адрес и порт для подключения. Если способной на это программы нет (например, веб-браузер для подключения к HTTP-серверу), можно использовать сканер портов Nmap, чтобы проверить, открыт ли порт.

Чтобы проверить открыт ли один определенный порт TCP и UDP с использованием Nmap, используйте следующие параметры:

nmap -sT -sU -p [порт] [IP-адрес]
  1. Перейдите на страницу Security → Firewall веб-интерфейса DD-WRT.
  2. Снимите флажок Filter WAN NAT Redirection (снят по умолчанию), что означает, что обратная петля будет разрешена. Если отключен SPI-брандмауэр (Stateful Packet Inspection), придется временно включить его, чтобы изменить этот параметр.
  3. Убедитесь, что устройство, на которое выполняется переадресация, прослушивает заданный порт. Т.е. что на компьютере запущена программа, для которой вы пытаетесь перенаправить порт, чтобы она принимала соединения. Если у вас нет программы, прослушивающей порт назначения, он будет закрыт!
  4. Подключитесь по адресу маршрутизатора [IP-адрес_маршрутизатора]:[перенаправляемый_внешний_порт] с любого устройства в локальной сети, используя клиентскую программу или сканер портов Nmap.

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

  • Временно отключите все брандмауэры и повторите тестирование.
  • Если у между маршрутизатором и компьютером находится еще один маршрутизатор, отделяющий сегменты сети, то необходимо настроить первый маршрутизатор для переадресации портов на IP-адрес интерфейса WAN промежуточного маршрутизатора, а уже его - для переадресации на компьютер. После этого попробуйте повторить тест, по очереди указав IP-адреса обоих маршрутизаторов.
  • Если вы подозреваете, что интернет-провайдер блокирует трафик, ведь у маршрутизатора есть общедоступный IP-адрес и тест обратной петлей сработал, нужно отключить все маршрутизаторы и подключить компьютер напрямую к линии интернет-провайдера. Если компьютер не получает IP-адрес от провайдера, может потребоваться отключить модем на несколько минут, чтобы освободить привязку MAC-адреса.
  • Если переадресация портов по-прежнему не работает, нужно взглянуть на правила iptables, чтобы увидеть, нет ли ошибок или неправильной настройки, или выполнить сброс 30/30/30 и выполнить конфигурацию с самого начала. Вы также можете попросить совета на форуме. Подключитесь к маршрутизатору, используя Telnet или SSH, выполните команды ниже и опубликуйте вывод команды вместе с вопросом в новой теме.
iptables -t nat -vnL PREROUTING
iptables -vnL FORWARD