❗️Сразу скажу, что это решение не для обхода блокировок и замедлений, а для доступа к закрытым сетям. Не надо писать о том, что WG блокируют провайдеры. Внутри РФ у меня нет с этим проблем. Во время написания заметки пробовал подключаться и через смартфон, и через проводной интернет дома и на работе. У меня не возникает проблем с подключением ни по WG, ни по OVPN. Я пользуюсь ими постоянно во время работы. Иногда бывают проблемы на мобильном интернете, но так было всегда, а не только последнее время.
Оформил всё это дело в короткую заметку, по которой простым копированием команд можно быстро настроить свой сервер и запустить в работу. Настраивать буду, как обычно, на Debian 12.
Устанавливаем необходимые пакеты:
# apt install wireguard iptablesСразу разрешим пересылку пакетов между сетевыми интерфейсами. Иногда забываю это сделать, а потом долго разбираюсь, почему ничего не работает.
# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf# sysctl -pСкачиваем wireguard-ui в ту же директорию, где живут настройки службы WG:
# cd /etc/wireguard# wget https://github.com/ngoduykhanh/wireguard-ui/releases/download/v0.6.2/wireguard-ui-v0.6.2-linux-amd64.tar.gz# tar -xzvf wireguard-ui-v0.6.2-linux-amd64.tar.gzЗапускаем wireguard-ui, ждём несколько секунд, чтобы она создала конфигурацию для службы:
# ./wireguard-uiОстанавливаем wireguard-ui. Нажимаем в консоли
Ctrl+C. Сразу добавим необходимые параметры в /etc/wireguard/wg0.conf:PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;PostDown = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;Запускаем службу WireGuard:
# systemctl enable --now wg-quick@wg0.serviceПроверяем, что интерфейс wg0 поднялся и правила iptables добавились:
# ip a | grep wg# iptables -L -v -n -t nat | grep MASQUERADEВеб-панель умеет вносить изменения в настройки WG, но не умеет перезапускать службу. Воспользуемся возможностями SystemD.Path для автоматического перезапуска туннеля после изменения файла конфигурации. Создаём файл /etc/systemd/system/wgui.path:
[Unit]Description=Watch /etc/wireguard/wg0.conf for changes[Path]PathModified=/etc/wireguard/wg0.conf[Install]WantedBy=multi-user.targetИ саму службу /etc/systemd/system/wgui.service:
[Unit]Description=Restart WireGuardAfter=network.target[Service]Type=oneshotExecStart=/usr/bin/systemctl restart wg-quick@wg0.service[Install]RequiredBy=wgui.pathЗапускаем их:
# systemctl enable wgui.{path,service}# systemctl start wgui.{path,service}Сделаем отдельный юнит для автозапуска wireguard-ui после старта машины /etc/systemd/system/wireguard-ui.service:
[Unit]Description=WireGuard UI ServiceAfter=network.target[Service]Type=simpleUser=rootWorkingDirectory=/etc/wireguardExecStart=/etc/wireguard/wireguard-uiRestart=on-failure[Install]WantedBy=multi-user.targetЗапускаем и добавляем в автозапуск одновременно:
# systemctl enable --now wireguard-ui.serviceИдём в веб интерфейс по IP адресу сервера на порт 5000. Учётка по умолчанию - admin / admin. Базовые настройки сервера мы уже сделали. Можно добавлять пользователей и подключаться. При необходимости можно изменить настройки сервера. Не забудьте изменить учётную запись администратора.
⇨ 🌐 Исходники
📌Полезные материалы на тему использования WG:
◽️Wireproxy - socks5/http прокси на базе WG
◽️TunnlTo - управление маршрутами в туннели WG на основе приложений
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#wireguard #vpn



