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

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

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

П.С.: Так же есть проект, где реализована маршрутизация только к определенным ресурсам. То есть роутер использует интернет провайдера, а на определенные сайты (не будем говорить какие) ходит через впн

Компьютерный мастер. Часть 274. Когда переехал в страну совсем третьего мира и нужно минимум три роутера)))

Пишет клиент уехавший на ПМЖ из России в Азию, спрашивает как объединить два интернета в один:

У меня первая мысль, а нафига, оба же роутера PON на оптоволокне, по гигабиту гнать могут, какая же это страна третьего мира... А потом всплывает нюанс, максимальная скорость что даёт каждый провайдер 3мбит\сек, я даже два раза у него переспросил не 30? оказалось на самом деле 3мбит и ещё не стабильно:

Естественно есть решения для объеденения нескольких провайдеров в один например DUAL WAN на ASUS, это роутер в который можно вставить сразу два интернета и он будет между ними распределять нагрузку... большинство современных роутеров ASUS поддерживают Dual WAN, но есть нюансы ASUS не умеет суммировать нагрузку и предлагает всего два варианта Dual WAN:

1.Режим Failover и Failback:

Чтобы обеспечить бесперебойное подключение к Интернету, система будет автоматически определять состояние вашей сети, периодически отправляя DNS-запросы на DNS-сервер или отправляя эхо-запрос на шлюз по умолчанию или на указанный вами адрес. Если в вашем текущем подключении WAN произошла ошибка, ваш роутер переключится на вторую сеть, что позволит Интернет соединению продолжать свою работу без перебоя и прерываний, а как только оживет основной WAN он переключит вас обратно.

2.Режим Load Balance:

При включении режима балансировки нагрузки вы можете распределить нагрузку между первичной и вторичной WAN сетью. В этом режиме вы также можете настроить конкретное устройство на использование первичной или вторичной WAN сети. Например, вы можете настроить подключение игровой консоли к локальной сети для использования основного WAN, а смартфон для использования вторичного WAN. Кроме того, вы получаете больше возможностей для маршрутизации запросов через первичную или вторичную WAN сеть.

Т .Е. по факту ASUS не сможет сложить обе скорости интернета для одного устройства

И тут клиент пошел в разнос и говорит, а давай ещё модем 3G воткнём, пусть три сети роутер суммирует и тут я уже задумался, а кто такое может из массового сегмента:

Оказалось все роутеры Keenetic белого цвета с прошивкой версии выше 3.9 поддерживают работу с несколькими одновременными подключениями (такую схему обычно называют Multi-WAN) , интеллектуальную балансировку и возможность создания новой политики многопутевой передачи... это как раз то что нам надо чтобы суммировать скорость и трафик, правда тоже есть нюанс эффективно суммироваться трафик будет только при использовании torrent-трафика, P2P или других протоколов, которые открывают множество соединений не требующих сохранения адреса источника. А вот для соединений типа "точка — точка" или "один к одному" балансировка не будет работать корректно, ведь большинство хостов отбросит пакеты одной сессии, если они придут с разных IP-адресов. Например, интернет-сайт или веб-сервис, работающий по протоколу https.

Полагаю пост может быть полезен жителям сельской местности, где до сих пор одновременно существует стабильный ADSL с его ограничения максимальной скорости в 10-20мбит и быстрый, но нестабильный 3G\4G интернет.

P.S. Интересно послушать ваши идеи, какие ещё роутеры позволяют суммировать трафик сразу из трёх источников, но именно суммировать, повышая общую скорость работы, наиболее интересными идеями дополню пост.

Рекомендуем
@v97
@plat
Тренды

Fastler - информационно-развлекательное сообщество которое объединяет людей с различными интересами. Пользователи выкладывают свои посты и лучшие из них попадают в горячее.

Контакты

© Fastler v 2.0.2, 2024


Мы в социальных сетях: