Для клиента Outline 1.15.0 или более поздних версий
Это руководство содержит подробные инструкции по реализации Shadowsocks-over-WebSockets – мощного метода обхода цензуры в ситуациях, когда стандартные подключения Shadowsocks блокируются. Инкапсулируя трафик Shadowsocks в WebSockets, вы можете замаскировать его под обычный веб-трафик, повысив устойчивость и доступность соединения.
Шаг 1. Настройте и запустите сервер Outline
Создайте новый файл config.yaml
со следующей конфигурацией:
web:
servers:
- id: server1
listen:
- "127.0.0.1:WEB_SERVER_PORT"
services:
- listeners:
- type: websocket-stream
web_server: server1
path: "/TCP_PATH"
- type: websocket-packet
web_server: server1
path: "/UDP_PATH"
keys:
- id: 1
cipher: chacha20-ietf-poly1305
secret: SHADOWSOCKS_SECRET
Скачайте последнюю версию outline-ss-server
и запустите ее с созданной конфигурацией.
outline-ss-server -config=config.yaml
Шаг 2. Настройте доступ к веб-серверу
Чтобы сделать веб-сервер WebSocket общедоступным, необходимо настроить на нем внешний доступ и включить TLS. Вы можете использовать для этого указанные ниже способы. Можно настроить локальный веб-сервер (например, Caddy, nginx или Apache) с действующим TLS-сертификатом или использовать сервис туннелирования (например, Cloudflare Tunnel или ngrok).
Пример использования TryCloudflare
В этом примере мы покажем, как быстро создать туннель с помощью TryCloudflare. Это удобный и безопасный способ настроить внешний доступ на локальном веб-сервере без необходимости открывать входящие порты.
Скачайте и установите
cloudflared
.Создайте туннель, указав порт вашего локального веб-сервера:
cloudflared tunnel --url http://127.0.0.1:WEB_SERVER_PORT
Cloudflare предоставит субдомен
(например, acids-iceland-davidson-lb.trycloudflare.com
), который позволит подключиться к конечной точке WebSocket и автоматически настроить TLS. Сохраните этот субдомен, так как он понадобится вам позже.
Шаг 3. Создайте динамический ключ доступа
Сгенерируйте YAML-файл с ключами доступа для пользователей, используя указанный в этой статье формат. Включите в файл конечные точки WebSocket, настроенные на сервере.
transport:
$type: tcpudp
tcp:
$type: shadowsocks
endpoint:
$type: websocket
url: wss://DOMAIN/TCP_PATH
cipher: chacha20-ietf-poly1305
secret: SHADOWSOCKS_SECRET
udp:
$type: shadowsocks
endpoint:
$type: websocket
url: wss://DOMAIN/UDP_PATH
cipher: chacha20-ietf-poly1305
secret: SHADOWSOCKS_SECRET
После создания YAML-файла с динамическим ключом доступа его нужно передать пользователям. Вы можете разместить файл на статическом веб-хостинге или настроить динамическую генерацию. Подробнее о том, как использовать динамические ключи доступа…
Шаг 4. Подключитесь к клиенту Outline
Используйте официальное приложение клиента Outline 1.15.0 или более поздних версий и добавьте созданный динамический ключ доступа в список серверов. Нажмите Подключить, чтобы начать туннелирование трафика через сервер с конфигурацией Shadowsocks-over-Websocket.
Чтобы убедиться, что трафик проходит через ваш сервер Outline, воспользуйтесь инструментом IPInfo.