Так как есть риск блокировки Wireguard протокола, то рассказываю, как сделать, что бы трафик туннеля шел через shadowsocks
Пример будет для сервера на Ubuntu 22.04 и роутера кинетик, с установленным на нем Entware. Предполагается, что WG уже поднят и настроен. А так же на роутер установлен Entware. Найти инструкцию по установке Entware на свое устройство можно через поисковик или в вики проекта тут. Так же предполагается, что с консолью знакомы и она не пугает, так же как и редактор vi (хотя вместо него можете использовать свой по желанию)
1.1) на сервер, где крутится wg ставим
sudo apt install shadowsocks-libev
1.2) потом редактируем файл
vi /etc/shadowsocks-libev/config.json
{
"server": "0.0.0.0",
"mode":"tcp_and_udp",
"server_port":<server-port>,
"password":"<password>",
"timeout":300,
"method":"chacha20-ietf-poly1305"
}
где <server-port> - это порт который будет слушать сервер ss (пример 8421)
<password> - любой пароль, желательно только что сгенерированный
systemctl restart shadowsocks-libev.service
systemctl status shadowsocks-libev.service
проверяем, что сервер завелся
2.1) Теперь переходим к роутеру.
opkg install shadowsocks-libev-ss-tunnel shadowsocks-libev-config
2.2) теперь редактируем конфиг
vi /opt/etc/shadowsocks.json
{
"server": "<server-ip>",
"mode":"tcp_and_udp",
"server_port":<server-port>,
"local_address": "0.0.0.0",
"local_port":<local-port>,
"password":"<password>",
"timeout":300,
"method":"chacha20-ietf-poly1305",
"tunnel_address": "127.0.0.1:<wireguard-port>"
}
где <server-port> и <password> это те же самые, которые добавили на сервер в пункте 1.2
<server-ip> - ip адрес сервера на котором крутится wireguard и ss
<local-port> - любой свободный порт на роутере, который мы будем указывать в настройках wg соединения (пример 51822)
<wireguard-port> - это порт на котором на сервере крутится wg соединение (пример 51820)
vi /opt/etc/init.d/S22shadowsocks
меняем на строку PROCS=ss-* на PROCS=ss-tunnel
перезапускаем ss на роутере и проверяем, что работает
/opt/etc/init.d/S22shadowsocks restart
/opt/etc/init.d/S22shadowsocks check
3.1) Идем в веб морду роутера, в настройки нужного wg соединения и в пире вместо <server-ip>:<wireguard-port> вставляем 127.0.0.1:<local-port>
Все! соединение должно теперь установиться. В итоге трафик через wg интерфейс будет заворачиваться в ss и идти уже под ним. Так как и ss и wg используют шифрование, то у меня скорость туннеля упала в двое, по сравнению с простым wg без заворачивания в ss. Зато надежно
П.С.: Так же есть проект, где реализована маршрутизация только к определенным ресурсам. То есть роутер использует интернет провайдера, а на определенные сайты (не будем говорить какие) ходит через впн