Проброс портов на маршрутизаторе
Материал из campus.mephi.ru
Frodox (Обсуждение | вклад) (Init) |
Frodox (Обсуждение | вклад) м (Обновил ссылку на источник) |
||
(8 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
- | + | == Порты...?! == | |
+ | В некоторых ситуациях проброс портов на роутере просто необходим, для получения желаемого результата. Например, Вы "сидите за роутером (маршрутизатором)" и хотите что бы люди(соединения) при обращении к Вашему роутеру попадали именно на Вашу машину(например, это нужно для DC++-клиента, или у Вас поднят свой web-сервер или игровой Cs, или ещё что). | ||
- | В общем то, здесь нет ничего сложного. Я покажу как это сделать на примере проброса портов для настройки DC++-клиента на роутере Asus RT-N66U | + | В общем то, здесь нет ничего сложного. Детали, конечно, отличаются от роутера к роутеру, но ''общая идея'' остаётся прежней. Во всех относительно новых роутерах есть такая функциональность. Если же Вы не можете найти ничего подобного, обратитесь к Руководству пользователя Вашего роутера. Я покажу как это сделать на примере проброса портов для '''настройки DC++-клиента''' на роутере Asus RT-N66U. |
+ | == Настраиваем внутрисетевой IP == | ||
+ | Для начала, убедитесь в что роутер внутри сети статически выдаёт вам IP-адрес (постоянно один и тот же). На нём за это отвечает DHCP (Dynamic Host Configuration Protocol) Server. Если он включен (посмотрите в настройках, что-то в районе раздела LAN), то нужно назначить IP-адрес для вашей машины статически в обход dhcp. | ||
- | + | На вкладке ''LAN-DHCP Server'' включаем ручное назначение IP (Enable Manual Assignment), выбираем в поле ниже свой MAC-адрес, желаемый IP (в разумных пределах), жмём Добавить и Применить. Всё, после сохранения, у вашей машины внутри сети постоянно будет указанный IP адрес. | |
+ | [[Файл:Asus-dhcp.jpg|700px|thumb|center|Устанавливаем себе статический IP внутри сети на роутере Asus RT-N66U]] | ||
- | + | == Проброс портов == | |
- | + | Теперь смело можно переходить непосредственно к самому главному. | |
- | + | Вкладка ''WAN-Virtual Server / Port Forwarding'', Включаем опцию Проброса портов(Enable Port Forwarding) | |
- | Теперь смело можно переходить непосредственно к | + | |
- | Вкладка WAN-Virtual Server / Port Forwarding, Включаем опцию | + | |
И заполняем необходимые поля | И заполняем необходимые поля | ||
- | Service Name - ни к чему не обязывающее имя "правила" перенаправления портов | + | * '''Service Name''' - ни к чему не обязывающее имя "правила" перенаправления портов |
- | Port Range - диапазон портов, С которых роутер будет перенаправлять входящие соединения | + | * '''Port Range''' - диапазон портов, С которых роутер будет перенаправлять входящие соединения |
- | Local IP - локальный (внутри вашей сети) IP, НА который роутер будет перенаправлять входящие соединения с портов <Port Range> | + | * '''Local IP''' - локальный (внутри вашей сети) IP, НА который роутер будет перенаправлять входящие соединения с портов <Port Range> |
- | Local Port - номер порта на машине с IP <Local IP> на который роутер будет перенаправлять соединения | + | * '''Local Port''' - номер порта на машине с IP <Local IP> на который роутер будет перенаправлять соединения |
- | Protocol - соединения какого типа следует отлавливать роутеру | + | * '''Protocol''' - соединения какого типа следует отлавливать роутеру |
+ | |||
Для настройки DC-клиента, пусть например, требуется открыть(пробросить) 2 порта : 3000 для (TCP/UPD) и 3001 для (TLS) (работает по протоколу TCP) | Для настройки DC-клиента, пусть например, требуется открыть(пробросить) 2 порта : 3000 для (TCP/UPD) и 3001 для (TLS) (работает по протоколу TCP) | ||
- | Таким образом добавляем 2 строчки, и жмём Применить. | + | Таким образом добавляем 2 строчки, и жмём ''Применить''. |
+ | # name Port-Range Local-Ip Local.Port Protocol type | ||
+ | dc-tcp 3000 192.168.1.2 3000 BOTH | ||
+ | dc-tsl 3001 192.168.1.2 3001 BOTH | ||
- | + | [[Файл:Asus-port-forwarding.gif|700px|thumb|center|Пробрасываем порты на роутере Asus RT-N66U]] | |
- | + | ||
- | + | ||
- | |||
Здесь - всё. Теперь роутер все входящие на порты 3000:3001 TCP/UDP соединения будет перенаправлять прямиком на 3000:3001 порты вашей машины. | Здесь - всё. Теперь роутер все входящие на порты 3000:3001 TCP/UDP соединения будет перенаправлять прямиком на 3000:3001 порты вашей машины. | ||
- | Осталось настроить DC-клиент. Открываем настройки соединения (Файл-Настройки-Соединение | Tools-Preferences-Connection в моём случае с eiskaltdcpp). | + | == Настройка DC++-клиента == |
- | И выбираем : Радио-кнопка Ручной проброс портов | + | Осталось настроить DC++-клиент. Открываем настройки соединения (''Файл-Настройки-Соединение | Tools-Preferences-Connection'' в моём случае с '''eiskaltdcpp'''). |
+ | И выбираем : | ||
+ | * Радио-кнопка Ручной проброс портов | ||
+ | * Вписываем наши порты в соотсветствующие поля. | ||
+ | P.s. Если роутер поддерживает технологию UPnP, то можно выбрать этот пункт в настройках, и не вписывать порты - программа должна сама определить, а возможно ещё и на роутере сама пробросит все необходимые порты. Но я люблю ясность во всём :) | ||
+ | [[Файл:Eiskalttdcpp-settings-connection.jpg|600px|thumb|center|Settings-Connection in Eiskalttdcpp-qt]] | ||
+ | [[Файл:Flylink-port-forwarding.jpg|800px|thumb|center|Файл-Настройки-Соединение в FlylinkDc++]] | ||
- | + | == Does it work..? == | |
- | + | Всё. Осталось проверить что всё работает. Но..ведь может быть, что и нет :) Ведь есть такие вещи, как Антивирус, Браундмауэр, и куча куча всего ещё! Они вполне могут блокировать обращение по необходимым портам. | |
- | Я думаю, | + | Я думаю, Вам не составит труда их настроить(: |
- | + | Например, мне, на Fedora 16, пришлось повозиться с '''iptables''' | |
- | su | + | su |
- | # посмотреть все существующие правила: | + | # посмотреть все существующие правила: |
- | iptables -nvL | + | iptables -nvL |
+ | |||
+ | # если, и скорее всего, нужные порты не настроены - исправим это | ||
+ | # открываем входящие соединения на нужные порты | ||
+ | iptables -A INPUT -p tcp -m tcp --sport 3000 -j ACCEPT | ||
+ | iptables -A INPUT -p udp -m udp --sport 3000 -j ACCEPT | ||
+ | iptables -A INPUT -p tcp -m tcp --sport 3001 -j ACCEPT | ||
+ | |||
+ | # открываем исходящие соединения с этих портов | ||
+ | iptables -A OUTPUT -p tcp -m tcp --dport 3000 -j ACCEPT | ||
+ | iptables -A OUTPUT -p udp -m udp --sport 3000 -j ACCEPT | ||
+ | iptables -A OUTPUT -p tcp -m tcp --sport 3001 -j ACCEPT | ||
+ | |||
+ | # ну и проверьте что нет никаких правил, закрывающих *всё* | ||
+ | # у меня такое было | ||
+ | # -A INPUT -j REJECT --reject-with icmp-host-prohibited | ||
+ | # что бы его удалить, логично, нужно было выполнить | ||
+ | iptables -D INPUT -j REJECT --reject-with icmp-host-prohibited | ||
- | # | + | # обязательно проверьте, что все ваши изменения отобразились в выводе |
- | + | iptables-save | |
- | iptables - | + | # так же учтите, что добавленные таким способом правила '''НЕ сохранятся''' после перезагрузки |
- | + | ||
- | + | ||
- | # | + | # Для сохранения в большинстве дистрибутивов хватит |
- | iptables | + | service iptables save |
- | iptables | + | |
- | iptables | + | # Там же где во всю царствует Systemd, типа Fedora 16, |
+ | # используем старую версию команды: | ||
+ | /usr/libexec/iptables.init save | ||
+ | |||
+ | # на крайний случай, Вы всегда можете поправить конфиги ручками | ||
+ | vim /etc/sysconfig/iptables | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
Вот теперь - всё. Спасибо за внимание. | Вот теперь - всё. Спасибо за внимание. | ||
------ | ------ | ||
+ | ------ | ||
+ | |||
+ | [http://homenet.beeline.ru/routers/index.php Здесь] можно найти инструкции для настройки тех же самых вещей для многих роутеров (если у вас провайдер не биилайн - это '''вообще''' не важно). Смотрите пункт ''Настраиваем доступ к локальным ресурсам''. | ||
- | + | updated 24.05.2013, Frodox | |
+ | Самая свежая версия статьи может быть найдена [http://bitthinker.com/blog/ru/setup/port-forwarding-asus здесь] |
Текущая версия на 13:58, 23 мая 2015
Содержание |
Порты...?!
В некоторых ситуациях проброс портов на роутере просто необходим, для получения желаемого результата. Например, Вы "сидите за роутером (маршрутизатором)" и хотите что бы люди(соединения) при обращении к Вашему роутеру попадали именно на Вашу машину(например, это нужно для DC++-клиента, или у Вас поднят свой web-сервер или игровой Cs, или ещё что).
В общем то, здесь нет ничего сложного. Детали, конечно, отличаются от роутера к роутеру, но общая идея остаётся прежней. Во всех относительно новых роутерах есть такая функциональность. Если же Вы не можете найти ничего подобного, обратитесь к Руководству пользователя Вашего роутера. Я покажу как это сделать на примере проброса портов для настройки DC++-клиента на роутере Asus RT-N66U.
Настраиваем внутрисетевой IP
Для начала, убедитесь в что роутер внутри сети статически выдаёт вам IP-адрес (постоянно один и тот же). На нём за это отвечает DHCP (Dynamic Host Configuration Protocol) Server. Если он включен (посмотрите в настройках, что-то в районе раздела LAN), то нужно назначить IP-адрес для вашей машины статически в обход dhcp.
На вкладке LAN-DHCP Server включаем ручное назначение IP (Enable Manual Assignment), выбираем в поле ниже свой MAC-адрес, желаемый IP (в разумных пределах), жмём Добавить и Применить. Всё, после сохранения, у вашей машины внутри сети постоянно будет указанный IP адрес.
Проброс портов
Теперь смело можно переходить непосредственно к самому главному. Вкладка WAN-Virtual Server / Port Forwarding, Включаем опцию Проброса портов(Enable Port Forwarding) И заполняем необходимые поля
- Service Name - ни к чему не обязывающее имя "правила" перенаправления портов
- Port Range - диапазон портов, С которых роутер будет перенаправлять входящие соединения
- Local IP - локальный (внутри вашей сети) IP, НА который роутер будет перенаправлять входящие соединения с портов <Port Range>
- Local Port - номер порта на машине с IP <Local IP> на который роутер будет перенаправлять соединения
- Protocol - соединения какого типа следует отлавливать роутеру
Для настройки DC-клиента, пусть например, требуется открыть(пробросить) 2 порта : 3000 для (TCP/UPD) и 3001 для (TLS) (работает по протоколу TCP) Таким образом добавляем 2 строчки, и жмём Применить.
# name Port-Range Local-Ip Local.Port Protocol type dc-tcp 3000 192.168.1.2 3000 BOTH dc-tsl 3001 192.168.1.2 3001 BOTH
Здесь - всё. Теперь роутер все входящие на порты 3000:3001 TCP/UDP соединения будет перенаправлять прямиком на 3000:3001 порты вашей машины.
Настройка DC++-клиента
Осталось настроить DC++-клиент. Открываем настройки соединения (Файл-Настройки-Соединение | Tools-Preferences-Connection в моём случае с eiskaltdcpp). И выбираем :
- Радио-кнопка Ручной проброс портов
- Вписываем наши порты в соотсветствующие поля.
P.s. Если роутер поддерживает технологию UPnP, то можно выбрать этот пункт в настройках, и не вписывать порты - программа должна сама определить, а возможно ещё и на роутере сама пробросит все необходимые порты. Но я люблю ясность во всём :)
Does it work..?
Всё. Осталось проверить что всё работает. Но..ведь может быть, что и нет :) Ведь есть такие вещи, как Антивирус, Браундмауэр, и куча куча всего ещё! Они вполне могут блокировать обращение по необходимым портам. Я думаю, Вам не составит труда их настроить(:
Например, мне, на Fedora 16, пришлось повозиться с iptables
su # посмотреть все существующие правила: iptables -nvL # если, и скорее всего, нужные порты не настроены - исправим это # открываем входящие соединения на нужные порты iptables -A INPUT -p tcp -m tcp --sport 3000 -j ACCEPT iptables -A INPUT -p udp -m udp --sport 3000 -j ACCEPT iptables -A INPUT -p tcp -m tcp --sport 3001 -j ACCEPT # открываем исходящие соединения с этих портов iptables -A OUTPUT -p tcp -m tcp --dport 3000 -j ACCEPT iptables -A OUTPUT -p udp -m udp --sport 3000 -j ACCEPT iptables -A OUTPUT -p tcp -m tcp --sport 3001 -j ACCEPT # ну и проверьте что нет никаких правил, закрывающих *всё* # у меня такое было # -A INPUT -j REJECT --reject-with icmp-host-prohibited # что бы его удалить, логично, нужно было выполнить iptables -D INPUT -j REJECT --reject-with icmp-host-prohibited
# обязательно проверьте, что все ваши изменения отобразились в выводе iptables-save # так же учтите, что добавленные таким способом правила НЕ сохранятся после перезагрузки
# Для сохранения в большинстве дистрибутивов хватит service iptables save # Там же где во всю царствует Systemd, типа Fedora 16, # используем старую версию команды: /usr/libexec/iptables.init save # на крайний случай, Вы всегда можете поправить конфиги ручками vim /etc/sysconfig/iptables
Вот теперь - всё. Спасибо за внимание.
Здесь можно найти инструкции для настройки тех же самых вещей для многих роутеров (если у вас провайдер не биилайн - это вообще не важно). Смотрите пункт Настраиваем доступ к локальным ресурсам.
updated 24.05.2013, Frodox Самая свежая версия статьи может быть найдена здесь