English | Русский
Один исполняемый файл, требующий для работы только стандартный файл конфигурации WireGuard.
-
Прошивка с поддержкой WireGuard.
Например padavan-ng от Алексея, установленная и работающая на роутере -
Возможность выполнять команды на роутере.
Предпочтительнее через SSH, но можно и в веб-интерфейсе роутера.Подробнее
Включите SSH сервер в веб-интерфейсе роутера: Администрирование → Сервисы → Включить SSH-сервер? → Да
Для доступа по SSH используются те же данные, что и для входа в веб-интерфейс.
В Linux, Mac OS и Windows 10+ SSH клиент обычно предустановлен, просто откройте терминал и выполните подключение:
В более старых версиях Windows можно использовать PuTTY, Tabby или другие SSH клиенты.
При установленном SSH клиенте часто можно подключиться, просто перейдя по ссылке
ssh://[email protected]
Вставьте её в адресную строку браузера вручную и нажмите Enter — GitHub не позволяет делать активные ссылки с нестандартными протоколами.
-
Возможность копировать файлы на роутер.
Обычно для этого используется SFTP, он работает на базе SSH.Подробнее
В Windows можно использовать WinSCP, в Mac OS — Cyberduck. В Linux поддержка SFTP обычно встроена в ваш файловый менеджер, загляните в раздел "Сеть" или "Другие места".
Подключиться обычно можно, просто перейдя по ссылке
sftp://[email protected]/etc/storage/
Вставьте её в адресную строку браузера вручную и нажмите Enter — GitHub не позволяет делать активные ссылки с нестандартными протоколами.
Я в основном буду использовать команды во избежание неверной интерпретации, но операции с файлами / папками, конечно, можно также выполнить и через SFTP.
-
Если у вас установлена предыдущая версия клиента Wireguard, состоявшая из нескольких
.sh
файлов, её требуется отключить / удалить. Пока можно просто переместить папку с ним, не удаляя:mv /etc/storage/wireguard /etc/storage/wireguard.bak
-
Создайте папку
wireguard
в/etc/storage
на роутере:mkdir /etc/storage/wireguard
-
Скопируйте в неё файл
client.sh
:wget https://github.com/shvchk/padavan-wireguard-client/raw/main/client.sh -O /etc/storage/wireguard/client.sh
[!WARNING]
Рекомендую проверить скрипт client.sh перед запуском. Это хорошая практика перед запуском любого кода на вашем устройстве, особенно удалённого кода. -
Сделайте его исполняемым:
chmod +x /etc/storage/wireguard/client.sh
-
Скопируйте конфигурацию клиента WireGuard в
/etc/storage/wireguard
Имя файла конфигурации будет использовано в качестве имени интерфейса. Например, для файла
wg0.conf
будет создан интерфейсwg0
.[!IMPORTANT]
Имя должно содержать только латинские буквы, цифры и / или символы_
=
+
.
-
, быть короче 16 символов и заканчиваться на.conf
. В случае наличия нескольких файлов конфигурации, будет использован первый по алфавиту. -
Запустите клиент WireGuard:
/etc/storage/wireguard/client.sh start
-
Проверьте, работает ли интернет на роутере и ваших устройствах:
ping -c 3 -W 1 1.1.1.1
-
В случае проблем, выключите клиент WireGuard:
/etc/storage/wireguard/client.sh stop
-
После того, как вы убедились, что всё хорошо работает, настройте автозапуск:
/etc/storage/wireguard/client.sh autostart enable
-
Сохраните изменения:
mtd_storage.sh save
-
Перезагрузите роутер
/etc/storage/wireguard/client.sh stop
/etc/storage/wireguard/client.sh autostart disable
rm -rf /etc/storage/wireguard
mtd_storage.sh save
Исключения можно добавлить в одном из этих файлов:
-
/etc/storage/started_script.sh
(в веб интерфейсе: Персонализация → Скрипты → Выполнить после полного запуска маршрутизатора) -
/etc/storage/post_iptables_script.sh
(в веб интерфейсе: Персонализация → Скрипты → Выполнить после перезапуска правил брандмауэра)
Сначала добавьте небольшую вспомогательную функцию:
direct() {
ip rule del $1 $2 || :
ip rule add $1 $2 table main pref 30
}
Затем её можно использовать так: direct <to|from> <IP-адрес|подсеть>
. Например:
-
Направить напрямую трафик к IP 9.9.9.9:
direct to 9.9.9.9
-
Направить напрямую трафик к подсети 1.2.0.0/16:
direct to 1.2.0.0/16
-
Направить напрямую трафик от IP 192.168.1.11:
direct from 192.168.1.11
-
Направить напрямую трафик от подсети 10.11.12.0/24:
direct to 10.11.12.0/24
Таких правил можно добавить сколько угодно, по одному на строку.
При редактировании через SSH не забудьте записать изменения в постоянную память:
mtd_storage.sh save