Przejdź do głównej zawartości

Shadowsocks-over-WebSockets

Klient Outline – wersja 1.15.0+

W tym przewodniku znajdziesz szczegółowe instrukcje, które pomogą Ci wdrożyć Shadowsocks-over-WebSockets, silną metodę omijania cenzury w środowiskach, w których blokowane są standardowe połączenia Shadowsocks. Hermetyzując ruch Shadowsocks wewnątrz WebSockets, możesz upozorować, że jest to standardowy ruch internetowy, zwiększając dzięki temu odporność i dostępność.

Krok 1. Skonfiguruj i uruchom serwer Outline

Utwórz nowy plik config.yaml o następującej konfiguracji:

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>

Pobierz najnowszy outline-ss-server i uruchom go za pomocą utworzonej konfiguracji.

outline-ss-server -config=config.yaml

Krok 2. Udostępnij serwer WWW

Aby Twój serwer WWW WebSocket stał się dostępny publicznie, musisz udostępnić go w internecie i skonfigurować protokół TLS. Możesz to zrobić na kilka sposobów. Możesz wykorzystać lokalny serwer WWW, taki jak Caddy, nginx lub Apache, pod warunkiem, że ma odpowiedni certyfikat TLS, lub skorzystać z usługi tunelowania, takiej jak Cloudflare Tunnel lub ngrok.

Przykład z wykorzystaniem TryCloudflare

W tym przykładzie pokażemy, jak za pomocą TryCloudflare utworzyć szybki tunel. To wygodny i bezpieczny sposób na udostępnienie lokalnego serwera WWW bez konieczności otwierania portów przychodzących.

  1. Pobierz i zainstaluj cloudflared.

  2. Utwórz tunel skierowany na port Twojego lokalnego serwera WWW:

cloudflared tunnel --url http://127.0.0.1:<WEB_SERVER_PORT>

Cloudflare stworzy subdomenę (np. acids-iceland-davidson-lb.trycloudflare.com) zapewniającą dostęp do punktu końcowego WebSocket i automatycznie zajmie się protokołem TLS. Pamiętaj o tej subdomenie, ponieważ będzie Ci ona potrzebna później.

Krok 3. Utwórz dynamiczny klucz dostępu

Wygeneruj plik YAML z kluczem dostępu klienta dla użytkowników korzystających z formatu konfiguracji klucza dostępu i uwzględnij punkty końcowe WebSocket skonfigurowane wcześniej po stronie serwera:

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>

Po wygenerowaniu pliku YAML z dynamicznym kluczem dostępu musisz dostarczyć go swoim użytkownikom. Możesz hostować plik na statycznym hostingu WWW lub generować go dynamicznie. Dowiedz się więcej o dynamicznych kluczach dostępu.

Krok 4. Połącz się z klientem Outline

Skorzystaj z jednej z oficjalnych aplikacji klienta Outline (wersja 1.15.0 i nowsze) i dodaj swój nowo utworzony klucz dostępu jako wpis serwera. Kliknij Połącz, aby rozpocząć tunelowanie do swojego serwera za pomocą konfiguracji Shadowsocks-over-Websocket.

Skorzystaj z narzędzia, takiego jak IPInfo, aby potwierdzić, że przeglądasz internet za pomocą swojego serwera Outline.