Explosive Posted October 23, 2020 Posted October 23, 2020 На Keenetic 4G III обновил прошивку, установил Wireguard, но во вкладке "Другие подключения нет его", на Giga все отображается. Кстати, если установить OpenVPN на Keenetic 4G то тоже в списке его нет. Quote
T@rkus Posted October 23, 2020 Posted October 23, 2020 13 минуты назад, Explosive сказал: На Keenetic 4G III обновил прошивку, установил Wireguard, но во вкладке "Другие подключения нет его", на Giga все отображается. Кстати, если установить OpenVPN на Keenetic 4G то тоже в списке его нет. Версия 2.16.D.7.0-0: Wireguard: бэкпорт из 3.5 (только cli-версия) Quote
r13 Posted October 23, 2020 Posted October 23, 2020 13 минуты назад, Explosive сказал: На Keenetic 4G III обновил прошивку, установил Wireguard, но во вкладке "Другие подключения нет его", на Giga все отображается. Кстати, если установить OpenVPN на Keenetic 4G то тоже в списке его нет. Читайте внимательно changelog, настройка wg только через cli Quote
Explosive Posted October 23, 2020 Author Posted October 23, 2020 (edited) 1 hour ago, r13 said: Читайте внимательно changelog, настройка wg только через cli Спасибо за уточнение. Тогда может чтобы не было путаницы стоит исправить на "настройка через CLI", а то мышинально "cli-версия" воспринимается как client. Планируется ли вытащить настройку в интерфейс? Роутер находитя далеко и нет возможности приехать туда для настройки Wireguard или хотя бы разрешить SSH через интернет. Edited October 23, 2020 by Explosive Quote
r13 Posted October 23, 2020 Posted October 23, 2020 2 часа назад, Explosive сказал: Спасибо за уточнение. Тогда может чтобы не было путаницы стоит исправить на "настройка через CLI", а то мышинально "cli-версия" воспринимается как client. Планируется ли вытащить настройку в интерфейс? Роутер находитя далеко и нет возможности приехать туда для настройки Wireguard или хотя бы разрешить SSH через интернет. Я через web cli настроил, Заходим на вебморду, страница /a Минимальный конфиг для клиента: Скрытый текст interface Wireguard0 interface Wireguard0 ip address {ip mask} interface Wireguard0 ip mtu 1420 interface Wireguard0 ip global {priority} interface Wireguard0 ip tcp adjust-mss pmtu interface Wireguard0 wireguard peer {public key} interface Wireguard0 wireguard peer {public key} endpoint {ip:port} interface Wireguard0 wireguard peer {public key} keepalive-interval 25 interface Wireguard0 wireguard peer {public key} allow-ips 0.0.0.0 0.0.0.0 1 Quote
r13 Posted October 23, 2020 Posted October 23, 2020 @Le ecureuilКстати в вебе есть загрузка из файла, эту функцию как то чере cli можно дернуть? или rci? Quote
Mamay Posted October 23, 2020 Posted October 23, 2020 4 часа назад, Explosive сказал: Планируется ли вытащить настройку в интерфейс? Роутер находитя далеко и нет возможности приехать туда для настройки Wireguard или хотя бы разрешить SSH через интернет. Нет. @Le ecureuilне занимается вебом. Либо ssh, либо в web же добавить в строке браузера после IP адреса роутера /a Quote
Le ecureuil Posted October 23, 2020 Posted October 23, 2020 5 часов назад, r13 сказал: @Le ecureuilКстати в вебе есть загрузка из файла, эту функцию как то чере cli можно дернуть? или rci? В 3.x это сделано через парсинг конфига регуляркой и уже дальше командами, потому на уровне cli нет работы с конфигом. 2 Quote
Popular Post Frans Posted October 24, 2020 Popular Post Posted October 24, 2020 (edited) На официальной странице отсутствует инфа по настройке Wireguard через CLI. Набросал краткую инструкцию, как поднять Wireguard сервер через командную строку кинетика: Spoiler Создаем Wireguard сервер через командную строку кинетика: Роутер должен иметь белый адрес в интернете, чтоб на него могли подключаться клиенты. 1. Создаем интерфейс: (config)> interface Wireguard0 ключи(private-key и public-key) автоматически генерируются при создании интерфейса 2. Назначаем имя: (config-if)> description "WG-S" 3. Назначаем внутренний IP-адрес и подсеть туннеля: (config-if)> ip address 192.168.6.1/30 в этом примере я создал подсеть /30, т.к у меня будет только один Wireguard клиент с адресом 192.168.6.2/30 (роутер на OpenWrt в деревне) если вы планируете подключать много клиентов, можете забабахать подсеть /24 4. Назначаем порт, на котором будет слушать Wireguard, по умолчанию порт будет 48950, можете изменить его на любой (config-if)> wireguard listen-port 48951 5. Для предоставления доступа в интернет удаленным клиентам устанавливаем уровень безопасности private: (config-if)> security-level private 6. Включаем автоматическую подстройку mtu на интерфейсе Wireguard: (config-if)> ip tcp adjust-mss pmtu 7. Добавляем пира(удаленного клиента), публичный ключ(public-key) удаленного пира: (config-if)> wireguard peer R9xBU+IA7GYIOKM4I5nIeNFhWzHswjIYfnHCTFaI19E= 8. Добавляем подсеть IP-адресов, на которые разрешена передача пакетов по туннелю (config-wg-peer)> allow-ips 192.168.6.2/32 (config-wg-peer)> allow-ips 192.168.10.0/24 тут 192.168.6.2/32 это адрес Wireguard клиента на удаленном роутере, а 192.168.10.0/24 это локальная сеть на удаленном роутере 10. Выходим из настроек пира: (config-wg-peer)> exit 11. Запускаем Wireguard: (config-if)> up 12. Выходим из настроек интерфейса: (config-if)> exit 13. Для предоставления доступа в интернет удаленным клиентам для Wireguard0 включаем автоматическую трансляцию адресов (NAT): (config)> ip nat Wireguard0 14. По желанию, если вам нужно разрешить соединения между интерфейсами типа private: (config)> no isolate-private 15. Проверяем состояние интерфейса Wireguard0, и копируем public-key нужный для настройки удаленного клиента (config)> show interface Wireguard0 16. Сохраняем сделанные настройки при помощи команды: (config)> system configuration save Сегодня утром на Wireguard измерил скорость, дошла до 40 Мбит/сРаньше на тоннеле IPsec не поднималась выше 26 Мбит/с Спасибо Le ecureuil Edited October 24, 2020 by Frans 14 Quote
Goblin Posted October 24, 2020 Posted October 24, 2020 9 часов назад, Frans сказал: Набросал краткую инструкцию вот такие инструкции должны быть к любой фичи на роутере. даже я все понял. а понимаю я редко. спасибо. Quote
Gp21 Posted October 25, 2020 Posted October 25, 2020 (edited) В 24.10.2020 в 12:28, Frans сказал: Набросал краткую инструкцию А вас не сильно затруднит дополнить инструкцию по подключению в качестве пира? Edited October 25, 2020 by Gp21 Quote
Popular Post Frans Posted October 26, 2020 Popular Post Posted October 26, 2020 (edited) 11 hours ago, Gp21 said: А вас не сильно затруднит дополнить инструкцию по подключению в качестве пира? Всем спасибо, что оценили мой скромный труд ) Написал краткую инструкцию по настройке Wireguard клиента через CLI: Spoiler Создаем Wireguard клиент через командную строку кинетика: 1. Создаем интерфейс: (config)> interface Wireguard0 ключи(private-key и public-key) автоматически генерируются при создании интерфейса Для подключения к публичным серверам Wireguard в интернете, можно принудительно добавить private-key ключ командой: (config-if)> wireguard private-key UshaeghezaiJ7reo8iK6ear0eomujohkeen8jahX5uo= 2. Назначаем имя: (config-if)> description "WG-CL1" 3. Назначаем внутренний IP-адрес и подсеть туннеля: (config-if)> ip address 192.168.6.2/30 В этом примере я создал подсеть /30, т.к у меня будет только один Wireguard клиент с адресом 192.168.6.2/30 если вы планируете подключать к удаленному серверу много клиентов и объединять их локальные сети, можете забабахать подсеть /24 4. Назначаем порт, на котором будет слушать Wireguard, по умолчанию порт будет 48950, можете изменить его на любой (config-if)> wireguard listen-port 48952 5. Включаем автоматическую подстройку mtu на интерфейсе Wireguard: (config-if)> ip tcp adjust-mss pmtu 6. Добавляем пира(удаленного сервера), публичный ключ(public-key) удаленного сервера: (config-if)> wireguard peer R2xBU+IA9GYIOKM4I7nIeNFhWzHswjIYfnHCTFaI35E= 7. Добавляем белый адрес(можно в формате IP адреса) удаленного Wireguard сервера, и через двоеточие, его порт: (config-wg-peer)> endpoint example.wireguard.com:48951 тут example.wireguard.com вымышленный адрес 8. Добавляем подсеть IP-адресов, на которые разрешена передача пакетов по туннелю (config-wg-peer)> allow-ips 192.168.6.1/32 (config-wg-peer)> allow-ips 192.168.3.0/24 (config-wg-peer)> allow-ips 0.0.0.0/0 тут 192.168.6.1/32 это адрес Wireguard сервера на удаленном роутере, 192.168.3.0/24 это локальная сеть на удаленном роутере, сеть 0.0.0.0/0 нужна для доступа в интернет 9. Назначаем интервал внутренней проверки доступности Wireguard сервера: (config-wg-peer)> keepalive-interval 25 В этом примере установлено значение 25 секунд, как рекомендуют в OpenWrt, на странице настроек KEENETIC, указано 15 секунд. У меня клиент через 4G модем работает без проблем уже трое суток на значении 25 секунд 10. Выходим из настроек пира: (config-wg-peer)> exit 11. Определяем интерфейс Wireguard0, как ведущий в глобальную сеть (в интернет): (config-if)> ip global auto после завершения настроек, через веб-морду зайдите в меню "Интернет" на странице "Приоритеты подключений" появится интерфейс WireGuard. Перетащите его в начало списка, чтобы сделать основным подключением 12. Запускаем Wireguard: (config-if)> up 13. Выходим из настроек интерфейса: (config-if)> exit 14. По желанию, если вам нужно разрешить соединения между интерфейсами типа private: (config)> no isolate-private 15. Проверяем состояние интерфейса Wireguard0, и копируем public-key нужный для настройки удаленного сервера (config)> show interface Wireguard0 16. Сохраняем сделанные настройки при помощи команды: (config)> system configuration save 17. DNS сервера настраивайте через веб-морду, по вашему вкусу, можно назначить адрес удаленного Wireguard сервера(192.168.6.1) 18. По желанию, для возможности работы с удаленной локальной сетью, в нашем случае она 192.168.3.0/24, для WireGuard-интерфейса нужно разрешить входящий трафик и указать статический маршрут в удаленную сеть, подробно с картинками, написано тут: https://help.keenetic.com/hc/ru/articles/360012075879 кратко напишу ниже: а) Откройте страницу "Межсетевой экран". Для WireGuard-интерфейса (в нашем примере это "WG-CL1) добавьте и включите разрешающее правило для IP-протокола, адрес источника и назначения "Любой" б) Чтобы по туннелю отправлялся трафик в удаленную сеть(192.168.3.0/24), добавьте статический маршрут до сети 192.168.3.0/255.255.255.0 через интерфейс "WG-CL1" в) Не забудьте на сервере так-же разрешить трафик в удаленную сеть(192.168.10.0/24), добавьте статический маршрут до сети 192.168.10.0/255.255.255.0 через интерфейс "WG-S" надеюсь, не допустил ошибок Edited October 26, 2020 by Frans 11 Quote
Explosive Posted October 27, 2020 Author Posted October 27, 2020 Подскажите, пожалуйста, при доступе через /a как мне потом: 1. Продолжить если я на каком-то моменте прервал? 2. Если например была команда с неверными параметрами, например allow-ips 192.168.111.111/32 ну или любая другая? 3. Как отключить WG или очистить все настройки? 4. Где посмотреть настройки потом по SSH? Quote
Frans Posted October 27, 2020 Posted October 27, 2020 3 hours ago, Explosive said: 1. Продолжить если я на каком-то моменте прервал? Войти в настройки интерфейса (config-if) можно так: (config)> interface Wireguard0 Войти в настройки пира (config-wg-peer) можно так, в конце введя (public-key) удаленного пира: (config)> interface Wireguard0 wireguard peer R2xBU+IA9GYIOKM4I7nIeNFhWzHswjIYfnHCTFaI35E= Команду можно выполнить из основного меню (config), не заходя в настройки, одной строкой: (config)> interface Wireguard0 wireguard peer R2xBU+IA9GYIOKM4I7nIeNFhWzHswjIYfnHCTFaI35E= no allow-ips 192.168.111.111/32 3 hours ago, Explosive said: 2. Если например была команда с неверными параметрами, например allow-ips 192.168.111.111/32 ну или любая другая? Неверные параметры можно удалить командой, добавив перед ней (no): (config-wg-peer)> no allow-ips 192.168.111.111/32 3 hours ago, Explosive said: 3. Как отключить WG или очистить все настройки? Отключить: (config)> interface Wireguard0 down Удалить: (config)> no interface Wireguard0 при удалении очищаются настройки Wireguard, но остаются не связанные с ним настройки, такие как no isolate-private ip nat Wireguard0 их можно удалить командой, добавив перед ней (no) или удалив, как в случае с (no isolate-private) 3 hours ago, Explosive said: 4. Где посмотреть настройки потом по SSH? (config)> show interface Wireguard0 2 Quote
Le ecureuil Posted November 1, 2020 Posted November 1, 2020 Как миниум один пользователь G2 сообщил о падениях при работе wg. Кто еще подобное наблюдает? Quote
r13 Posted November 2, 2020 Posted November 2, 2020 В 01.11.2020 в 21:11, Le ecureuil сказал: Как миниум один пользователь G2 сообщил о падениях при работе wg. Кто еще подобное наблюдает? У меня один раз гига2 ребутнулась при множественных прогонах iperf через туннель, но более не повторялось. Прокачал через туннель 40Гб на максимальной скорости все ок, продолжает работать 1 Quote
Explosive Posted November 13, 2020 Author Posted November 13, 2020 Даже не знаю как благодарить разработчиков за добаление поддержки Wireguard для старых устройств. Спасибо огромное. Quote
Le ecureuil Posted November 30, 2020 Posted November 30, 2020 Нашел как минимум одно частое место падения, в версии 2.16.D.9.0-0 должно быть исправлено. 1 Quote
Xenos_rus Posted December 16, 2020 Posted December 16, 2020 Сложилось ощущение, что wireguard на Keenetic 4G III с 2.16.D.9.0-1 игнорирует keepalive. Стоит 15 секунд с обеих сторон, endpint был заведомо недоступен несколько часов, однако не произошло переключения на другое подключение по порядку приоритетов. Очень-очень не хватает принудительного выбора исходящего интерфейса при настройке WG. Как задать в NAT исключение хотя бы для локальной сети при настроенном доступе к интернету через WG? Сейчас интернет работает, но натится совсем всё. Схема: 192.168.2.1/24-(10.10.10.2/32-10.10.10.1/32)-192.168.1.1/24. Пинг от 192.168.2.20 к 192.168.1.100 натится так, что пакеты приходят с 192.168.1.1. В обратную сторону разумеется ничего не работает. Поэтому приходится держать ещё один тоннель для межсетевого траффика. Quote
stefbarinov Posted December 17, 2020 Posted December 17, 2020 (edited) 6 часов назад, Xenos_rus сказал: Сложилось ощущение, что wireguard на Keenetic 4G III с 2.16.D.9.0-1 игнорирует keepalive. Стоит 15 секунд с обеих сторон..... Рекомендуется на стороне WG-сервера вообще ничего не прописывать в поле "Проверка активности", а на стороне WG-клиента достаточно 8-10 секунд Edited December 17, 2020 by stefbarinov Quote
Xenos_rus Posted December 17, 2020 Posted December 17, 2020 59 minutes ago, stefbarinov said: а на стороне WG-клиента достаточно 8-10 секунд Не совсем понимаю как настройка сервера влияет на поведение клиента. В моём случае клиент вообще не заметил, что сервер стал недоступен и продолжал считать подключение живым. Quote
r13 Posted December 17, 2020 Posted December 17, 2020 23 минуты назад, Xenos_rus сказал: Не совсем понимаю как настройка сервера влияет на поведение клиента. В моём случае клиент вообще не заметил, что сервер стал недоступен и продолжал считать подключение живым. Попробуйте пингчек включить для этого интерфейса Quote
Xenos_rus Posted December 17, 2020 Posted December 17, 2020 3 minutes ago, r13 said: Попробуйте пингчек включить для этого интерфейса Подскажите, как это можно сделать на интерфейсе wireguard? В вебморде нет такого, перерыл документацию на CLI - тоже не нашёл. Quote
r13 Posted December 17, 2020 Posted December 17, 2020 (edited) 2 минуты назад, Xenos_rus сказал: Подскажите, как это можно сделать на интерфейсе wireguard? В вебморде нет такого, перерыл документацию на CLI - тоже не нашёл. Да через cli. Что-то вроде этого: interface Wireguard0 ping-check profile default Edited December 17, 2020 by r13 1 Quote
Xenos_rus Posted December 17, 2020 Posted December 17, 2020 7 minutes ago, r13 said: interface Wireguard0 ping-check profile default Спасибо. Сделал, понаблюдаю. Но вообще было бы неплохо, чтобы стабильно работал предусмотренный протоколом механизм keepalive... Quote
r13 Posted December 17, 2020 Posted December 17, 2020 14 минуты назад, Xenos_rus сказал: Спасибо. Сделал, понаблюдаю. Но вообще было бы неплохо, чтобы стабильно работал предусмотренный протоколом механизм keepalive... Keepalive и работает, посто он для другого в wireguard реализован. WG stateless и у него просто нет состояния подключено или нет. А keepalive в нем нужен для случая если одна из сторон за nat и нужно поддерживать дырку в этом nat. https://www.wireguard.com/protocol/ 1 Quote
Xenos_rus Posted December 17, 2020 Posted December 17, 2020 1 minute ago, r13 said: Keepalive и работает, посто он для другого в wireguard реализован. Спасибо за разъяснение. У меня есть другие пары роутеров, все на актуальной линейке 3.х и там при отвале "сервера" клиент нормально переключает соединение на следующее с меньшим приоритетом. Косвенное проявление - состояние из зелёной точки меняется на серую, статус меняется на "Нет соединения". А на легаси ветке 2.х этого не происходит - соединение продолжает считаться живым, переключения не происходит. Хочу понять почему и как добиться такого же поведения. Quote
r13 Posted December 17, 2020 Posted December 17, 2020 4 минуты назад, Xenos_rus сказал: А на легаси ветке 2.х этого не происходит - соединение продолжает считаться живым, переключения не происходит. Хочу понять почему и как добиться такого же поведения. Ну на легаси только @Le ecureuil Расскажет как там все устроено. Quote
Le ecureuil Posted December 17, 2020 Posted December 17, 2020 2 часа назад, Xenos_rus сказал: Спасибо за разъяснение. У меня есть другие пары роутеров, все на актуальной линейке 3.х и там при отвале "сервера" клиент нормально переключает соединение на следующее с меньшим приоритетом. Косвенное проявление - состояние из зелёной точки меняется на серую, статус меняется на "Нет соединения". А на легаси ветке 2.х этого не происходит - соединение продолжает считаться живым, переключения не происходит. Хочу понять почему и как добиться такого же поведения. А покажите self-test в момент, когда якобы нет связи, но пир светится зеленым. Причем лучше снять парочку, с интервалом строго в 1 минуту, чтобы было понятнее. Quote
Xenos_rus Posted December 17, 2020 Posted December 17, 2020 2 hours ago, Le ecureuil said: А покажите self-test в момент, когда якобы нет связи, но пир светится зеленым. Подскажите, как убрать ping-check profile default с интерфейса wireguard без его пересоздания? Потому что после его добавления в принципе работает: PingCheck::Profile: interface Wireguard0 connection check failed и активным стало следующее подключение. Quote
Recommended Posts
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.