Дано: устройство в локальной сети, имеющее выход в интернет через маршрутизатор, маршрутизатор использует мобильный интернет в качестве внешнего соединения. Получается двойной NAT — внутри локальной сети, и от мобильного оператора. Соответственно, изначально ни устройство, ни маршрутизатор не доступны из внешней сети.
Решение: настроить удалённый сервер WireGuard и подключить к нему оба узла.
Проблема: WireGuard на маршрутизаторе настраивается через WEB UI (Zyxel Keenetic OS) и работает как и ожидается, а вот устройство не хочет выходить на связь.
Возможное решение: как я полагаю, проблема кроется в NAT-e локальной сети, который не пускает пакеты от WG сервера до устройства — их перехватывает маршрутизатор и не знает, что с ними делать.
Возможно ли каким-то стандартными настройками заставить устройство в локальной сети первым связываеться с сервером? Или проблема в чём-то другом?
UPD: проще говоря — нужно обеспечить возможность удалённого подключения к устройству из внешней сети без всяких сложных пробросов портов и правил маршрутизации.
Здравствуйте, cppguard, Вы писали:
C>Возможно ли каким-то стандартными настройками заставить устройство в локальной сети первым связываеться с сервером? Или проблема в чём-то другом?
(ничего про WireGuard не знаю)
Я б выключил этот впн на роутере и отлаживал только устройство. Мало ли там везде одни и те же ключи, и сервер не может различить устройство и роутер, выдал ip первому, а второго игнорирует. tcpdump на устройстве+роутере+сервере покажет кто не пускает пакеты.
C>UPD: проще говоря — нужно обеспечить возможность удалённого подключения к устройству из внешней сети без всяких сложных пробросов портов и правил маршрутизации.
ssh -R123:localhost:123 и на сервере открыть порт 123 — это выглядит проще, чем vpn и настройка nat на сервере
Или устройство получает внешний ip?
Здравствуйте, aik, Вы писали:
aik>(ничего про WireGuard не знаю) aik>Я б выключил этот впн на роутере и отлаживал только устройство. Мало ли там везде одни и те же ключи, и сервер не может различить устройство и роутер, выдал ip первому, а второго игнорирует. tcpdump на устройстве+роутере+сервере покажет кто не пускает пакеты.
aik>ssh -R123:localhost:123 и на сервере открыть порт 123 — это выглядит проще, чем vpn и настройка nat на сервере aik>Или устройство получает внешний ip?
Всё оказалось проще — нужно было PersistentKeepalive включить на устройстве.
Здравствуйте, aik, Вы писали:
aik>Звучит странно для vpn, оно должно было работать и без этого, хоть и недолго, это роутер настолько нетерпелив? Ну да ладно.
На нескольких ресурсах было написано, что с PersistentKeepalive=0 (это по-умолчанию) если клиент сам не инициировал передачу пакетов, то соединение не открывается. Даже если пинговать этого клиента с сервера. То есть, оно работает конечно, но очень странно. Я оставил бесконечный работающий ping с сервера до клиента, пинг висел без пакетов. Я ишёл на обед на полчаса, а когда вернулся, то клиент пинговался. Получается, что без того параметра соединение установится рано или поздно, но когда это будет —