Ukrainian English Russian
Ukrainian English Russian
0

Как зайти по внешнему IP-адресу из локальной сети для MikroTik

Допустим, вы настроили проброс портов на роутере MikroTik, и из внешней сети все прекрасно работает. Но иногда может возникнуть необходимость организовать доступ к компьютеру или серверу по внешнему IP-адресу не только извне, но и из локальной сети. В этом случае применяется так называемый Hairpin NAT или NAT LoopBack - прием-отправка пакетов через один и тот же интерфейс роутера, со сменой адресов с локального на внешний и обратно. Разберем нужные настройки.

Допустим у нас есть:

  1. Роутер с внешним IP (WAN IP) 1.1.1.1.
  2. Компьютер с локальным адресом 192.168.88.229, и запущенным на нем сервером, приложением и т. д. для доступа из внешней сети. В нашем случае для соединения используется порт 8080.
  3. Компьютер в локальной сети с адресом 192.168.88.110.

У нас уже есть настроенное правило проброса порта 8080:

Настройка проброса порта 8080

Настройка проброса порта 8080, рис2

Но оно не будет срабатывать при обращении из локалки, так как настройки ориентированы на пакеты из внешней сети, через WAN-порт. Поэтому нам нужно прописать дополнительно еще 2 правила.

Настройка доступа из локальной сети по внешнему IP-адресу

1. Создаем правило для перенаправления обращений по внешнему IP из локальной сети.

Вкладка General.

Chain  - dstnat.

Src. Address - пишем здесь локальный адрес компьютера, с которого будем заходить по внешнему IP, или диапазон адресов, если такой доступ нужно предоставить нескольким компьютерам сети.

Dst. Address - указываем внешний адрес компьютера/ сервера и т. п., по которому будет осуществляться доступ из локалки.

Protocol,  Dst. Port - здесь прописываем параметры порта и протокола, которые соответствуют нашему соединению (те же, что и в пробросе портов).

Настройка доступа по внешнему IP адресу из локальной сети

Вкладка Action.

To Addresses - указываем локальный адрес нашего сервера, компьютера, на который мы заходим по внешнему IP-адресу.

To Ports - порт тот же самый, что на предыдущей вкладке, поэтому здесь можно ничего не указывать.

Настройка доступа по внешнему IP адресу из локальной сети, рис2

Теперь на компьютер 192.168.88.229 можно зайти из локальной сети по внешнему IP-адресу 1.1.1.1.

Но при попытке какого-то взаимодействия с ним ничего не получится. Почему? Посмотрим, что происходит.

  • Наш компьютер (192.168.88.110) посылает пакет на внешний адрес сервера, который является и адресом роутера, соответственно - 1.1.1.1.  
  • Роутер добросовестно перенаправляет его по нашему правилу dst-nat на компьютер с адресом 192.168.88.229.
  • Тот его принимает и отправляет ответ. Но так как он видит в качестве адреса источника локальный IP-адрес (ведь пакет поступил от компьютера в локальной сети), он отправляет ответ не на маршрутизатор, а напрямую получателю.
  • Получатель же (192.168.88.10) отправляя данные по внешнему IP, и ответ также ожидает от внешнего IP. Получив пакет от локального 192.168.88.229, он его просто сбрасывает, как ненужный.

Схема движения пакетов в локальной сети

Поэтому нам нужно еще одно правило, которое будет подменять локальный адрес источника при отправке пакета на внешний IP.

2. Подменяем локальный адрес компьютера на внешний IP-адрес.

На вкладке Action выставляем маскарадинг (masquerade), т. е. подмену адреса источника на локальный адрес маршрутизатора.

На вкладке General прописываем правила, при которых он будет применяться:

Chain  - srcnat, т. е. при запросах из локальной сети.

Src. Address - пишем здесь локальный адрес компьютера, или диапазон адресов, с которых будут отправляться пакеты.

Dst. Address - здесь конкретизируем "адрес получателя", т. е. правило будет применяться только для пакетов, адресованных нашему серверу.

Protocol,  Dst. Port - здесь прописываем те же параметры порта и протокола.

Правило scrnat для доступа по внешнему IP

Правило scrnat для доступа по внешнему IP, скриншот 2

Теперь, получив пакет из локальной сети, адресованный на внешний IP 1.1.1.1, маршрутизатор не только перенаправит его на 192.168.88.229 (по первому правилу), но и заменит в пакете адрес источника (192.168.88.110) на свой локальный адрес.

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

Схема Hairpin Nat

Второй способ Hairpin NAT MikroTik: 2 правила вместо 3

Можно сделать еще проще, заменив правило проброса портов первым правилом Hairpin NAT. В этом случае в настройках не нужно указывать In. Interface и Src Address, но нужно прописать адрес назначения.

Настройка Hairpin NAT 2-й способ

Доступ на внешний IP адрес вашего сервера или компьютера с приложением будет открыт как для обращений извне, так и из локальной сети, с любых адресов, но только для пакетов с адресом назначения 1.1.1.1:80.

Теперь добавляете описанное выше правило srcnat, и все. Можно добавить дополнительную фильтрацию, прописав в out-interface тот интерфейс, с которого будут осуществляться отправки пакетов, если есть такая необходимость.

Недостатком Hairpin NAT является только то, что нагрузка на роутер возрастает, ведь те обращения, что раньше проходили через локальную сеть непосредственно между компьютерами, теперь будут идти через маршрутизатор.

Второй способ проще, но, в зависимости от конфигурации вашей сети, может использоваться и первый.

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

Оцените материал:
4.6 (голосов 48)
Предыдущая статья
14.10.2015
10 новинок от Ubiquiti
Следующая статья
10.11.2015
Секторные антенны, модуль для GPON и другие обновления от MikroTik
Комментарии


  • 14.12.2021, 18:17
    Олег
    Спасибо очень понятно коротко и полезно!
  • 30.04.2021, 11:21
    Диляра Яппарова
    Спасибо товарищ.
  • 19.01.2021, 12:24
    Александр
    Спасибо, очень помогли
  • 13.01.2021, 12:49
    Кирилл
    Cпасибо, всё заработало. Ради интереса проверил оба способа.
  • 20.10.2020, 23:05
    Максим
    Спасибо реально помогло отладить коннект по внешнему айпи сделал таки сервер раста и опубликовал
  • 09.09.2020, 14:37
    Мукатов Руслан Серикович
    Можно ли через ip зайти в другое устройство?
  • 01.05.2020, 01:29
    Руслан
    Спасибо
  • 24.04.2020, 21:02
    Dmitry
    >>>1. Создаем правило для перенаправления обращений по внешнему IP из локальной сети.

    Если следовать руководству, то получим:
    Coildn't add New Nat Rule - src chain can not contain redirect/dnat actions (6)

    Вероятно, в новых прошивках что-то поменялось.
  • 15.02.2020, 20:30
    Илья
    Добрый день. Скажите, а если внешний адрес динамический, как в этом случае можно сделать?
  • 11.01.2020, 10:53
    Комментарий администратора
    Богдан, так, можна. Пропишіть IP адресу в А запису домена.
  • 11.01.2020, 10:49
    Комментарий администратора
    Андрей, заработало что? Доступ к регистратору по внешнему IP из внутренней сети? Первым мы бы посоветовали настроить 2-й роутер в режиме бриджа, Но, если нужен двойной nat, тогда понадобится настроить маршрутизацию: в шлюзе главного микрота указать где искать второй и наоборот, второму где искать главный. Далее на главном микроте включить правило форвардинга на нужный порт видерегистратора, указав адрес в сети (например 192.168.хх.x/24 , где х адрес подсети и IP видеорегистратора).
  • 11.12.2019, 18:41
    Богдан
    А чи можна зробити такіж дії але за допомогою домена, щоб коли заходиш по доменному іменні типу nc.zugovec.com перекидало на статичну IP 80.77.34.61 а потім на внутрішню 192.168.88.11
  • 06.12.2019, 20:28
    Антон
    Спасибо большое, долго искал эту статью, но толком не знал как даже написать запрос на эту тему.
  • 29.11.2019, 16:50
    Андрей
    Помогите плз разобраться с hairpin. Видеорегистратор подключен не к главному микротику, а еще через один. Проброшен порт сначала с главного на другой, а затем уже на сам видеорегистатор. В таком случае на каком роутере танцевать с бубном, чтобы все заработало?)
  • 02.10.2019, 08:24
    Комментарий администратора
    Алекс, доступ к какому сервису вы хотите получить? Рекомендуем статью https://lantorg.com/article/probros-portov-na-mikrotik
  • 02.10.2019, 08:23
    Комментарий администратора
    Алик, ответ на данный вопрос сильно выходит за формат комментария и требует отдельной инструкции, а еще лучше - удаленного доступа к устройству. Возможно есть резон обратиться к специалистам по настройке.
  • 27.09.2019, 07:23
    Алекс
    Здравствуйте! Помогите с настройкой Mikrotik или пробросом NAT. Микротик подключен к провайдеру IP-static например (10.100.X.X).Сам микротик настроен так (ip микротика 192.168.1.2, включен dhcp server, пул адресов 192.168.1.10-192.168.1.254). К 5 порту подключен сервер для внутренней сети- у него настройки идут: сервер-192.168.0.1 и он уже раздает ip через свой dhcp server, пул 192.168.0.20-192.168.0.255.
    Как сделать чтобы с интернета заходить в внутреннюю сеть на любой компьютер?
    Помогите пожалуйста.
  • 24.09.2019, 09:34
    Алик
    Помогите пожалуйста, MikroTik RouterBOARD RB2011iL-iN
    к 1 порту подключен интернет
    с 2 по 5 портам подключены компьютеры
    к 6 сервер
    с 7 по 10 видеорегистраторы
    сейчас везде ест интернет и можно по интернету и по локальной сети зайти на сервер и на видеорегистраторы.
    Мне необходимо отключит доступ к интернету у компьютеров подключенной к 2 по 5 портам но у них был доступ к серверу и все остальное оставит как ест. интернет нам нужен толка для входа по интернету к серверу и к видео регистраторам.
  • 08.04.2019, 15:38
    Иван
    Вот небольшой лайфхак по удаленному доступу. На даче стоит старый компьютер с камерой. Хочу получить к нему удаленный доступ. В деревне у провайдера нет "белого IP" и приобрести его невозможно.
    DDNS работает, но и это бесполезно, потому что соединения извне тупо закрыты провайдером.
    Поэтому использую вот такой VPN сервис - vpnki ru Они не предоставляют выход в интернет, но объединяют мои туннели - один с дачи, другой с смартфона.
    Вдруг кому-то это поможет.
  • 19.02.2019, 04:08
    Юрий
    День добрый!
    1. Создаем правило для перенаправления обращений по внешнему IP из локальной сети. - это правило срабатывает при обращении.
    2. Подменяем локальный адрес компьютера на внешний IP-адрес. - это правило не работает, в чем может быть проблема?

    почта its_stim@mail.ru
  • 25.01.2019, 11:24
    Артем
    Здравствуйте. А подскажите как правильно. В masquerade указывать dst. address, protocol и dst. port? Или можно эти поля оставить пустыми? Работает и так и так как у вас. Хотелось бы понять в чем разница. Спасибо.
  • 05.01.2019, 12:19
    Андрей
    Здравствуйте, статья помогла - спасибо!
    А как реализовать подобный доступ, если при пробросе порт необходимо изменять?
  • 20.11.2018, 22:45
    Александр
    Подскажите пожалуйста как быть когда внешни и внутренний порт отличаються.
  • 29.10.2018, 19:43
    Марат
    Помогите пожалуйста , сменил подсеть на роутере , раньше была подсеть 192.168.1.... поменял все на 172.16.155... все правила и дхцп диапазоны поменял исходя из подсети. Теперь не могу попасть на роутер через веб интерфейс. Через winbox могу.
  • 19.10.2018, 11:24
    Дмитрий
    Большое спасибо! Настроил radmin при помощи вашей статьи и советов!
  • 19.07.2018, 07:55
    Василий
    Помогите пожалуйста, необходимо настроить проброс портов из интернета в локалку, есть статический ip, доступ в интернет настроен, нат настраиваю по данной статье, по локалке доступ есть а из интернета нет. В чём может быть дело?
  • 31.05.2018, 22:00
    ITSC.UA
    Огромное спасибо за статью, давно искал... Связано это с UBNT UniFi STUN Port 3478, так как были проброшены порты, и почему то именно STUN Port 3478 перестал работать... После внесения правил, через 4 секунды все заработало ....
  • 09.05.2018, 12:07
    Павел
    Сиськи! Внимание! Молния! Внимание привлек) Вопрос:по этой инструкции можно настроить так, что бы в сетевых подключениях компа подключенного через роутер отображался внешний ip, который видно из интернета?!
  • 28.03.2018, 16:57
    Ron
    Благодарю!
  • 31.01.2018, 11:34
    JPG
    Ура! Большое человеческое спасибо. Именно то, что я искал!!!
    Самостоятельное в Микротике ни к чему не приводило, а тут прям полноценное How To (тыц-тыц! только IP-шники поменял) и всё заработало!
  • 26.11.2017, 17:54
    Максим
    Ребят, подскажите пожалуйста, уже два дня голову ломаю. Тут вначале писали что правило заработало но можно зайти только с одного устройства в локальной сети. У меня таже самая проблема, только еще и с одного внешнего айпи, тоесть если попытаться подключиться с допустим адреса 1.1.1.1 когда уже кто-то подключен с 2.2.2.2, то не получится пока человек с адреса 2.2.2.2 не выйдет
  • 16.10.2017, 13:27
    Рамашка
    Правильно ли я понимаю, если несколько серваков и портов, то можно все это одним таким правилом сделать?

    add action=masquerade chain=srcnat dst-address=192.168.1.2-192.168.1.254 protocol=tcp src-address=192.168.1.2-192.168.1.254
  • 29.08.2017, 16:35
    Комментарий администратора
    den, к сожалению, не можем подсказать, так как готовили гайд только для Микротик, по причине того, что оборудование этого бренда имеет больше возможностей конфигурации и поэтому более сложное в настройке.
  • 28.08.2017, 17:51
    den
    Класс. А как это сделать для обычного роутера ? Например для ASUS RT68 ?
  • 20.08.2017, 01:31
    IozI
    Воу, спасибо вам за статью. Нужно было раньше ее найти, когда устанавливал видеонаблюдение и впервые столкнулся с MikroTik. Не понимал, почему с внешней сети все видно, а со внутренней - нет. Пришлось пользоваться p2p сервисом.
    Еще раз спасибо, понял что к чему)
  • 16.08.2017, 10:55
    Комментарий администратора
    Николай, да, такая возможность есть. Для этого вам нужно настроить правило в разделе Firewall на определенный порт (в зависимости от способа, которым вы будете подключаться). Более подробную инструкцию можете найти в интернете.
  • 15.08.2017, 21:46
    Николай
    Здраствуйте, интересует возможность зайти из интернета на микротик в локальной сети.
    не подскажете реально ли и как?
  • 31.03.2017, 23:54
    Дмитрий
    А если внешний ip динамический но есть ddns
  • 31.03.2017, 07:17
    Сергей
    Подскажите пожалуйста, у меня адрес внешнего IP изменяется, у меня есть скрипт для dyndns.org определение внешнего IP, я получаюзначения в скрипте как currentIP так вот вопрос как мне в вкладке General вставить эти значения в Dst. Address?
    Спасибо
  • 28.03.2017, 11:56
    Евгений
    Андрей, /24 это значит не 24 айпишника, а маска 255.255.255.0
    /32 - 255.255.255.255
  • 22.02.2017, 17:03
    Владимир
    Спасибо большое! Статья очень помогла!
  • 15.02.2017, 15:13
    Дмитрий
    Андрей, проверьте правила в Firewall, порядок записей имеет значение, начинаются с верху в низ, так как странно, что при настройке у Вас даже не принимает диапазон адресов. Видимо блокируется входящие или исходящие пакеты. Src и Dst в правилах меняются местами. В зависимости от направления движения пакета.
  • 10.02.2017, 15:25
    Андрей
    Здравствуйте! У меня проблема-тоже не работает ни 1-й ни 2-й вариант Hairpin NAT..У меня сеть на 50 адресов,а в правиле Srcnat в закладке Src Addres стоит 192.168.88.0/24 - больший диапазон я выставить не могу (максимум 0/32 и он начинает ругаться)...мне важно чтобы все локальные адреса (хотя бы до 50-го) могли подключаться из локальной сети..я попробовал написать диапазон в формате 192.168.88.2-192.168.88.50 - вроде приняло,но всё равно не работает...а из внешней сети все выше описанные правила работают...ещё пытался поставить приоритет - т.е. поднял выше правил по умолчанию --- результат - 0...
  • 06.02.2017, 16:11
    Комментарий администратора
    Михаил, мы Вас тоже :)
  • 06.02.2017, 16:11
    Комментарий администратора
    Виталий, мы рады, что информация пригодилась)
  • 06.02.2017, 15:28
    Михаил
    Все отлично работает! Пользуюсь этой статьей, как шпаргалкой :) Спасибо огромное автору! Толково, все по пунктам, я Вас люблю! (=
  • 31.01.2017, 07:32
    Виталий
    Все заработало! Огромное спасибо за статью! Выручили очень!
  • 26.01.2017, 17:58
    Дмитрий
    Артем, возможно Ваш провайдер блокирует доступ к сети по MAC адресу, то необходимо сначала изменить MAC адрес WAN порта роутера MikroTik, а также проверьте настройки по правилам фаервола
  • 21.01.2017, 16:32
    Артем
    Не работает ни один из вариантов, в том числе и "dst-address-type=local"
    Еще непонятно, почему данные запросы не попадают под основное правило srsnat output interface="WAN" action=masquerade, без которого не работает интернет ? Разве данные запросы не отправляются наружу роутером, аналогично запросам на любой сайт? Ведь обращение идет к внешнему WAN адресу роутера ?

  • 20.01.2017, 20:48
    Кирилл
    Просьба к авторам статьи. А можно добавить скрин порядка очередности правил?
  • 12.12.2016, 10:21
    Александр
    А еще можно из правила убрать приходящий интерфейс, оставив только внешний ип, и все будет прекрасно работать
  • 04.11.2016, 10:34
    Комментарий администратора
    Влад, у нас при создании статьи работал и первый, и второй вариант. А второй вариант пробовали, работает у вас?
  • 04.11.2016, 10:12
    Влад
    не работает!
    первый вариант не работает всё слеланно один к одному.
  • 01.11.2016, 18:06
    svyatoslav
    add chain=srcnat dst-address=192.168.88.2 protocol=tcp dst-port=3389 action=masquerade add action=dst-nat chain=dstnat dst-address-type=local dst-port=3389 protocol=tcp to-addresses=192.168.88.2
  • 29.09.2016, 14:44
    Тарас
    а для ubiquiti не знаете как сделать доступ к внешнему ip из локальной сети?
  • 09.09.2016, 16:01
    Олег
    спасибо
  • 19.07.2016, 09:01
    Андрей
    Допустим есть локальная сеть (192.168.5.0/24)с внешним IP:123.123.123.123 так как шлюз на windows - Hairpin не настроить в принципе. Есть MicroTik роутер с wifi. По нему будут цепляться планшеты. Можно ли Микротик так настроить чтобы клиенты которые подключились через него при обращении к адресу 123.123.123.123 на порт 5555 попадали на 192.168.5.10 порт 80.
  • 19.06.2016, 22:34
    fw
    Спасибо автору статьи, и дополнительное огромное спасибо Stealth !!!
    Вы меня спасли!
  • 26.05.2016, 22:31
    Алексей
    Я б поднял VPN для доступа извне.
    Так надежнее и мы не привязаны к конкретному IP
  • 08.04.2016, 12:00
    Xoma55
    Спасибо друг! Такую инфу найти было тяжело.
  • 17.03.2016, 10:13
    Комментарий администратора
    Stealth, спасибо за полезную информацию!
  • 17.03.2016, 01:21
    Stealth
    dst-address-type=local находится на вкладке "Extra".
  • 17.03.2016, 01:19
    Stealth
    Чтобы не указывать внешний IP-адрес роутера, вместо него можно указать (во втором варианте) dst-address-type=local. Т.е. получится что-то вроде
    /ip firewall nat
    add chain=srcnat src-address=192.168.88.0/24 dst-address=192.168.88.2 protocol=tcp dst-port=3389 action=masquerade
    add action=dst-nat chain=dstnat comment=RDP dst-address-type=local dst-port=3389 protocol=tcp to-addresses=192.168.88.2
  • 03.03.2016, 00:08
    Павел
    Получилось по первому варианту, но одно НО! Почему-то могу зайти только с одного устройства из локалки. Со второго устройства не пускает, пока первым не выйду. В чем может быть загвоздка?
  • 29.02.2016, 08:51
    E.IVANOV
    Очень полезная статья!
  • 26.01.2016, 22:18
    fromtheroof
    Спасибо. Полезная статья.
  • 03.12.2015, 23:13
    Виталий
    Нагрузка больше не будет если внешней й и внутренний порты разны. К примеру сервер на порте 3333 а внешний порт на ване 8888. Локальные абоненты будут конектится напрямую на 3333 а те кто просится на 1.1.1.1:8888 будут ходить через роутер. Я правильно все понял? Нагрузка не увеличивается?
Запросить прайс
Подписаться на новости
Задать вопрос
Написать директору