Как стать автором
Обновить

Как завернуть трафик Wireguard через shadowsocks на роутере

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров47K

Так как есть риск блокировки Wireguard протокола, то рассказываю, как сделать, что бы трафик туннеля шел через shadowsocks.

Пример будет для сервера на Ubuntu 22.04 и роутера кинетик, с установленным на нем Entware. Предполагается, что WG уже поднят и настроен. А также на роутер установлен Entware.

Итак:

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}- любой пароль, желательно только что сгенерированный

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. Зато надежно.

П.С.: Схема работы

Теги:
Хабы:
Всего голосов 18: ↑18 и ↓0+18
Комментарии17

Публикации

Истории

Ближайшие события

27 марта
Deckhouse Conf 2025
Москва
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань