Проброс порта 80 HTTP на Микротик
Предположим, купили вы с соседом Mikrotik RouterBoard RB493AH, Mikrotik RouterBoard 1100 или Mikrotik RouterBoard 750G. Подключили интернет, настроили, все отлично работает. Захотели создать свой веб-сервер или сервер counter strike, чтобы играть с друзьями через интернет. В этом нам поможет проброс портов (DNAT).
DNAT (Destination Network Address Translation). С помощью DNAT можно подменять для входящих пакетов адрес назначения.
У нас есть внешний ip-адрес. Если пользователь из сети Интернет введет его у себя в браузере, то попадет в веб-интерфейс Mikrotik.

Рис.1. Веб-интерфейс Mikrotik Routerboard.
Выполним проброс 80-го порта.

Рис.2. Mikrotik Routerboard, NAT General.
Создаем правило на вкладке NAT.
- Chain – выбираем dst-nat;
- Dst. Address – указываем внешний ip-адрес нашего Mikrotik Routerboard;
- Protokol – tcp;
- Dst. Port – порт назначения.

Рис.3. Mikrotik Routerboard, NAT Action.
На вкладке Action, в поле Action выбираем dst-nat.
To Addresses – 192.168.4.205. Это адрес в локальной сети на который будут перенаправлятся запросы.
To Ports – указываем номер порта.
Проверяем, получилось ли пробросить 80-й порт.

Рис.4. Ответ от локального веб-сервера.
Проброс портов прошел успешно, теперь те же действия можно проделать для других сервисов.
Евгений Рудченко специально для Asp24.
Делаем порт-мапинг в mikrotik
Если требуется зайти на свое оборудование находящееся за NAT-ом мы должны использовать перенаправление портов для того, чтобы мы могли получить доступ к оборудованию из интернета. Для этого нам необходимо пробросить 80 порт (пробросить можно любой порт).
Делается это в ip firewall nat
add action=dst-nat chain=dstnat comment=»» disabled=yes dst-port=80 \
in-interface=ether5 protocol=tcp to-addresses=192.168.1.5 to-ports=80
где:
dst-port — номер порта на внешнем интерфейсе
in-interface — внешний интерфейс для входящих подключений
protocol — протокол, в поем случае tcp
to-address — адрес назначения, куда поступают пакеты после роутера
to-port — номер пората, куда перенаправляются пакеты
Микротик, проброс 80 порта не работает
Подскажите, ситуация такая, проброшены 80, 443, 81 порт до nginx reverse в локальной сети. Nginx перенаправляет по http на два сервера в локалке (homeassistant, nextcloud). С наружи по 81 порту в веб интерфейс nginx proxy manager заходит, если снаружи пытаюсь зайти по https на сервера в локалке, в логах nginx вижу запрос, а вот по http в логах пусто. В логе микротика есть приходящие пакеты на 80 порт в логах nginx пусто. Стоит сменить в правиле проброса порт с 80 на например 1234 и заходить снаружи как http://mydomen.duckdns.org:1234, все работает, homeassistant открывается .Что может блокировать 80 порт в микротике? Не работает проброс 80 и 8080 порта. Веб в микротике отключен. В файрволе правил нет, только маскарад и 3 порта проброшены.
Alexx-80
21.04.22 19:03:26 MSK
- Ответить на это сообщение
- Ссылка
Может у тебя провайдер блокирует порты? Часто так делают чтобы снаружи не торчали устройства со стандартными учетными записями
beka ★
( 21.04.22 19:19:49 MSK )
- Ответить на это сообщение
- Показать ответ
- Ссылка
Ответ на: комментарий от beka 21.04.22 19:19:49 MSK
Может быть, надо в саппорт написать, провайдер DOM.RU Вот правило: chain=dstnat action=dst-nat to-addresses=10.10.10.15 to-ports=80 protocol=tcp in-interface=pppoe-out1 dst-port=80 log=yes log-prefix=»» — не работает но что то пришло в логе микрота — dstnat: in:pppoe-out1 out:(unknown 0), proto TCP (SYN), 60.255.137.44:49264->5.3.251.77:80, len 44
chain=dstnat action=dst-nat to-addresses=10.10.10.15 to-ports=80 protocol=tcp in-interface=pppoe-out1 dst-port=1234 log=yes log-prefix=»» а так работает
Alexx-80
( 21.04.22 19:33:31 MSK ) автор топика
- Ответить на это сообщение
- Ссылка

Так ты это, смени стандартный http порт самого микротика, или точнее, какого он вообще у тебя поднят?! winbox тоже активен!? Выруби все варианты доступа кроме ssh!
hargard ★★
( 21.04.22 19:41:12 MSK )
- Ответить на это сообщение
- Показать ответы
- Ссылка
Ответ на: комментарий от hargard 21.04.22 19:41:12 MSK
0 X telnet 23
1 X ftp 21
2 X www 80
3 X ssh 22
4 X www-ssl 443 none
5 X api 8728
6 winbox 8291
7 X api-ssl 8729 none
только winbox включен
Alexx-80
( 21.04.22 19:49:36 MSK ) автор топика
Последнее исправление: Alexx-80 21.04.22 19:50:30 MSK (всего исправлений: 1)
- Ответить на это сообщение
- Показать ответ
- Ссылка
Ответ на: комментарий от Alexx-80 21.04.22 19:49:36 MSK

Хоть бы поменял его с дефолтного.
ip service set www port=8080
hargard ★★
( 21.04.22 19:58:05 MSK )
- Ответить на это сообщение
- Показать ответ
- Ссылка
Ответ на: комментарий от hargard 21.04.22 19:58:05 MSK
Сделал не помогло но пакеты приходят вроде dstnat: in:pppoe-out1 out:(unknown 0), proto TCP (SYN), 188.162.204.158:21986->5.5.231.86:80, len 60
Alexx-80
( 21.04.22 20:45:34 MSK ) автор топика
- Ответить на это сообщение
- Ссылка
Не работает проброс 80 и 8080 порта. Веб в микротике отключен. В файрволе правил нет, только маскарад и 3 порта проброшены.
/ip firewall export terse /ip route export terse
Kolins ★★★
( 22.04.22 09:20:13 MSK )
- Ответить на это сообщение
- Показать ответ
- Ссылка
Ответ на: комментарий от hargard 21.04.22 19:41:12 MSK
Так ты это, смени стандартный http порт самого микротика
DNAT раньше отрабатывает и заменяет адрес получателя
Kolins ★★★
( 22.04.22 09:21:05 MSK )
- Ответить на это сообщение
- Ссылка
Буквально на днях с подобной проблемой столкнулся (если правильно вопрос понял), но на TP-Link. С 80го не прокидывался ни в какую, а с любого другого — запросто. Оказалось, что внутренний сервер админки TP-Link-а хоть и не был высунут наружу, а висел только внутрь локалки, блокировал проброс 80го порта. Повесил админку на другой порт — проброс с 80го сразу заработал. Может в этом же проблема?
deys ★★★
( 22.04.22 10:08:19 MSK )
- Ответить на это сообщение
- Показать ответ
- Ссылка
Ответ на: комментарий от Kolins 22.04.22 09:20:13 MSK
[Alexx@MikroTik] > /ip firewall export terse
apr/22/2022 09:14:35 by RouterOS 7.2.1
software >/ip firewall filter add action=add-src-to-address-list address-list=DNS_FLOOD address-list-timeout=none-dynamic chain=input dst-port=53 in-interface=pppoe-out1 protocol=udp /ip firewall filter add action=drop chain=input dst-port=53 in-interface=pppoe-out1 protocol=udp /ip firewall nat add action=dst-nat chain=dstnat dst-port=80 in-interface=pppoe-out1 log=yes protocol=tcp to-addresses=10.10.10.15 to-ports=80 /ip firewall nat add action=dst-nat chain=dstnat dst-port=443 in-interface=pppoe-out1 protocol=tcp to-addresses=10.10.10.15 to-ports=443 /ip firewall nat add action=dst-nat chain=dstnat dst-port=81 in-interface=pppoe-out1 log=yes protocol=tcp to-addresses=10.10.10.15 to-ports=81 /ip firewall nat add action=masquerade chain=srcnat out-interface=pppoe-out1 src-address-list=»»
[Alexx@MikroTik] > /ip route export terse
apr/22/2022 09:16:24 by RouterOS 7.2.1
software Alexx-80
( 22.04.22 12:16:47 MSK ) автор топика
- Ответить на это сообщение
- Показать ответ
- Ссылка
Ответ на: комментарий от deys 22.04.22 10:08:19 MSK
Я веб сервер его на 8080 перевесил и выключил
Alexx-80
( 22.04.22 12:17:52 MSK ) автор топика
- Ответить на это сообщение
- Ссылка
Ответ на: комментарий от Alexx-80 22.04.22 12:16:47 MSK
nat выглядит норм (хотя to-ports не обязательно прописывать, если совпадают номера)
/ip firewall mangle add action=log chain=postrouting connection-nat-state=dstnat dst-port=80 log=yes protocol=tcp
Добавь такое правило и попробуй открыть свой сайт по 80, потом в логи загляни.
P.S. и /ip firewall filter стоит настроить
Kolins ★★★
( 22.04.22 12:28:49 MSK )
- Ответить на это сообщение
- Показать ответ
- Ссылка
Ответ на: комментарий от Kolins 22.04.22 12:28:49 MSK
Похоже микротик тут не причем , вот лог postrouting: in:pppoe-out1 out:ether1, proto TCP (SYN), 188.162.204.158:45384->10.10.10.15:80, NAT 188.162.204.158:45384->(5.5.251.86:80->10.10.10.15:80), len 60
А что стоит настроить в /ip firewall filter
Alexx-80
( 22.04.22 13:29:51 MSK ) автор топика
- Ответить на это сообщение
- Показать ответ
- Ссылка
Ответ на: комментарий от Alexx-80 22.04.22 13:29:51 MSK
А что стоит настроить в /ip firewall filter
Держи базовый, надо и на свои заменить и включить два disabled правила, потом по надобности будишь добавлять разрешения.
/ip firewall filter add action=accept chain=input connection-state=established,related add action=accept chain=input protocol=icmp add action=accept chain=input in-interface= add action=drop chain=input disabled=yes add action=accept chain=forward connection-state=established,related add action=accept chain=forward connection-state=new in-interface= add action=accept chain=forward connection-nat-state=dstnat in-interface= add action=drop chain=forward disabled=yes
Следующий шаг — tcpdump на сервере с nginx, если трафик приходит и в демон попадает, то уже его конфиги ковырять.
Kolins ★★★
( 22.04.22 13:42:07 MSK )
- Ответить на это сообщение
- Показать ответы
- Ссылка
Ответ на: комментарий от Kolins 22.04.22 13:42:07 MSK
Alexx-80
( 22.04.22 14:49:48 MSK ) автор топика
- Ответить на это сообщение
- Ссылка
Ответ на: комментарий от Kolins 22.04.22 13:42:07 MSK
Спрошу здесь, картина такая — есть физический сервер с proxmox в виртуалке Микротик, все вышесказанные в 1 посте сервера тоже там, что бы проверить запустил еще один физический сервер, на нем веб сервер nginx. Пробросил на него порт 80 с микротика, захватил пакеты. Я правильно понимаю что ответ nginx не доходит до браузера и он по новой спрашивает? Как отследить где пакеты останавливаются?
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on enp1s0, link-type EN10MB (Ethernet), capture size 262144 bytes 11:21:49.914718 IP client.yota.ru.16167 > 10.10.10.19.http: Flags [S], seq 3588967513, win 65535, options [mss 1360,sackOK,nop,nop,nop,nop,nop,nop,nop,nop,nop,nop,nop,wscale 8], length 0 11:21:49.914811 IP 10.10.10.19.http > client.yota.ru.16167: Flags [S.], seq 3563537817, ack 3588967514, win 29200, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0 11:21:50.723958 IP client.yota.ru.16167 > 10.10.10.19.http: Flags [S], seq 3588967513, win 65535, options [mss 1360,sackOK,nop,nop,nop,nop,nop,nop,nop,nop,nop,nop,nop,wscale 8], length 0 11:21:50.724026 IP 10.10.10.19.http > client.yota.ru.16167: Flags [S.], seq 3563537817, ack 3588967514, win 29200, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0 11:21:51.720692 IP 10.10.10.19.http > client.yota.ru.16167: Flags [S.], seq 3563537817, ack 3588967514, win 29200, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0 11:21:52.714312 IP client.yota.ru.16167 > 10.10.10.19.http: Flags [S], seq 3588967513, win 65535, options [mss 1360,sackOK,nop,nop,nop,nop,nop,nop,nop,nop,nop,nop,nop,wscale 8], length 0 11:21:52.714381 IP 10.10.10.19.http > client.yota.ru.16167: Flags [S.], seq 3563537817, ack 3588967514, win 29200, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0 11:21:54.712696 IP 10.10.10.19.http > client.yota.ru.16167: Flags [S.], seq 3563537817, ack 3588967514, win 29200, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0 11:21:56.741756 IP client.yota.ru.16167 > 10.10.10.19.http: Flags [S], seq 3588967513, win 65535, options [mss 1360,sackOK,nop,nop,nop,nop,nop,nop,nop,nop,nop,nop,nop,wscale 8], length 0 11:21:56.741831 IP 10.10.10.19.http > client.yota.ru.16167: Flags [S.], seq 3563537817, ack 3588967514, win 29200, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0 11:22:00.740707 IP 10.10.10.19.http > client.yota.ru.16167: Flags [S.], seq 3563537817, ack 3588967514, win 29200, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0 ```
Alexx-80
( 24.04.22 10:53:39 MSK ) автор топика
- Ответить на это сообщение
- Показать ответы
- Ссылка
Ответ на: комментарий от Alexx-80 24.04.22 10:53:39 MSK
Выяснил с помощью Packet Sniffer микротика что на локальный интерфейс eth1 приходят пакеты для 10.10.10.19 и ответы на client.yota.ru. А на интефейс pppoe-out1 пакеты только на 10.10.10.19, обратных нет. Получается микротик блокирует исходящие пакеты, как узнать?
Alexx-80
( 24.04.22 15:04:30 MSK ) автор топика
- Ответить на это сообщение
- Показать ответ
- Ссылка
Проброс портов на роутере Mikrotik
Рассмотрим задачу проброса портов на роутере Mikrotik. В нашем примере мы будем пробрасывать 80-й порт, чтобы открыть доступ извне к веб-интерфейсу нашего принтера.
1. Открываем IP -> Firewall -> NAT, создаем новое правило, нажав на +, во вкладке General ставим параметр Chain в режим dstnat, Protocol — в 6 (tcp), Dst. Port — 80:

Следует учесть, что в вашем случае протокол и порт назначения могут быть (и скорее всего будут) другими.
2. Переходим во вкладку Action, ставим параметр Action в режим dst-nat, в поле To Addresses вбиваем IP-адрес нашего принтера:

3. Теперь попробуем подключиться к принтеру по 80 порту снаружи:

Работает! Mission completed.
2 небольших комментария:
Во-первых, в нашем примере на роутере выполнена лишь базовая настройка брандмауэра, которая не блокирует ничего. Если у вас брандмауэр настроен более строго — необходимо будет донастроить его на разрешение правила порт-форвардинга (в рамках этой заметки на этом останавливаться не будем — оставим предупреждением).
Во-вторых, если вы планируете маскировать открытый порт (публикуя наружу, например, порт 6666, при соединении с которым должен будет ответить 80-й порт публикуемого сервиса/приложения/устройства), то в пункте 1 следует указать замаскированный Dst. Port, а в пункте 2 в параметре To Ports указать порт, по которому реально будет отвечать публикуемый узел.
Для начинающих:Проброс портов
Проброс портов это технология, позволяющая получать доступ к устройствам в локальной сети из-вне. Это происходит за счет правила, которое работает по условию: если пришел запрос на порт Х (входящий порт), то надо перенаправить трафик на порт Y (исходящий порт) устройства с IP-адресом Z. При этом входящий порт (X) и исходящий порт (Y) могут, как быть одинаковыми, так и различаться.
Для чего нужно?
Проброс портов используется, если надо получить доступ из-вне к терминальному или веб-серверу внутри организации, если используются пиринговые сети. Многопользовательские игры то же иногда используют эту технологию.
Настройка
Для примера мы пробросим 80 порт, он обычно нужен если вы решили разместить у себя в локальной сети веб-сервер с вашим веб-проектом.

В нашем примере: внешний порт маршрутизатора (ether5-WAN1) с адресом 10.1.100.1, внутренний адрес компьютера на котором веб-сервер 192.168.15.15.
Через графический интерфейс
Для того, чтобы пробросить порты надо в меню выбрать IP => Firewall и далее вкладку «NAT». Нажать значок + для добавления нового правила. Далее необходимо выполнить следующие настройки:
- Вкладка General:
- Chain: dstnat
- Protocol: указать протокол 6 (tcp)
- Dst. Port: указать порт входящего соединения.
- In. Interface: выбрать интерфейс входящего соединения
Важно указывать входящий интерфейс, так как в противном случае маршрутизатор может перенаправить трафик с другого интерфейса по создаваемому нами правилу и это может привести к проблемам. Если в приведенном нами примере не указать входящий интерфейс, то в случае попытки из локальной сети открыть сайт по http:// маршрутизатор перенаправит поток на внутренний сервер с адресом 192.168.15.15.
Так же обратите внимание что для других задач, нужно будет указывать другой протокол (к примеру udp) — поэтому вы должны выяснить какие порты и с какими протоколами требуют проброса для вашей задачи (приложения).


- Вкладка Action:
- Action: dst-nat
- To Addresses: указать адрес на который надо выполнить проброс
- To Ports: указать порт на который надо выполнить проброс
Через консоль
/ip firewall natadd action=dst-nat chain=dstnat dst-port=80 in-interface=ether5-WAN1 protocol=tcp to-addresses=192.168.15.15 to-ports=80
Если в качестве входящего порта надо использовать порт, отличный от оригинального. Например, из-вне надо получить доступ по порту 8080, а веб-сервер при этом работает по 80-му порту, то надо соответствующим образом изменить параметр «Destination Port». Dst. Port: в графическом интерфейсе или dst-port в консоли.
Проверка
Воспользуйтесь многочисленными веб сервисами проверки, например этим. Программа, которая должна отвечать по запрашиваемому порту должна быть активна, чтобы при проверке порт виделся как «открытый». Например, порт для веб-сервера на самом деле открыт, но если веб-сервер не запущен, статус порта при проверке будет «закрыт».
Полезные материалы по MikroTik
Углубленный курс "Администрирование сетевых устройств MikroTik" Онлайн-курс по MikroTik с дипломом государственного образца РФ. Много лабораторных работ с проверкой официальным тренером MikroTik. С нуля и до уровня MTCNA.
На Telegram-канале Mikrotik сэнсей можно получить доступ к закрытой информации от официального тренера MikroTik. Подписывайтесь