-
Notifications
You must be signed in to change notification settings - Fork 21
Использование бесплатных Shadowsocks прокси проекта Outline
Сервис 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
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