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.
-
Pobierz i zainstaluj
cloudflared. -
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.