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

Настройка клиента Outline VPN на OpenWRT (все версии) на базе пакета shadowsocks-libev и tun2socks

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров42K
Всего голосов 9: ↑9 и ↓0+9
Комментарии15

Комментарии 15

Лучше не доверять декодирование строки с паролем сторонним сервисам, а заюзать свою консоль

О каком либо доверии многие даже не ведают, основной критерий для них это удобство.

Согласен с вами абсолютно

Кстати, все пароли в удобоваримом виде хранятся в файле /opt/outline/persisted-state/outline-ss-server/config.yml . Если уж задействовать консоль, можно оттуда вытащить

А кто может подсказать?

Есть у меня Outline сервер, уже 2 года ему. На всех девайсах пользовался клиентом - на десктопе, мобильном. Все работает нормально.

Также в наличии OpenWRT рутоер.Сделал по инструкции из этой статьи, но не работает в полной мере. Не работает DNS. Пинги по айпи самое главное идут, но по доменному имени ни один сайт не доступен. В Outline Manager по роутеровскому клиенту трафик виден, видно что идут пакеты. Я могу конечно в настройках сетевой карты прописать DNSы, но хочется чтобы без костылей работало.

Nslookup что выдаёт? dns сервер пингуется? При отключении shadowsocks всё снова начинает работать? В логах какие-то ошибки есть? Если DNS руками прописываете на компьютере работает? Если проблема только с DNS это должно быть несложно исправить. Shadowsocks работает только с TCP, UDP трафиком, ICMP идёт через ваш шлюз по умолчанию.

Для начала окружение: ОС Windows 11 со всеми обновами, роутер OpenWrt 19.07.6, Outline server 7 месячной давности (не знаю как версию посмотреть) в виде докера контейнера (их 2 - shadowbox и watchtower) с тегом stable. В рутер заходят 2 канала интернета от разных провайдеров с LoadBalancer, DNSы (8.8.8.8 и 1.1.1.1) прописаны в интерфейсах - от провайдера их не получаю

При установленном и включенном shadowsocks на рутере

  1. Nslookup выдает DNS timeout

  2. DNS 8.8.8.8, 1.1.1.1 пингуются

  3. В логах сервера никаких записей об ошибках нет, в рутере в разделе System log такие записи "daemon.err dnsmasq[1975]: failed to send packet: Network unreachable"

  4. При указании DNS в свойствах сетевой карты ситуация, как оказалось, не меняется - всё выше перечисленное

  5. Все приложения связывающиеся по IP со своими удаленными серверами - работают. Например telegram

При выключенном shadowsocks:

1. Все работает

Кстати вот этой настройки по умолчанию нет и в статье о ней ни слова:

config ss_tunnel
        option server 'sss0'
        option local_address '0.0.0.0'
        option mode 'tcp_and_udp'
        option timeout '60'

Пришлось ее вносить руками.

Спасибо за верное замечание, config ss_tunnel это отдельный туннель к заданному узлу, например можно использовать как некоторую альтернативу https-dns-proxy если добавить строки

option local_port '8053' 
option tunnel_address '8.8.8.8:53'

и дописать в dnsmasq настройку 127.0.0.1#8053 то dns запросы к Google DNS будут идти через отдельный туннель shadowsocks. в случае конфига в статье это просто заготовка под туннель которая не используется.

По вашему кейсу, LoadBalancer это mwan3 или что-то другое используете?

Какая политика используется? balanced или резервирование? Я бы попробовал задать статический маршрут для сервера Outline жестко через один из интерфейсов

  1. DNS 8.8.8.8, 1.1.1.1 пингуются ; в случае shadowsocks пинг не самый лучший метод диагностики, т.к. ICMP пакеты через shadowsocks не идут.

  2. В логах сервера никаких записей об ошибках нет, в рутере в разделе System log такие записи "daemon.err dnsmasq[1975]: failed to send packet: Network unreachable" ; Здесь похоже что по какой-то причине udp трафик не достигает DNS сервера, я бы начал с проблем маршрутов. Боюсь что проблема может быть в Load Balancer, надо бы её исключить.

  3. Все приложения связывающиеся по IP со своими удаленными серверами - работают. Например telegram ; Идёт ли трафик в телеграм через shadowsocks или в обход? Есть ли у вас возможность это проверить? Посмотреть в логах telegram с какого IP произведен вход например. По описанию у меня создаётся ощущение что не работает сам shadowsocks из-за того что в mwan3 по умолчанию режим sticky назначен только для TCP трафика на 443 порту, а весь остальной трафик в случае балансирования будет идти с двух интерфейсов, а для туннеля один и тот же интерфейс может быть нужен.

Всё что я написал это к сожалению только догадки, если нужна более предметная помощь можете обратиться и в личку, возможно смогу чем-то помочь.

Можно так же попробовать использовать туннель для DNS как я описал выше, но это будет работать только если shadowsocks работает и проблема в настройках DNS что маловероятно

Кстати, увидел ваш апдейт насчет daemon.err /usr/bin/ss-redir[1016]: accept: No file descriptors available. У меня тоже в логах они появляются после включения shadowsocketsю Этих логов очень много

Версия 19.07

Все сделал по инструкции, работать не хочет. Может еще какие настройки необходимы?

В логах есть какие-то ошибки? Служба shadowsocks запускается? Интернет перестаёт работать или трафик не перенаправляется в Outline?

Все запустилось! Учетки быстропомирающие окзались. Вопрос остается по DNSу.

По ДНСу можете описать что именно происходит? Nslookup что выдаёт? Пингуется ли DNS? DNS серверы прописаны на интерфейсах или получаете по DHCP от провайдера?

Я прошу прощения, но не могу найти "службы" , версия 22.03. Что в английском интерфейсе (local instances -верно?) что в русском. Вот этот пункт инструкции " Переходим в раздел Службы - Shadowsocks-libev" .

В английском варианте службы именуются Services, local instances это уже внутри shadowsocks. Чтобы настраивать shadowsocks в Luci, убедитесь что установили пакет luci-app-shadowsocks-libev

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории