Как на OpenWrt(LEDE) сделать чтобы можно было подключаться к локальным сервисам, на локальных машинах с внешнего IP?
Как на openwrt сделать чтобы можно было подключаться к локальным сервисам, на локальных машинах с внешнего IP?
Я как-то находил информацию об этом, но это было давно и я не помню уже.
Схема такая:
Есть роутер с openwrt. На нём поднят openvpn. С внешки я могу подключиться к этому openvpn-у. А когда пытаюсь подключиться изнутри, на внешний ipшник, то конект не проходит. Это нужно для того чтобы находясь во внутреней сети, не менять в конфиге ovpn IPшник сервера на который подключаться.
Уточнение:
Устройство(телефонбноутбук) находиться во внутреней сети(192.168.1.0/24), и когда я из этой сети пытаюсь подключиться к внешнему IPу(xxx.xxx.xxx.xxx), то конект не проходит. А вот если устройство не во внетреней сети, то коннект проходит без проблем.
Ранее на чистом OpenWrt работало всё без проблем, когда перешился на LEDE, то появилась такая проблема.
Самый простой способ - подключайтесь по имени, а не по IP.
В файле hosts роутера пропишите соответствие имени внутреннему IP.
Вообще можно гуглить по - Hairpin NAT
Устройство(телефонбноутбук) находиться во внутреней сети(192.168.1.0/24), и когда я из этой сети пытаюсь подключиться к внешнему IPу(xxx.xxx.xxx.xxx), то конект не проходит.
Разумеестя.
У вас компьютеры за натом, вы обращаетесь по белому адресу, который вообще то назначен роутеру, а не вашему серверу.
Пакет попадает на роутер - там есть правило которое перенаправляет пакеты на нужный сервер, но оно работает только для пакетов из внешней сети, а вам надо добавить правило проброса портов для пакетов приходящих из внутренней сети. Ну и чтобы потом ответ пришел с того же адреса, надо еще маскарадинг включить и при отправке пакета по локалке подменять свой внутренний адрес на белый, чтобы клиент не удивился пакету пришедшему с левого IP и не отбросил его.
Но повторю - гораздо проще пользоваться именами и разруливать эту проблему на уровне имен.