Jump to content
  • 1

Доступ к локальным веб-сервисам из Интернета и из локальной сети через xxx.keenetic.link


Michael Khaskelberg
 Share

Question

Ситуация. Есть Кинетик Экстра, за ним живет достаточно большая домашняя сеть. Внешний IP - белый, динамический. В сети подняты некоторые веб-сервисы, в том числе файловое хранилище, аудио/видео стриминг и облако NextCloud (все на NAS). Понятно, что когда мои устройства (Win и Андроид) находятся внутри сети, то доступ к сервисам я получаю по адресу вида "192.168.x.y:port". Когда уезжаю на работу с ноутбуком и телефоном,доступ к локальным сервисам могу получить только 2 способами:

  1. через проброс портов на Кинетике. Но в этом случае приходится каждый раз перенастраивать клиентские приложения на компе и телефоне, заменяя адрес вида 192.168.x.y:port на xxx.keenetic.link:port (который резолвится в мой внешний белый IP и благополучно обрабатывается проброшенными портами)
  2. поднимая на Кинетике vpn-сервер и подключаясь к нему со своих мобильных устройств. В этом случае не приходится перенастраивать приложения, но держать постоянно поднятый vpn до дома не очень удобно. 

Второй метод конечно универсальный, но по разным причинам подходит не всегда. В идеале хотелось бы настроить работу по 1 методу, указывая во всех приложениях адрес подключения xxx.keenetic.link:port. Но проблема в том, что когда я нахожусь в домашней сети и делаю запрос по адресу внешнего IP, пакеты попадают на внешний интерфейс роутера, где благополучно и теряются. 

Собственно вопрос: можно ли каким-то образом настроить Кинетик так, что если в локальной сети находится устройство, которое стучится на адрес xxx.keenetic.link:port, то роутер понимал бы, что эти запросы следует адресовать на внутренние сервисы по соответствующим портам, вместо того, чтобы пытаться футболить их в Интернет?

Edited by Michael Khaskelberg
Link to comment
Share on other sites

14 answers to this question

Recommended Posts

  • 0
19 минут назад, Michael Khaskelberg сказал:

Ситуация. Есть Кинетик Экстра, за ним живет достаточно большая домашняя сеть. Внешний IP - белый, динамический. В сети подняты некоторые веб-сервисы, в том числе файловое хранилище, аудио/видео стриминг и облако NextCloud (все на NAS). Понятно, что когда мои устройства (Win и Андроид) находятся внутри сети, то доступ к сервисам я получаю по адресу вида "192.168.x.y:port". Когда уезжаю на работу с ноутбуком и телефоном,доступ к локальным сервисам могу получить только 2 способами:

  1. через проброс портов на Кинетике. Но в этом случае приходится каждый раз перенастраивать клиентские приложения на компе и телефоне, заменяя адрес вида 192.168.x.y:port на xxx.keenetic.link:port (который резолвится в мой внешний белый IP и благополучно обрабатывается проброшенными портами)
  2. поднимая на Кинетике vpn-сервер и подключаясь к нему со своих мобильных устройств. В этом случае не приходится перенастраивать приложения, но держать постоянно поднятый vpn до дома не очень удобно. 

Второй метод конечно универсальный, но по разным причинам подходит не всегда. В идеале хотелось бы настроить работу по 1 методу, указывая во всех приложениях адрес подключения xxx.keenetic.link:port. Но проблема в том, что когда я нахожусь в домашней сети и делаю запрос по адресу внешнего IP, пакеты попадают на внешний интерфейс роутера, где благополучно и теряются. 

Собственно вопрос: можно ли каким-то образом настроить Кинетик так, что если в локальной сети находится устройство, которое стучится на адрес xxx.keenetic.link:port, то роутер понимал бы, что эти запросы следует адресовать на внутренние сервисы по соответствующим портам, вместо того, чтобы пытаться футболить их в Интернет?

Странно как то у вас.

У меня и NAS, NextCloud, HDD подключенный к роутеру, все видеться и работает как в локалке, так из удаленного доступа(из вне). Настроено один раз и работает, ничего каждый раз перенастраивать не надо.

  • Thanks 1
Link to comment
Share on other sites

  • 0
43 минуты назад, Mikesk сказал:

это называется nat loopback и вроде всегда работало.

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

По факту что имею сейчас: есть NAS Synology, на нем поднят (к примеру) NoteStation. Он работает по порту 9351. Соответственно, на Кинетике стоит проброс внешнего TCP-порта 9351 на такой же номер порта по внутреннему IP NAS-a. На ноутбуке настроен NoteStation-клиент, который стучится по адресу MyName.keenetic.link, и успешно попадает на мой NAS. Но это работает только если ноутбук во внешней сети (с работы, или через 4G). Как только ноут попадает во внутреннюю сеть роутера (LAN или wifi), клиентское приложение перестает коннектиться к серверу. 

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

Подскажите, как/что проверить?

Link to comment
Share on other sites

  • 0
28 минут назад, MDP сказал:

Первое что в голову приходит подправить hosts ...и привязать доменное имя к локальному адресу.

Эээээ... где править hosts? На ноутбуке? Боюсь, не поможет, т.к. при работе из внешней сети я буду слать пакеты "в никуда". Или придется иметь 2 файла hosts, "подкладывая" нужный в зависимости от того, в какой сети зарегистрирован сейчас ноутбук. Это неудобно, и к тому же сложнореализуемо на мобильных устройствах.

Link to comment
Share on other sites

  • 0
Только что, Michael Khaskelberg сказал:

Эээээ... где править hosts? На ноутбуке? Боюсь, не поможет, т.к. при работе из внешней сети я буду слать пакеты "в никуда". Или придется иметь 2 файла hosts, "подкладывая" нужный в зависимости от того, в какой сети зарегистрирован сейчас ноутбук. Это неудобно, и к тому же сложнореализуемо на мобильных устройствах.

Нет в самом роутере.

 

Link to comment
Share on other sites

  • 0
17 минут назад, Michael Khaskelberg сказал:

Эээээ... где править hosts? На ноутбуке? Боюсь, не поможет, т.к. при работе из внешней сети я буду слать пакеты "в никуда". Или придется иметь 2 файла hosts, "подкладывая" нужный в зависимости от того, в какой сети зарегистрирован сейчас ноутбук. Это неудобно, и к тому же сложнореализуемо на мобильных устройствах.

(config)> ip host ‹domain› ‹address›

 

Link to comment
Share on other sites

  • 0
15 минут назад, MDP сказал:

(config)> ip host ‹domain› ‹address›

Как потом "откатить" эти изменения, если что-то пойдет не так? Очень не хочется сбрасывать роутер "до заводских", я его 2 недели настраивал.

И если я правильно понимаю смысл работы hosts, то этот метод сработает с 2 ограничениями:

  1. Можно будет обращаться по имени хоста только к одному серверу сети. Но у меня серверов несколько (2 разных NAS-а + локальный сервер для разработки)
  2. Если при пробросе портов наружу использовался механизм подмены номера порта (например, к локальному 80 порту разработческого сервера я сейчас стучусь через MyName.keenetic.link:11080), то метод работать не будет.

Верно?

Link to comment
Share on other sites

  • 0

1) Сохраните конфиг сейчас, потом сможете залить - если "что-то пойдет не так".

2) Не надо никаких хостов, только что проверил - все работает. Дома веб-сервер на порту 8080, доступен по keendns-имени:8080 откуда угодно. Попробуйте постучаться по внешнему IP, доступен ваш NAS?

Link to comment
Share on other sites

  • 0
1 час назад, Michael Khaskelberg сказал:

Как потом "откатить" эти изменения, если что-то пойдет не так? Очень не хочется сбрасывать роутер "до заводских", я его 2 недели настраивал.

И если я правильно понимаю смысл работы hosts, то этот метод сработает с 2 ограничениями:

  1. Можно будет обращаться по имени хоста только к одному серверу сети. Но у меня серверов несколько (2 разных NAS-а + локальный сервер для разработки)
  2. Если при пробросе портов наружу использовался механизм подмены номера порта (например, к локальному 80 порту разработческого сервера я сейчас стучусь через MyName.keenetic.link:11080), то метод работать не будет.

Верно?

Верно.

Link to comment
Share on other sites

  • 0
58 минут назад, Mikesk сказал:

только что проверил - все работает. Дома веб-сервер на порту 8080, доступен по keendns-имени:8080 откуда угодно. Попробуйте постучаться по внешнему IP, доступен ваш NAS?

Тоже только что еще раз проверил.

Чисто веб-сервис на NAS, доступен в браузере. Захожу по http://myname.keenetic.link:7000/ - работает идеально, если ноутбук в интернете через 4G. Перехожу на wifi, нажимаю ctrl+F5 - получаю "Не удается получить доступ к сайту. Сайт myname.keenetic.link не позволяет установить соединение.". Если вводить http://192.168.5.110:7000/ - то опять работает. 

Т.е. я не выдумал проблему, поверьте. 

PS Гуглил, нашел что NAT Loopback может быть отключен на уровне CLI-интерфейса. Разобрался, зашел, "interface Home ip nat loopback" - включил, конфигурацию сохранил. Ничего не изменилось. 

Link to comment
Share on other sites

  • 0
13 минуты назад, Michael Khaskelberg сказал:

Тоже только что еще раз проверил.

Чисто веб-сервис на NAS, доступен в браузере. Захожу по http://myname.keenetic.link:7000/ - работает идеально, если ноутбук в интернете через 4G. Перехожу на wifi, нажимаю ctrl+F5 - получаю "Не удается получить доступ к сайту. Сайт myname.keenetic.link не позволяет установить соединение.". Если вводить http://192.168.5.110:7000/ - то опять работает. 

Т.е. я не выдумал проблему, поверьте. 

PS Гуглил, нашел что NAT Loopback может быть отключен на уровне CLI-интерфейса. Разобрался, зашел, "interface Home ip nat loopback" - включил, конфигурацию сохранил. Ничего не изменилось. 

А на сам роутер заходите вот так?

Если у вас "чисто веб-сервис", настройте доменное имя 4ого уровня и не мучатесь. Если не получается, сходите в поддержку, в самом деле. Пусть ваш конфиг посмотрят.

 

У меня все то же самое, как вы пишете (порт 8080 только) - и работает. Доступ по HTTP/HTTPS разрешен. Но ограничение портов, насколько я знаю, только у Cloud режима есть.

Link to comment
Share on other sites

  • 0

Разобрался, все заработало. 

Дело в том, что я не настраивал пробросы портов вручную через веб-интерфейс. Это делал за меня Synology NAS - он "особо умный", и умеет сам настраивать их на роутере через UPnP на основании списка запущенных веб-приложений. Оказалось, что правила NAT Lookup не создатся при генерации пробросов портов через UPnP. Отключил авто-проброс и сделал все вручную через веб-интерфейс - и все заработало.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...