Shadowsocks-over-WebSockets

Outline istemcisi (1.15.0+ sürümleri)

Bu eğitimde, normal Shadowsocks bağlantılarının engellendiği ortamlarda sansürü aşmak için güçlü bir teknik olan Shadowsocks-over-WebSockets'i uygulamanıza yardımcı olacak ayrıntılı bilgiler paylaşılmıştır. Shadowsocks trafiğini WebSockets içinde kapsülleyerek standart web trafiği olarak gizleyebilir, esnekliği ve erişilebilirliği artırabilirsiniz.

1. adım: Outline sunucusu yapılandırın ve çalıştırın

Aşağıdaki yapılandırmayı kullanarak yeni bir config.yaml dosyası oluşturun:

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

En yeni outline-ss-server'ı indirin ve oluşturulan yapılandırmayı kullanarak çalıştırın.

outline-ss-server -config=config.yaml

2. adım: Web sunucusunu internete açın

WebSocket web sunucunuza herkesin erişebilmesi için internete açmanız ve TLS'yi yapılandırmanız gerekir. Bu işlem için birkaç seçeneğiniz vardır. Caddy, nginx veya Apache gibi yerel bir web sunucusu kullanabilir ve geçerli bir TLS sertifikasına sahip olduğundan emin olabilirsiniz. Dilerseniz Cloudflare Tunnel ya da ngrok gibi bir tünel oluşturma hizmeti kullanabilirsiniz.

TryCloudflare kullanılan örnek

Bu örnekte, hızlıca bir tünel oluşturmak için TryCloudflare kullanacağız. Bu sayede, gelen bağlantı noktalarını açmadan yerel web sunucunuzu internete açmak için uygun ve güvenli bir yöntemden yararlanabilirsiniz.

  1. cloudflared'i indirip yükleyin.

  2. Yerel web sunucusu bağlantı noktanıza yönlendiren bir tünel oluşturun:

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

Cloudflare, WebSocket uç noktanıza erişmek ve TLS'yi otomatik olarak işlemek için bir alt alan adı acids-iceland-davidson-lb.trycloudflare.com) sağlar. Daha sonra ihtiyaç duyacağınız için bu alt alan adını not edin.

3. adım: Dinamik erişim anahtarı oluşturun

Erişim anahtarı yapılandırması biçimini kullanarak kullanıcılarınız için istemci erişim anahtarını içeren bir YAML dosyası oluşturun ve sunucu tarafında önceden yapılandırılmış WebSocket uç noktalarını ekleyin:

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

Dinamik erişim anahtarlarını içeren YAML dosyasını oluşturduktan sonra bu dosyayı kullanıcılarınıza iletmeniz gerekir. Dosyayı statik bir web barındırma hizmetinde barındırabilir veya dinamik olarak oluşturabilirsiniz. Dinamik erişim anahtarlarını kullanma hakkında daha fazla bilgi edinin.

4. adım: Outline istemcisine bağlanın

Resmi Outline istemcisi uygulamalarından birini kullanın (1.15.0+ sürümleri) ve yeni oluşturduğunuz dinamik erişim anahtarını sunucu girişi olarak ekleyin. Shadowsocks-over-Websocket yapılandırmasını kullanarak sunucunuza tünel oluşturmak için Bağlan'ı tıklayın.

Şu anda Outline sunucunuz üzerinden internette gezindiğinizi doğrulamak için IPInfo gibi bir araç kullanın.