Как открывать или перенаправлять TCP/UDP порты?

Как открывать или перенаправлять TCP/UDP порты?

Для обеспечения доступа к устройствам или службам, находящимся в локальной сети за роутером, часто требуется процедура открытия или перенаправления портов. Эта мера позволяет внешним пользователям или системам получать доступ к внутренним ресурсам сети, обеспечивая взаимодействие с локальными устройствами или приложениями, которые в противном случае были бы недоступны из-за настроек безопасности и ограничений маршрутизатора.


1. Открытие порта

На схеме представлен роутер LT50 или LT40, который имеет статический IP-адрес.

Задача: Необходимо удалённо войти в WEB-интерфейс роутера по его статического IP-адресу.

WEB-интерфейс роутера работает на порту 80, поэтому откроем данный порт в межсетевом экране.


1.1. Через WEB

Перейдем в межсетевой экран:

Открываются порты для получения доступа к различным службам на самом роутере или контроллере. Например, откроем порт 80 для получения доступа к WEB-интерфейсу роутера.

Переходим в пункт "Правила для трафика" и добавляем новое правило:

Добавляем новое правило:


Так выглядит новое созданное правило:

Сохраняем добавленное правила:


1.2. Через консоль

Необходимо отредактировать файл /etc/config/firewall:

nano /etc/config/firewall

Добавляем правило и сохраняем файл:


config rule
    option enabled '1'
    option target 'ACCEPT'
    option src 'wan'
    option proto 'tcp udp'
    option dest_port '80'
    option name 'HTTP'

Перезапускаем межсетевой экран:

/etc/init.d/firewall restart
или service firewall restart

2. Перенаправление порта

2.1. Через WEB

Перенаправление используется, чтобы перенаправить запросы с внешнего порта к другому или тому же порту в локальную сеть.


На схеме представлен роутер LT50 или LT40, который имеет статический IP-адрес.
К данному роутеру подключён ПЛК, который работает в режиме сервер и слушает порт 5000.

Задача: Необходимо подключиться с ПО опроса, запущенного на компьютере, на адрес 172.26.19.13 и порт 5000 и попасть на ПЛК.


Реализуем данную задачу с помощью правил перенаправления.

Переходим в пункт "Перенаправление портов" и добавляем новое правило:


Так выглядит новое правило:

Сохраняем и применяем изменения:


2.2. Через консоль

Необходимо отредактировать файл /etc/config/firewall:

nano /etc/config/firewall

Добавляем правило и сохраняем файл:


config redirect
    option target 'DNAT'
    option src 'wan'
    option dest 'lan'
    option proto 'tcp udp'
    option src_dport '5000'
    option dest_ip '192.168.88.10'
    option dest_port '5000'
    option name 'Forward5000'

Перезапускаем межсетевой экран:

/etc/init.d/firewall restart
или service firewall restart

3. IPTABLES: Перенаправление порта из локальной сети к статическому IP и порту в интернете или VPN

Бывают и такие ситуации, при которых ваше оборудование имеет только локальный IP-адрес и маску подсети, и не имеет настроек шлюза и DNS. Также данному устройству можно задать цель, т.е. куда оно будет отправлять данные. Обычно это целевой IP-адрес и порт (TCP или UDP).

Проблема заключается в том, что при подключении такого устройства к роутеру, данные, которые оно генерирует, не попадут дальше самого роутера. Т.е. они ограничены рамками локальной сети. Без шлюза устройство не "видит" сеть Интернет.


В данной ситуации нам поможет пользовательское перенаправление портов с использованием IPTABLES.

Необходимо перейти в межсетевой экран:


Перейти на вкладку "Пользовательские правила":


И добавить правило перенаправления: iptables -t nat -A PREROUTING -d 192.168.88.1 -p TCP --dport 9001 -j DNAT --to-destination 31.58.45.6:9001

Итоговый вид:


Сохраняем и применяем изменения кнопкой "Перезапустить межсетевой экран"