Skip to content

Использование бесплатных Shadowsocks прокси проекта Outline

gSpot edited this page Nov 2, 2024 · 6 revisions

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

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

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:

opkg install luci-app-shadowsocks-libev

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

opkg update
wget --no-check-certificate -O /tmp/ss_checker_1.1.0-1_all.ipk https://github.com/gSpotx2f/packages-openwrt/raw/master/current/ss_checker_1.1.0-1_all.ipk
opkg install /tmp/ss_checker_1.1.0-1_all.ipk
rm /tmp/ss_checker_1.1.0-1_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