Как завернуть трафик Wireguard через shadowsocks на роутере
Так как есть риск блокировки Wireguard протокола, то рассказываю, как сделать, что бы трафик туннеля шел через shadowsocks
Пример будет для сервера на Ubuntu 22.04 и роутера кинетик, с установленным на нем Entware. Предполагается, что WG уже поднят и настроен. А так же на роутер установлен Entware. Найти инструкцию по установке Entware на свое устройство можно через поисковик или в вики проекта тут. Так же предполагается, что с консолью знакомы и она не пугает, так же как и редактор vi (хотя вместо него можете использовать свой по желанию)
1.1) на сервер, где крутится wg ставим
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> - любой пароль, желательно только что сгенерированный
1.3) Потом выполняем
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)
2.3) правил файл
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. Зато надежно
П.С.: Так же есть проект, где реализована маршрутизация только к определенным ресурсам. То есть роутер использует интернет провайдера, а на определенные сайты (не будем говорить какие) ходит через впн
Лига Сисадминов
1.9K поста18.1K подписчиков
Правила сообщества
Мы здесь рады любым постам связанным с рабочими буднями специалистов нашей сферы деятельности.