Содержание
- 1 Как зайти в роутер TP-Link
- 2 Проброс портов на Archer
- 3 Как открыть порт на TP-Link
- 4 Что такое проброс портов
- 5 Зачем нужно открывать порты на роутере?
- 6 Переадресация портов
- 7 Возможные проблемы при пробросе портов и их решение
- 8 Как закрыть порты
- 9 Перед тем, как начать
- 10 Windows
- 11 LINUX
- 12 FreeBSD
- 13 OpenBSD
- 14 Cisco
- 15 Openwrt и DD-WRT
- 16 Другие подходы
- 17 Выводы
- 18 UDP-туннель между двумя NAT
- 19 Автоматический проброс портов
Проброс портов на роутере TP-Link Archer приходится делать для разных онлайн-игр или чтобы получить доступ к устройствам в локальной сети — камере наблюдения, видеорегистратору и т.п. По умолчанию все входящие подключения к роутеру запрещены и если не открыть порт на ТП-Линке, то доступа к нужным сервисам не будет! Как это сделать Вы узнаете в нашей инструкции.
Как зайти в роутер TP-Link
Прежде чем показывать как сделать проброс портов на ТП-Линке, мы покажем Вам как правильно зайти в настройки роутера TP-Link Archer, так как многие даже не в курсе как это делается.
Начинаем с того, что берём в руки свой Wi-Fi маршрутизатор, переворачиваем и смотрим что написано на наклейке, а именно в поле «Данные для входа по умолчанию»:
Первое, что понадобится — это адрес устройства в локальной сети. У роутеров TP-Link обычно используется адрес tplinkwifi.net, как на картинке выше, либо IP-адрес 192.168.0.1. У ADSL-модемов иногда встречается адрес tplinkmodem.net. Вы должны ввести этот адрес в адресной строке веб-браузера на подключенном к роутеру компьютере, ноутбуке или смартфоне:
После этого должна открыться страничка для ввода логина и пароля на вход. В эти поля впишите логин и пароль с наклейки. Если заводской пароль не подошёл, значит ранее его уже изменили. Что делать в этом случае написано в инструкции не подходит пароль к роутеру. После удачной авторизации можно выполнять указанные ниже действия.
Проброс портов на Archer
В современном веб-интерфейсе роутеров TP-Link настройка поделена на три варианта. Быстрая, Базовая и Дополнительная. Чтобы открыть порт на Archer C5, C6, C60 нужно открыть «Дополнительные настройки» и в меню слева выбрать раздел «NAT Переадресация» >>> «Виртуальные серверы».
- В поле «Тип сервиса» пишем название программы, игры или сервера, для которого делаем проброс портов. Ниже указываем номер порта внешнего и внутреннего. Если нужно указать диапазон портов — прописываем номер начального и через дефис — номер конечного порта.
- Так же надо указать локальный IP-адрес того компьютера или устройства, для которого делается проброс и выбрать используемый протокол. Ну или поставить там значение «Все», чтобы порт был открыть для всех протоколов сразу. Не забудьте поставить галочку «Включить», чтобы правило было активным.
- Нажимаем на кнопку «Сохранить», чтобы применить настройки.
В таблице виртуальных серверов появится новая строчка! Можно проверять доступность!
Как открыть порт на TP-Link
Теперь рассмотрим проброс портов на роутерах TP-Link со старым веб-интерфейсом. Такой интерфейс использовался ещё 10 лет назад и имел более ярко-зелёную окраску. На более новых маршрутизаторах он немного изменил цвет и теперь выполнено в более сине-голубых тонах. Что интересно — элементы меню практически не изменились за это время.
Для того, чтобы открыть порты, вам нужно в меню роутера TP-Link открыть раздел «Переадресация» >>> «Виртуальный сервер».
На появившейся страничке нажимаем кнопку «Добавить», чтобы создать правило проброса порта. Откроется вот такое меню:
- Тут указываем порт сервера или диапазон портов, а так же IP-адрес компьютера или устройства в локальной сети, для которого делаем проброс.
- Повторяем номер порта в поле «Внутренний порт».
- В поле «Протокол» выбираем значение ВСЕ.
- Состояние выбираем «Включено».
- Нажимаем кнопку «Сохранить», чтобы проброс порта на ТП-Линке сохранился.
В таблице виртуальных серверов появится новая строчка. Можно приступать к проверке.
P.S.: Если в результате проверки Вы обнаружили, что открытый порт закрыт и соединения из внешней сети на него не проходят, то Вы должны учитывать следующее:
- Порт, для которого Вы делали проброс, должен быть открыт на компьютере или ином устройстве, IP-адрес которого Вы указывали. То есть в правилах его брандмауэра так же должны быть разрешены входящие соединения на этот порт.
- В момент проверки Вы должны запустить сервер или игру, для которой открывался порт. Иначе, даже если всё правильно прописано, то тест покажет, что порт закрыт.
Проброс портов является важной функцией, которая позволяет получить доступ к локальному устройству или серверу из внешней сети. Некоторые интернет-сервисы, в частности торрент-клиенты, онлайн-игры, приложения для удалённого доступа требуют открытия дополнительных портов. Давайте рассмотрим, как пробросить порты самостоятельно и какие проблемы при этом могут возникнуть.
Что такое проброс портов
В компьютерных сетях портом называют числовой идентификатор от 0 до 65 535, указываемый при запросе на соединение. Стандартные номера портов назначаются серверным службам Центром управления номерами интернета (IANA). Например, веб-серверы обычно используют порт 80, FTP-серверы — порты 20 и 21, SMTP-серверы — порт 25 и 110. Перечень общеизвестных и зарегистрированных организацией IANA портов, а также их краткое описание можно посмотреть на сайте «Википедия» по адресу https://ru.wikipedia.org/wiki/Список_портов_TCP_и_UDP.
Белым цветом в таблице выделены порты, зарегистрированные IANA, синим — незарегистрированные, а жёлтым — конфликтные порты, имеющие несколько применений наряду с зарегистрированным
Использование портов позволяет компьютерам, ноутбукам, смартфонам одновременно запускать несколько служб/приложений. А переадресация портов сообщает маршрутизатору, на какое устройство внутри сети должны быть направлены входящие соединения и с каким именно приложением на этом устройстве нужно связаться для обмена пакетами данных.
Зачем нужно открывать порты на роутере?
Функция переадресации портов довольно часто используется как в домашних сетях, так и в корпоративных. Варианты использования перенаправления портов могут быть следующими:
- доступ к камерам видеонаблюдения, когда вы находитесь вдали от дома;
- настройка сервера RDP для удалённого доступа к компьютеру из внешней сети;
- обеспечение дополнительного уровня безопасности сети за счёт скрытия IP-адреса;
- ускорение загрузки файлов с торрентов и файлообменников;
- подключение к почтовой службе или FTP-серверу;
- посещение веб-сайтов с регионально ограниченным доступом;
- создание виртуального сервера для тестирования сайта на домашнем ПК;
- настройка IP-телефонии;
- подключение к игровым серверам с многопользовательскими видеоиграми, например, Counter Strike или Minecraft.
На роутере можно настроить проброс портов для всех устройств локальной сети, присвоив им разные IP-адреса
Переадресация портов
Для открытия портов на роутере не нужно быть опытным администратором — с этой процедурой справится любой пользователь. Главное, следовать пошаговой инструкции, состоящей из двух основных этапов: присвоения статического IP-адреса пользовательскому компьютеру в настройках ОС Windows и перенаправления портов в админ-панели маршрутизатора.
Предварительные настройки «Виндовс»
Перед пробросом портов нужно для устройств локальной сети выделить диапазон внутренних IP-адресов, после чего закрепить по одному адресу за каждым ПК. Сделать это можно в настройках компьютера либо в панели администрирования роутера (раздел DHCP). Первый способ является более надёжным, так как статический адрес прописывается в настройках сетевой карты и без вашего вмешательства ничто и никто его не изменит. Для запуска данного процесса нужно включить ПК и произвести несколько действий:
- Перейти в раздел «Сетевые подключения», воспользовавшись системной утилитой «Выполнить» (вызывается сочетанием клавиш Win + R в любой версии Windows). В появившемся окошке ввести команду ncpa.cpl и нажать кнопку «ОК» или клавишу «ENTER».
Для быстрого перехода к разделу с сетевыми подключениями можно использовать системную программу «Выполнить»
- В открывшемся окне кликнуть правой кнопкой мыши по активному сетевому подключению и выбрать пункт «Свойства».
При клике ПКМ по активному подключению появится контекстное меню
- Сделать двойной клик по строке «IP версии 4 (TCP/IPv4)», чтобы открыть свойства протокола.
В «Свойствах подключения» первым делом нужно убедиться в том, что пункт «IP версии 4 (TCP/IPv4)» включён, после чего перейти к настройке протокола
- В окне «Свойства» активировать пункты «Использовать следующий IP-адрес» и «Использовать следующие адреса DNS-серверов». После чего заполнить обязательные поля:
- «IP-адрес» — сюда вписать адрес из диапазона внутренней локальной сети, например, любое значение от 192.168.0.2 до 192.168.0.200 (единственное условие — он должен отличаться от адреса роутера),
- «Маска подсети» — в домашних сетях чаще всего этот параметр имеет значение 255.255.255.0,
- «Основной шлюз», в роли которого выступает IP-адрес роутера (по умолчанию 192.168.0.1 или 192.168.1.1),
- «Предпочитаемый DNS-сервер» — здесь чаще всего указывают DNS-адреса провайдера или альтернативного источника, например, публичного сервиса Google Public DNS (8.8.8.8 и 8.8.4.4.).
В окне настроек протокола можно задать статичный IP-адрес компьютеру и DNS-серверу
- Подтвердить настройки нажатием «ОК».
Проброс портов в веб-интерфейсе маршрутизатора
После того как для компьютера зафиксирован статичный IP-адрес, можно переходить к настройке роутера (на примере TP-Link). Для этого нужно выполнить следующие действия:
- Войти в админ-панель маршрутизатора, введя в браузерной строке адрес устройства (для большинства роутеров по умолчанию используется 192.168.0.1 или 192.168.1.1).
По умолчанию для входа в веб-интерфейс большинства роутеова используются одинаковые логин и пароль — admin
- В боковом меню выбрать раздел «Переадресация», а в нём подраздел «Виртуальные серверы».
- В открывшемся окне нажать кнопку «Добавить» для создания нового правила переадресации.
Чтобы открыть новый порт, нужно воспользоваться кнопкой «Добавить» в разделе «Виртуальные серверы»
- Откроется диалоговое окно, где обязательно нужно заполнить два поля: «Порт сервиса» — здесь указывается номер порта, который нужно открыть, и «IP-адрес» — присвоенный компьютеру статический адрес в сети. Поле «Внутренний порт» можно оставить пустым, а поля «Протокол» («Все») и «Состояние» («Включено») оставить по умолчанию. После чего подтвердить настройки, нажав на кнопку «Сохранить».
В настройках виртуального сервера обязательно нужно указать номер внешнего порта и статичный IP-адрес компьютера или другого сетевого устройства
При необходимости проброса стандартных портов в роутере имеются предустановленные настройки. Достаточно выбрать в выпадающем списке «Стандартный порт сервиса» нужную службу (DNS, FTP, HTTP, POP3, SMTP, TELNET), как все поля заполнятся автоматически.
Для облегчения процесса настройки стандартных портов предусмотрено соответствующее поле с перечнем общеизвестных портов
Возможные проблемы при пробросе портов и их решение
Иногда при проверке работоспособности добавленных портов пользователь попадает из интернета в панель администрирования роутера, а не на нужный сервис или приложение на компьютере. Почему так происходит? Причин может быть несколько:
- блокировка внешнего соединения брандмауэрами и антивирусными программами. Решается данная проблема отключением этих служб либо их тонкой настройкой, во время которой добавляются исключения на подсоединение к нужным портам;
- у компьютера нет постоянного адреса. В таком случае при старте или перезагрузке роутера IP-адрес ПК изменится, и открытый порт перестанет работать, поскольку изначально был привязан к другому адресу. Решение — присвоить компьютеру (ноутбуку, планшету) неизменяемый IP-адрес;
- политика провайдера. Не редки случаи, когда интернет-провайдер запрещает обладателям «серых» (внутренних) IP-адресов использовать некоторые порты, например, торрент-трекеров. Выход из данной ситуации — приобретение статичного «белого» адреса;
- изменение порта самим приложением или сервисом. Иногда программы-клиенты самостоятельно меняют порт при каждом запуске. Избежать этого можно, если прописать порт в настройках софта и запретить опцию «Случайный выбор порта».
В настройках программы uTorrent (раздел «Соединение») можно указать порт входящих соединений и запретить выбор случайного порта при запуске
Как закрыть порты
Очень часто при использовании пользователем различных веб-серверов и сервисов удалённого доступа может возникнуть необходимость закрыть тот или иной порт. Осуществить эту процедуру можно в админ-панели маршрутизатора. Удаление портов производится в той же вкладке, где настраивался их проброс («Переадресация» → «Виртуальные серверы»). В списке открытых портов напротив каждого из них есть две ссылки «Изменить» и «Удалить». Нажав на вторую, произойдёт закрытие (удаление) порта и он перестанет отображаться в панели управления.
Для редактирования и удаления открытых портов во вкладке «Виртуальные серверы» есть соответствующие ссылки
Настройка перенаправления портов в веб-интерфейсе роутера не требует определённых знаний. Пользуясь вышеизложенной инструкцией на примере маршрутизатора TP-Link, любой пользователь при необходимости сможет открыть доступ к устройствам локальной сети из интернета. Алгоритм проброса портов в роутерах других производителей может несколько отличаться, но главные этапы настройки будут одинаковы.
У этой технологии есть множество названий — это и трансляция портадреса, и проброс портов, и перенаправление, и буржуйские порт-форвардинг/порт-маппинг, и сокращенные DNAT/PAT. Но как бы она ни называлась, о ее полезности спорить не приходится. Проброс портов — просто спасательный круг для тех, кто хочет показать свой сервер из-за высокой и крепкой стены под названием NAT.
Перед тем, как начать
Эта статья рассказывает о настройке проброса портов в самых разных операционных системах, начиная с Windows и заканчивая ОС, установленными на сетевом оборудовании. В большинстве случаев для реализации проброса портов используются специальные правила брандмауэра, и здесь я должен сделать первое предостережение.
Дело в том, что любой брандмауэр выполняет трансляцию сетевых адресов до их фильтрации, поэтому описанные в статье правила должны находиться в начале. Второе: для успешного прохождения оттранслированных пакетов должны быть добавлены правила, разрешающие входящие подключения на целевой порт шлюза, а также правила, разрешающие обмен данными между внутренней целевой машиной и шлюзом.
Windows
Начнем, как говорится, с азов. Проще всего проброс портов настроить в операционных системах семейства Windows. Здесь все это делается в «Свойствах NAT»:
- Заходим в «Администрирование -> Маршрутизация», выбираем локальную машину, далее «IP-маршрутизация -> NAT».
- Включаем NAT для локального интерфейса.
- Переходим к вкладке «Службы и порты», выбираем интересующую нас службу или добавляем свою.
- В открывшемся окне выбираем протокол, входящий порт (тот, который будет виден извне), адрес машины внутренней сети и ее порт.
LINUX
В Linux все намного сложнее, здесь необходимо оперировать правилами iptables/netfilter, без знания основ которого просто не обойтись. Для осуществления проброса портов предусмотрена цель DNAT, которую необходимо использовать в правилах цепочки PREROUTING. В самом простейшем случае правило будет выглядеть следующим образом:
iptables -t nat -A PREROUTING -p tcp --dst $GATE --dport $PORT -j DNAT --to-destination $SERVER:$PORT
Где $GATE — это адрес шлюза, $PORT — пробрасываемый порт, а связка $SERVER:$PORT — это адрес и порт внутреннего сервера. Естественно, чтобы правило сработало, должен быть включен форвардинг (хотя на шлюзе он в любом случае включен):
# echo 1 > /proc/sys/net/ipv4/ip_forward
Проброс портов возможен и с другой машины:
$IPTABLES -t nat -A PREROUTING -p tcp --dst $IP --dport $PORT -j DNAT --to-destination $SERVER:$PORT $IPTABLES -t nat -I POSTROUTING -p tcp --dst $SERVER --dport $PORT -j SNAT --to $IP
Это вполне легально, а иногда и просто необходимо. Различные преконфигурированные iptables-скрипты, такие как, например, знакомый пользователям Debian, arno-iptables-firewall, также можно использовать для более простой настройки проброса портов. Например, если ты хочешь пробросить порт 80 на машину 192.168.0.100, для этого достаточно добавить строку NAT_TCP_ FORWARD=»80>192.168.0.100″ в файл /etc/arno-iptables-firewall/firewall.conf и перезагрузить брандмауэр:
$ sudo /etc/init.d/arno-iptables-firewall restart
FreeBSD
1. Включить natd и ipfw в /etc/rc.conf:
# vi /etc/rc.conf # Включаем natd natd_enable="YES" # rl0 — внутренний интерфейс шлюза natd_interface="rl0" natd_flags="-f /etc/natd.conf" # Включаем ipfw firewall_enable="YES" firewall_type="/etc/ipfw.conf"
2. Настроить NAT и проброс портов в /etc/natd.conf:
# vi /etc/natd.conf same_ports yes use_sockets yes # Проброс портов: # протокол адрес-сервера-внутри-сети:порт порт-на-шлюзе redirect_port tcp 192.168.0.100:80 80
3. Чтобы все пакеты, проходящие через внешний интерфейс (rl1) шлюза, перенаправлялись в natd и обрабатывались им, добавим правило divert в /etc/ipfw.conf:
ipfw add divert natd ip from any to any in via rl1
Также разрешим общение всех с внутренним сервером:
ipfw allow tcp from any to 192.168.0.100 dst-port 80 in via rl0 setup
Далее можно добавить правила фильтрации. Метод номер два: ядерный NAT. Активация NAT с помощью реализации внутри ядра не требует ничего, кроме правильной настройки брандмауэра с помощью двух-трех правил. Не буду расписывать все в деталях, а просто приведу простой пример, демонстрирующий уже обсуждавшийся выше проброс 80-го порта со шлюза на внутренний сервер:
# vi /etc/ipfw.conf # Настраиваем NAT nat 1 config log if rl1 reset same_ports redirect_port tcp 192.168.0.100:80 80 # Заворачиваем весь трафик через внешний интерфейс в NAT add nat 1 ip from any to any via rl1
Правила ‘nat’ имеют несколько опций, большинство из которых совпадает с опциями, используемыми демоном natd. Например, опция same_ports предписывает механизму NAT сохранять оригинальные номера исходящих портов для исходящих пакетов (нужно для правильной работы некоторых RPC-протоколов). Опция rdirect_port имеет тот же синтаксис, что и в файле /etc/natd.conf.
OpenBSD
Наверное, самый логичный и простой в настройке проброс портов получается в ОС OpenBSD. Здесь механизм NAT также реализован в ядре и настраивается с помощью штатного pf, синтаксис которого куда яснее и продуманнее синтаксиса ipfw и, уж тем более, iptables. Все тот же проброс 80-го порта на языке pf будет выглядеть следующим образом:
# vi /etc/pf.conf # Настраиваем NAT nat on rl1 from 192.168.10.0/24 to any -> $out_ip # Настраиваем проброс портов rdr on rl1 inet proto { tcp, udp } from any to $out_ip port 80 -> 192.168.0.100
Как и прежде, rl1 — внешний интерфейс шлюза, 192.168.0.100 — адрес внутреннего сервера, а out_ip — адрес внешнего интерфейса шлюза. При этом, если проброс должен быть сделан на порт, отличный от 80-го, достаточно просто добавить ключевое слово «port» и числовое значение в конец первого правила.
Разрешается использование диапазонов портов, если, конечно же, оно может иметь какой-то смысл:
rdr on rl1 inet proto { tcp, udp } from any to $out_ip port 5000:10000 -> 192.168.0.100
Прим. ред.: Например, с помощью этой фичи удобно разрешать прохождение трафика bittorrent:
rdr on $ext_if inet proto tcp from any to $ext_if port 6881:6889 -> $myhost port 6881:6889 pass in quick on $ext_if inet proto tcp from any to $myhost port 6880 >< 6890 keep state
Как и в других рассмотренных ранее брандмауэрах, принятие решения о дальнейшей судьбе пакетов возлагается на правила фильтрации, через которые пакет будет пропущен уже после перенаправления. Но есть одно маленькое исключение: используя ключевое слово «pass» совместно с правилом rdr можно добиться такого поведения системы, когда пакеты будут отпускаться во внешний мир, минуя правила фильтрации (см. скриншот «Форвардим входящие запросы на сервер терминалов и SQL-сервер»). Эта особенность может быть использована для отладки правил.
Будь внимателен, в OpenBSD 4.7 синтаксис конфига несколько изменился:
pass out on rl1 from 192.168.0.0/24 to any nat-to $out_ip pass in on rl1 proto tcp from any to any port 80 rdr-to 192.168.0.100
Cisco
С моей стороны было бы кощунством не рассказать про настройку проброса портов с помощью сетевого оборудования небезызвестной компании Cisco. Благо, здесь все решается одной простой строкой, которая, тем не менее, будет разной для различных типов устройств. Например, проброс портов в Cisco PIX (Private Internet Exchange) или ASA (Adaptive Security Appliance) осуществляется с помощью следующей строки конфигурации:
static (inside,outside) tcp 1.2.3.4 www 192.168.0.100 www netmask 255.255.255.255
В то же время для оборудования, работающего на операционной системе Cisco IOS, строка будет выглядеть так:
ip nat inside source static tcp 192.168.0.100 80 1.2.3.4 80
Обе они не делают ничего кроме проброса порта 80 на сервер 192.168.0.100 для клиента с адресом 1.2.3.4. При этом если необходимо настроить проброс всех портов, достаточно просто опустить номера/ имена портов в строке конфигурации.
Openwrt и DD-WRT
Конечно же, кроме оборудования именитой Cisco на рынке существуют и гораздо менее дорогостоящие решения вроде разного рода домашних роутеров и точек доступа. Большой популярностью среди них пользуются ультра-бюджетные сетевые устройства таких компаний, как D-Link, ASUS, Linksys и других. На многих из них можно установить свободные и более продвинутые прошивки вроде OpenWrt, X-Wrt и DD-wrt, которые отличаются более развитой системой настройки и хорошим комьюнити. Естественно, проброс портов легко выполнить и с их помощью. В DD-Wrt проброс портов осуществляется с помощью локализованного веб-интерфейса. Чтобы настроить проброс по описанной выше схеме, достаточно открыть веб-интерфейс роутера (192.168.1.1), перейти на вкладку «NAT/QoS», далее — вкладка «Перенаправление портов». Теперь в поле «Приложение» пишем любое удобное для нас имя, например, «www», «Порт-источник» — внешний порт роутера, «Протокол» — TCP или UDP, «IP-адрес» — адрес внутреннего сервера, «Порт-приемник» — его порт. Далее выбираем галочку «Включить», жмем кнопку «Добавить », потом — кнопку «Применить».
Это действительно простой путь, который… не сработает для большинства российских провайдеров, предоставляющих как доступ к локальной сети (прямой), так и доступ к сети интернет (через VPN/PPTP). Дело в том, что добавленное таким образом правило будет применено к внешнему физическому интерфейсу, тогда как интерфейс ppp0, используемый для выхода в интернет через VPN/PPTP, останется не при делах. Для решения проблемы можно воспользоваться прямым вмешательством в недра DD-Wrt. Открываем вкладку «Тех.обслуживание», далее — «Команды» и набираем стандартные правила iptables:
iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 80 -j DNAT --to 192.168.0.100:80
Нажимаем «Сохр. брандмауэр» и перезагружаемся. Ненамного труднее выполнить эту операцию с помощью веб-интерфейса прошивок X-Wrt, представляющих собой, по сути, более юзабельный вариант OpenWrt. Жмем на «Network», затем «Firewall», выбираем в меню «New Rule» пункт «Forward» и нажимаем «Add». Записываем в поле «Forward To» IP-адрес внутреннего сервера, в поле «Port» помещаем номер пробрасываемого порта. В выпадающем меню выбираем пункт «Protocol» и нажимаем «Add», в появившемся меню выбираем протокол: TCP или UDP. Если порт, открытый на шлюзе, должен отличаться от порта внутреннего сервера, выбираем в выпадающем меню пункт «Destination Ports», получаем одноименное поле и вводим в него номер порта. Нажимаем кнопку «Save».
Того же эффекта можно достичь, отредактировав конфигурационный файл /etc/config/firewall следующим образом:
forward:proto=tcp dport=80:192.168.0.100:80
Другие подходы
Для осуществления проброса порта совсем необязательно использовать брандмауэры или системные демоны, как, например, этого требуют старые версии FreeBSD. Существует несколько других способов сделать это с помощью специализированного софта или стандартных инструментов ОС (кто знает, возможно, ты используешь Minix в качестве ОС для шлюза :)). Один из таких инструментов — SSH. Далеко не каждый системный администратор в курсе, что проброс порта является стандартной функцией этой программы. Возьмем, к примеру, следующую ситуацию. В локальной сети, закрытой от внешней сети NAT’ом, есть сервер, к которому тебе необходимо иметь доступ. Ситуация усугубляется тем, что ты не имеешь привилегий для настройки файервола на машине-шлюзе. Зато у тебя есть доступ к SSH-серверу, работающему на этом шлюзе. Как это может помочь? На самом деле очень сильно. Ты просто выполняешь следующую команду на удаленной машине (serverip — адрес внутреннего сервера, gateway-ip — адрес шлюза):
$ ssh -L 8080::80 user@<gateway>
И вуаля, порт 8080 локальной машины становится портом 80 внутреннего сервера локалки. Теперь достаточно набрать в веб-браузере адрес localhost:8080, и ты попадешь туда, куда надо. Твой SSH-клиент создаст туннель с SSH-сервером шлюза, все передаваемые в рамках которого данные будут направлены на порт 80 внутреннего сервера.
1.2.3.4 80 192.168.0.100 80
И (пере)запустить сервер командой:
$ sudo /etc/init.d/rinetd restart
в Ubuntu или:
# /usr/local/etc/rc.d/rinetd start
# echo "rinetd_enable="YES"" >> /etc/rc.conf
После этого весь трафик, пришедший на порт 80 машины 1.2.3.4, будет автоматически перенаправлен на тот же порт машины с IP-адресом 192.168.0.100.
Один из излюбленных способов проброса портов среди UNIX-администраторов заключается в использовании утилиты socket совместно с сетевым супер-сервером inetd. Как и все гениальное, идея в этом случае проста, а реализация очевидна. Открываем файл /etc/inetd.conf (даже если в твоей системе используется более новый xinetd, ты все равно можешь использовать этот файл) и добавляем в него строку следующего вида:
порт1 stream tcp nowait root /usr/local/bin/socket socket 192.168.0.100 порт2
Здесь порт1 — это прослушиваемый порт на машине-шлюзе, а порт2 — порт назначения на внутренней машине 192.168.0.100. При этом оба они должны быть заданы в форме имени службы (www, ftp и т.д.), если же таковой не имеется (ты выбрал произвольный порт), то ее необходимо добавить в файл /etc/services.
Далее можно перезагрузить inetd командой «kill -HUP» и наслаждаться результатом. Если же его нет, то смотрим в файл /etc/hosts.allow. Доступ к службе должен быть открыт.
Выводы
Несмотря на выбранный для статьи пример с пробросом порта в локальную сеть, у технологии DNAT есть множество других применений, включая создание более удобного способа доступа к удаленной машине, обход правил брандмауэра или просто обман. В любом случае, проброс портов остается очень удобной и легкой в реализации и применении технологией, которая может оказаться полезной в любой момент.
UDP-туннель между двумя NAT
Утилита pwnat (http://samy.pl/pwnat/) позволяет любому количеству клиентов, находящихся за одним NAT-сервером, соединяться с сервером, который стоит за другим NAT, причем никакой проброски портов на серверах не потребуется.
Клиент может подключаться через такой сервер к любым ресурсам, либо только к тем, что ограничены сервером pwnat.
Автоматический проброс портов
Universal Plug and Play (UPnP) — технология, призванная упростить и автоматизировать процесс общения сетевых устройств и приложений между собой. Поддерживается почти любым современным сетевым оборудованием, включает в себя механизм автоматического проброса портов в случае необходимости. Тот же механизм реализован во многих файлообменных программах.
</gateway></code></p>← Ранее Вход в социалки — на амбарный замок: Еще несколько способов контроля трафика и управления доступомДалее → Не спасовать перед лавиной: Подготавливаем веб-сервер к высоким нагрузкам
Используемые источники:
- https://192-168-0-1.info/kak-otkryt-porty-na-routere-tp-link-archer/
- https://itmaster.guru/nastrojka-interneta/routery-i-modemy/kak-otkryt-porty-na-routere.html
- https://xakep.ru/2011/01/17/54483/