Тонкости проброса портов и настройки роутера

В данном обзоре будет рассмотрено следующее: как открыть порты на роутере и что обязательно надо выполнить перед этим, а также, зачем все это нужно.

Маршрутизатор
Роутер DIR-300 D-Link

Допустим, из сети Интернет на роутер поступает пакет, адресованный на определенный порт (к примеру, 8080). Такой пакет по умолчанию – будет игнорироваться. Если же необходимо, чтобы он был направлен на один из ПК локальной сети – выполняют проброс порта, или «открывают порт».

Перед тем, как открывать порт, необходимый той или иной программе для ее работы, можно проверить: а вдруг порт уже открыт? Идем на сайт «2ip.ru» прямо с компьютера локальной сети. В адресной строке, добавляем: «/check-port/». И проверяем требуемый порт:

Ссылка 2ip.ru
Сайт 2ip.ru

А вот выполнив определенные манипуляции в настройках роутера, можно сделать так, что порт – будет открыт. Только, при этом нужно указывать IP целевого компьютера (поэтому, все ПК, для которых выполняется проброс портов на роутере – необходимо внести в «область резервации IP»).

Важно знать: открыть порт с определенным значением – можно не более, чем для одного ПК в локальной сети. То есть, нельзя открыть один порт для двух или более компьютеров.

Начальные сведения о пробросе портов

Типичные значения портов

Информация в сетях – передается пакетами. Каждый пакет несет в себе адрес получателя и значение порта (пару «адрес: порт»). Если на стороне получателя требуемый порт – закрыт, пакет попросту игнорируется и исчезает из сети.

Порты обычно используют следующие:

  • 20 и 21 – порты ftp-сервера
  • 22 – порт защищенной оболочки управления SSH
  • 80 – порт http-сервера (нужен сайт «в общем доступе» — откройте восьмидесятый порт)
  • 8080 – порт службы кэширования web (сложно сказать, что это)

В некоторых программах (например, в клиент-сервере DC++), можно прямо в настройках указывать значение порта. То есть, понятия «порт по умолчанию» в этих программах нет. Однако, значение порта – должно быть из определенного диапазона (что очень желательно).

Допустим, в локальной сети есть ПК с ftp-сервером. Также допустим, что пользователь – знает IPадрес, который назначен ему провайдером. Данный ftp-сервер можно сделать доступным из внешней сети. Для чего, выполняют открытие портов на роутере (20-го и 21-го). Маршрут входящих пакетов – станет выглядеть так:

Открытие портов на роутере
Маршрут пакета, направленного к ftp-серверу

Если то, зачем нужен «проброс портов», в общих чертах понятно – переходим к следующей главе.

Алгоритм работы проброса в роутере

Получив входящий пакет, роутер «смотрит» значение порта, на который этот пакет адресован. Внутри роутера хранится список вида «порт — > локальный адрес: порт», причем список задает сам пользователь.

Согласно заданному списку, поведение роутера – должно быть следующим:

  • Если данного значения порта нет в списке – пакет «теряется»
  • Если есть – то значение IP-адреса в заголовке пакета будет заменено (на IP целевого компьютера), и пакет будет отправлен в локальную сеть

А настройка портов роутера – это и есть создание списка. В каждой строке надо указывать 3 элемента: значение порта, прописанного в заголовке пакета; IP-адрес локального ПК, которому этот пакет надо направить; новое значение порта (обычно, его оставляют тем же).

Пример. Для компьютера с установленным сервером http (и локальным IP, равным 192.168.0.112), строка списка – должна содержать значения: «80 -> 192.168.0.112: 80». Здесь все должно быть понятно.

Настройка роутера

«Резервация» локальных IP

В роутере включен сервер DHCP, который меняет IP-адреса локальных устройств (к примеру, раз в 3 часа или чаще). Чтобы пробросить порт на ПК с определенным IP, необходимо IP «закрепить» за данным компьютером.

Открытие порта на роутере – не должно оставаться «временным». Есть метод решения – выключить DHCP. Мы поступим иначе, настроив для требуемых ПК «резервацию» IP-адресов.

В web-интерфейсе роутеров TP-Link, например, резервацию настраивать сложно. Требуется знать MAC-адрес целевого компьютера (его сетевой карточки). В Windows это можно найти, перейдя к «Состоянию» соединения (открыв вкладку «Поддержка» и нажав на «Подробности»).

В интерфейсе настройки, на вкладке «DHCP» -> «Address Reservation», нажимают кнопку «Add New»:

Бронирование адресов
Вкладка резервации адресов

Появится новая вкладка. Укажем MAC-адрес целевого ПК (а также IP, за ним «закрепляемый»):

Бронирование данных локального ПК
Резервация адреса за локальным ПК

Делаем «Status» — «Enabled», жмем «Save».

Важно знать, что «резервировать IP» придется за каждым ПК, на который мы будем пробрасывать порт (хотя бы один).

В роутерах D-Link – то же самое выполнить проще. Идем к вкладке «Setup» –> «LAN Setup»:

Закрепляем данные за ПК
Настройка локальной сети (LAN)

Видим блок «DHCP Client List» (здесь – все ПК локальной сети). Запоминаем имя «Host Name», дальше в блоке внизу – выбираем из списка требуемое. Нажимаем на кнопку «<<». IP-адрес

из средней ячейки – мы закрепили за данным ПК.

Как открыть порты через роутер, будет рассмотрено на примере устройств D-Link (у других все очень похоже).

Настраиваем проброс порта («старый» интерфейс)

Идем к вкладке «Advanced» -> «Port Forwarding», выставляем галочку слева:

Меню проброса
Вкладка проброса портов

Дальше, выполняется следующее:

  1. Надо указать целевой ПК (имя Host Name, либо – просто локальный IP)
  2. Устанавливаем используемый протокол (для большинства программ – TCP, также, можно создать два одинаковых правила для TCP и UDP)
  3. Указываем значение пробрасываемого порта (в примере – «35000»)
  4. Проверяем, что правило включено постоянно (Always On)
  5. Жмем «Save Settings»

Таким образом, мы рассмотрели, как открыть порт на роутере. В современном варианте интерфейса, можно указывать «диапазон» портов (установив минимальный и наибольший номер). Также, есть опция «изменения» для внутреннего значения порта (пакет, адресованный на порт 80, можно направить на порт 81). Рассмотрим это подробнее.

Настраиваем проброс порта («новый» интерфейс)

Прежде всего, в новом варианте роутера D-Link – надо включить межсетевой экран. Затем, администратором для него создаются «Виртуальные серверы»:

Создание «Виртуальных серверов»
Создание серверов межсетевого экрана

Нажмите кнопку «Добавить». На появившейся вкладке – мы создадим правило проброса порта:

Правило проброса порта
Проброс порта «23» на ПК 192.168.0.100

Сверху нужно задать «Custom», затем, придумать имя для правила. Мы рассматриваем, как открыть порты через роутер для пакетов, направленных «извне» (и поэтому, выбираем интерфейс «WAN»). Дальше – все стандартно: выбираем используемый протокол (TCP/UDP), указываем значение порта (в данном случае «внутреннее» — не отличается от «внешнего»). В завершение, указываем «целевой» IP-адрес и жмем «Изменить».

Проброс порта с изменением его значения

В заголовке IPпакета можно менять, во-первых, адрес получателя (что выполняется роутером), а еще – порт, на который пакет направлен. Задействовать данную опцию просто, достаточно указать «внутренний» порт (он может отличаться от «внешнего»).

Как пробросить порты на роутере, поменяв их значения — ясно из примера предыдущей главы. Надо в поле «Внутренний порт» указывать нужное программе значение. Если внешний порт равен «23», это не значит, что «внутренний» будет только таким же.

Возможные трудности

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

Что возможно по следующим причинам:

  • Не была правильно выполнена «резервация» локального адреса (что нужно для каждого целевого ПК)
  • Сервис 2ip – бесполезен, когда «внутреннее» значение порта заведомо не равно «внешнему» (будет сообщение «Порт закрыт»)
  • Мы рассмотрели, как открыть порт через роутер, но он может блокироваться провайдером

В то же время, если порт не открыт – не надо пытаться звонить провайдеру сразу. Лучше попробовать решить проблему «локально».

Здесь показано, как открыть порт в классическом интерфейсе D-Link (который отличается от рассмотренного – тут можно указывать «внутреннее» и «внешнее» значение):