Настройка WireGuard на роутере с KeeneticOS для чайников

Настройка WireGuard на роутере с KeeneticOS для чайников

Задача

Настроить роутер Keenetic так, чтобы доступ к ресурсам был у всех устройств в сети, и не приходилось на каждом смартфоне или ноуте ставить клиент WireGuard и запускать конфиг «локально».

Нам понадобится

Настройка WireGuard на роутере с KeeneticOS для чайников

1. Роутер Keenetic

2. Файл конфигурации WireGuard

3. Bat-файл со списком маршрутов

Файл конфигурации WireGuard

Создаем для роутера файл конфигурации WG, в поле AllowedIP оставляем всё как есть, то есть 0.0.0.0/0

Файл конфигурации WireGuard
Файл конфигурации WireGuard

Добавлять маршруты для доступов будем позже в BAT-файл.

Bat-файл с маршрутами

Чтобы не добавлять каждый адрес со своми параметрами вручную в настройки маршрутизации роутера, предварительно создаем bat-файл со списком сетей и их масок.

Готовые файлы с маршрутами можно посмотреть по этой ссылке. Также можно использовать какой-то из готовых файлов для формирования своего файла с маршрутами.

Синтаксис файла следующий:

route add 8.8.4.0 mask 255.255.255.0 0.0.0.0

Если у тебя список адресов изначально формата 8.8.4.0/24 и ты не знаешь, как CIDR записать маской, то можно воспользоваться вот этой табличкой. Нули в конце строки у всех маршрутов одинаковые. То есть конечный файл выглядит вот так:

route add 8.8.4.0 mask 255.255.255.0 0.0.0.0 route add 8.8.8.0 mask 255.255.255.0 0.0.0.0 route add 8.34.0.0 mask 255.255.0.0 0.0.0.0 route add 8.35.0.0 mask 255.255.0.0 0.0.0.0 route add 23.236.0.0 mask 255.255.0.0 0.0.0.0

Создавать и редактировать файл с расширением .bat можно в Блокноте или Visual Studio Code (или другом редакторе).

Настройка роутера

Теперь, когда все файлы подготовлены, переходим к настройке роутера: заходим через браузер в интерфейс по адресу 192.168.1.1 и авторизовываемся.

Проверка наличия компонентов

Для начала нужно проверить, все ли необходимые нам компоненты установлены в нашу KeeneticOS.

Переходим в Управление > Параметры системы и в блоке Обновление и компоненты KeeneticOS жмем Изменить набор компонентов:

Параметры системы
Параметры системы

В появившемся окне в поле поиска вводим «wireguard» и проверяем, установлен ли этот компонент:

Компонент WireGuard
Компонент WireGuard

Если компонент не установлен, то ставим галочку в чекбоксе, но пока не сохраняем набор компонентов.

Далее вводим в поиск следующий компонент «dns-over-tls» и, если он тоже не установлен, ставим галочку для установки.

Компонент DNS-over-TLS
Компонент DNS-over-TLS

Теперь сохраняем набор компонентов. Роутер произведет обновление системы, добавит выбранные компоненты и перезагрузится. Теперь всё готово к настройке.

Добавление подключения WireGuard

Идем в Интернет > Другие подключения. У нас появился блок Wireguard, в котором надо выбрать Загрузить из файла и выбираем заранее подготовленный файл .conf:

Добавление подключения WireGuard
Добавление подключения WireGuard

После загрузки в таблице появится наше новое подключение. Пока не активируем, сначала просто жмем на него и проваливаемся в окно настройки подключения. Здесь нам необходимо активировать чек-бокс Использовать для выхода в интернет:

Настройки подключения - Чекбокс «Использовать для выхода в интернет»
Настройки подключения - Чекбокс «Использовать для выхода в интернет»

А также задать имя пиру:

Настройки подключения - Имя пира
Настройки подключения - Имя пира

Сохраняем настройки, активируем наше подключение. Статус пира должен стать зеленого цвета:

Статус пира активированного подключения
Статус пира активированного подключения

Добавление DNS-over-TLS

Идем в Сетевые правила > Интернет-фильтры, выбираем вкладку Настройка DNS. Жмем на кнопку Добавить сервер:

DNS-серверы
DNS-серверы

В появившемся окне выбираем тип сервера DNS-over-TLS, вбиваем адрес и доменное имя TLS, после чего сохраняем:

Добавление сервера
Добавление сервера

Я добавил два сервера: 8.8.8.8 dns.google и 1.1.1.1 cloudflare-dns.com, потому что они были указаны в файле моего конфига WireGuard. Как видно, в их карточках иконка замка зеленая и есть пометка DoT:

Добавленные DNS-серверы
Добавленные DNS-серверы

Также я нашел список серверов, который может пригодиться:

Настройка WireGuard на роутере с KeeneticOS для чайников

Настройка маршрутизации

Идем в Сетевые правила > Маршрутизация, в разделе Пользовательские маршруты жмем Загрузить из файла:

Пользовательские маршруты
Пользовательские маршруты

В появившемся окне в поле Интерфейс выбираем добавленное ранее подключение из файла конфигурации .conf и прикрепляем заранее подготовленный bat-файл с маршрутами:

Загрузка списка маршрутов из bat-файла
Загрузка списка маршрутов из bat-файла

После успешной загрузки наши маршруты отобрязятся в таблице. Теперь, когда мы задали маршруты, которые будут использовать наш интерфейс WireGuard, нам необходимо задать дефолтный маршрут для всего остального траффика, который будет просто идти через интерфейс провайдера.

Жмем Добавить маршрут и выбираем тип Маршрут по умолчанию, а интерфейс Подлючение Ethernet (IPoe):

Маршрут по умолчанию
Маршрут по умолчанию

Стоит пояснить, что в маршруте по умолчанию я не указывал адрес шлюза, а моему коллеге понадобился этот адрес. Как выяснилось, тут всё зависит от провайдера и настроек подключения к интернету: в моем случае я ввожу логин и пароль, а вот у коллеги надо ввести кучу параматров для подключения, включая адрес шлюза. Но, кстати, у него со второго раза этот адрес прописался сам (магия) в дефолтном маршруте.

Также, если надо будет добавить в маршруты еще парочку, то не обязательно делать это через bat-файл. Можно также нажать Добавить маршрут , в типе маршрута выбрать До узла или До сети, заполнить адрес и маску, в интерфейсеа также выбрать свое добавленное WireGuard подключение и активировать Добавлять автоматически:

Ручное добавление маршрута
Ручное добавление маршрута

На этом действии инструкция заканчивается. В моем случае всё работает так, как мне нужно: все устройства в сети получили доступ к нужным ресурсам.

P.S. В некоторых статьях еще предлагают добавить свою политику, где меняют местами последовательность подключений, но в моем случае это сломало работу всех приложений на смартфоне. То есть, когда в приоритете инерфейс Wireguard, работают только те ресурсы, к которым прописаны маршруты, а остальное просто не видит подключение к интернету. Так что я удалил свою политику, оставил дефолтную, в которой сначала идет интерфейс провайдера, а после уже добавленный мной интерфейс WireGuard. И в таком конфиге всё работает как надо.

22
Начать дискуссию