Outline-Client v1.15.0+
Dieses Tutorial bietet eine Schritt-für-Schritt-Anleitung zur Implementierung von Shadowsocks-over-WebSockets, ein effektives Verfahren zur Umgehung von Zensuren in Umgebungen, in denen reguläre Shadowsocks-Verbindungen blockiert werden. Durch die Kapselung des Shadowsocks-Traffics in WebSockets können Sie ihn als Standard-Web-Traffic tarnen – für höhere Ausfallsicherheit und Zugänglichkeit.
Schritt 1: Outline-Server konfigurieren und ausführen
Erstellen Sie eine neue config.yaml
-Datei mit der folgenden Konfiguration:
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
Laden Sie den neuesten outline-ss-server
herunter und führen Sie ihn mit der erstellten Konfiguration aus:
outline-ss-server -config=config.yaml
Schritt 2: Webserver freigeben
Um Ihren WebSocket-Webserver öffentlich zugänglich zu machen, müssen Sie ihn im Internet freigeben und TLS konfigurieren. Hierfür gibt es mehrere Optionen. Sie können einen lokalen Webserver wie Caddy, nginx oder Apache verwenden und sicherstellen, dass dieser ein gültiges TLS-Zertifikat hat. Oder Sie verwenden einen Tunneling-Dienst wie Cloudflare Tunnel oder ngrok.
Beispiel mit TryCloudflare
In diesem Beispiel erstellen wir mit TryCloudflare schnell einen Tunnel. So können Sie Ihren lokalen Webserver einfach und sicher freigeben, ohne Eingangs-Ports zu öffnen.
Laden Sie
cloudflared
herunter und führen Sie die Installation durch.Erstellen Sie einen Tunnel, der auf den Port Ihres lokalen Webservers zeigt:
cloudflared tunnel --url http://127.0.0.1:WEB_SERVER_PORT
Cloudflare stellt eine Subdomain (z. B. acids-iceland-davidson-lb.trycloudflare.com
) für den Zugriff auf Ihren WebSocket-Endpunkt und die automatische Handhabung von TLS bereit. Notieren Sie sich die Subdomain. Sie benötigen sie später.
Schritt 3: Dynamischen Zugriffsschlüssel erstellen
Generieren Sie eine YAML-Datei mit dem Client-Zugriffsschlüssel für die Nutzer. Verwenden Sie dazu das Format für die Zugriffsschlüssel-Konfiguration und die WebSocket-Endpunkte, die Sie zuvor auf Serverseite konfiguriert haben:
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
Nachdem Sie die YAML-Datei mit dem dynamischen Zugriffsschlüssel erstellt haben, müssen Sie diese Ihren Nutzern zukommen lassen. Sie können die Datei auf einem statischen Webhosting-Dienst hosten oder dynamisch generieren. Weitere Informationen zur Verwendung von dynamischen Zugriffsschlüsseln
Schritt 4: Mit dem Outline-Client verbinden
Fügen Sie in einer der offiziellen Outline-Client-Anwendungen (ab Version 1.15.0) den gerade erstellten dynamischen Zugriffsschlüssel für den Server hinzu. Klicken Sie auf Verbinden, um mit der Shadowsocks-over-Websocket-Konfiguration eine Tunnelverbindung zu Ihrem Server herzustellen.
Vergewissern Sie sich mit einem Tool wie IPInfo, dass Sie über Ihren Outline-Server mit dem Internet verbunden sind.