9
Использование бесплатных Shadowsocks прокси проекта Outline
gSpot edited this page 2025-12-25 04:21:20 +03:00
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Сервис Outline даёт возможность использовать бесплатные прокси-серверы Shadowsocks. В OpenWrt можно настроить обход блокировок с помощью shadowsocks-libev и ruantiblock (в конфигурации прозрачного прокси). Это неплохой вариант в ситуации когда необходим обход блокировок, но нет возможности (или желания) оплачивать подписку на VPN-сервис или поднимать собственный сервер на зарубежном хостинге. Также, это хорошая альтернатива использованию Tor в качестве прокси. Представленная далее инструкция предлагает применение утилиты ss_checker для декодирования параметров сервера из URL-ключа, а также для проверки доступности самого прокси-сервера Shadowsocks.

1. Установка shadowsocks-libev:

OpenWrt >= 25.12:

apk add shadowsocks-libev-ss-local shadowsocks-libev-ss-redir shadowsocks-libev-ss-rules shadowsocks-libev-ss-tunnel shadowsocks-libev-config

OpenWrt <= 24.10:

opkg install shadowsocks-libev-ss-local shadowsocks-libev-ss-redir shadowsocks-libev-ss-rules shadowsocks-libev-ss-tunnel shadowsocks-libev-config

2. Установка приложения для web-интерфейса luci-app-shadowsocks-libev:

OpenWrt >= 25.12:

apk add luci-app-shadowsocks-libev

OpenWrt <= 24.10:

opkg install luci-app-shadowsocks-libev

3. Установка ss_checker:

OpenWrt >= 25.12:

apk update
wget --no-check-certificate -O /tmp/ss_checker-1.1.0-r1.apk https://github.com/gSpotx2f/packages-openwrt/raw/master/25.12/ss_checker-1.1.0-r1.apk
apk --allow-untrusted add /tmp/ss_checker-1.1.0-r1.apk
rm /tmp/ss_checker-1.1.0-r1.apk

OpenWrt <= 24.10:

opkg update
wget --no-check-certificate -O /tmp/ss_checker_1.1.0-r1_all.ipk https://github.com/gSpotx2f/packages-openwrt/raw/master/24.10/ss_checker_1.1.0-r1_all.ipk
opkg install /tmp/ss_checker_1.1.0-r1_all.ipk
rm /tmp/ss_checker_1.1.0-r1_all.ipk

4. Выбор сервера Outline:

На странице https://outline.network/servers/ нужно выбрать страну, далее выбрать сервер (Access key). На странице сервера скопировать URL-ключ (Outline Access key) вида ss://....

5. Автоматическая настройка shadowsocks-libev с помощью скрипта ss_set_server.sh:

Даже если на сайте Outline сервер помечен как стабильный (stable), в реальности он может быть недоступен. Поэтому его необходимо проверить. Для этого удобно использовать ss_checker, передав аргументом URL-ключ Shadowsocks сервера (ss://...) (в кавычках ""!):

ss_checker "ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTpDb2VhZzVGcmlobXhCVWwxVVo0aG0x@ak1834.www.outline.network.fr8678825324247b8176d59f83c30bd94d23d2e3ac5cd4a743bkwqeikvdyufr.cyou:443#www.outline.network%20(NL)"

В выводе утилиты будет информация о проверке доступности сервера (OK или FAILED), а также декодированные параметры сервера для клиента Shadowsocks. Их нужно использовать при создании нового удалённого сервера на странице службы Shadowsocks-libev в веб-интерфейсе LuCI, либо при настройке через UCI (в консоли).

Для автоматизации настройки в пакете ss_checker есть скрипт ss_set_server.sh, который выполнит настройку shadowsocks-libev для указанного вами сервера. Скрипт сначала вызывает ss_checker для проверки сервера, и если он доступен, выполняет настройку через UCI и после перезапускает службу shadowsocks-libev. Запуск:

ss_set_server.sh "ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTpDb2VhZzVGcmlobXhCVWwxVVo0aG0x@ak1834.www.outline.network.fr8678825324247b8176d59f83c30bd94d23d2e3ac5cd4a743bkwqeikvdyufr.cyou:443#www.outline.network%20(NL)"

6. Настройка ruantiblock, конфигурация прозрачного прокси:

uci set ruantiblock.config.proxy_mode="3"
uci set ruantiblock.config.t_proxy_type="0"
uci set ruantiblock.config.t_proxy_port_tcp="1100"
uci commit ruantiblock
/etc/init.d/ruantiblock restart

Дополнительно. Ручная настройка shadowsocks-libev через UCI:

1.1 Добавление сервера вручную (с известными заранее параметрами):

uci set shadowsocks-libev.current="server"
uci set shadowsocks-libev.current.server="<server>"
uci set shadowsocks-libev.current.server_port="<server_port>"
uci set shadowsocks-libev.current.method="<method>"
uci set shadowsocks-libev.current.password="<password>"

где значения в <...> необходимо заменить параметрами вашего Shadowsocks сервера.

1.2 Добавление сервера с помощью ss_checker (из URL-ключа с декодированием параметров и проверкой доступности сервера):

eval `ss_checker "ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTpDb2VhZzVGcmlobXhCVWwxVVo0aG0x@ak1834.www.outline.network.fr8678825324247b8176d59f83c30bd94d23d2e3ac5cd4a743bkwqeikvdyufr.cyou:443#www.outline.network%20(NL)" | awk -F ":\t*" '{if(NR < 3) next; printf $1 "=" $2 ";"}'`
uci batch << EOI
set shadowsocks-libev.current="server"
set shadowsocks-libev.current.server="$server"
set shadowsocks-libev.current.server_port="$server_port"
set shadowsocks-libev.current.method="$method"
set shadowsocks-libev.current.password="$password"
EOI

где URL-ключ (ss://...), передаваемый аргументом ss_checker, нужно заменить на свой.

2. Привязка сервера к ss-redir (к экземпляру ss_redir.hi):

uci batch << EOI
set shadowsocks-libev.hi.local_address="0.0.0.0"
set shadowsocks-libev.hi.local_port="1100"
set shadowsocks-libev.hi.server="current"
set shadowsocks-libev.hi.disabled="0"
EOI

3. Применение конфигурации и перезапуск shadowsocks-libev:

uci set shadowsocks-libev.ss_rules.disabled="1"
uci commit shadowsocks-libev
/etc/init.d/shadowsocks-libev restart
/etc/init.d/shadowsocks-libev enable