Shadowsocks-over-WebSockets

Outline Client का वर्शन 1.15.0 या इसके बाद का वर्शन.

इस ट्यूटोरियल में, WebSockets पर Shadowsocks को लागू करने के बारे में पूरी जानकारी दी गई है. यह एक ऐसी बेहतरीन तकनीक है जिसकी मदद से, उन जगहों पर सेंसरशिप को बायपास किया जा सकता है जहां Shadowsocks के सामान्य कनेक्शन ब्लॉक किए गए हैं. WebSockets में Shadowsocks ट्रैफ़िक को कवर करके, उसे स्टैंडर्ड वेब ट्रैफ़िक के तौर पर दिखाया जा सकता है. इससे, ट्रैफ़िक को आसानी से ऐक्सेस किया जा सकता है और उसे सुरक्षित रखा जा सकता है.

पहला चरण: 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

दूसरा चरण: वेब सर्वर को एक्सपोज़ करना

अपने WebSocket वेब सर्वर को सार्वजनिक तौर पर ऐक्सेस करने के लिए, आपको उसे इंटरनेट पर उपलब्ध कराना होगा और TLS को कॉन्फ़िगर करना होगा. ऐसा करने के लिए, आपके पास कई विकल्प हैं. Caddy, nginx या Apache जैसे किसी लोकल वेब सर्वर का इस्तेमाल किया जा सकता है. हालांकि, यह पक्का करना ज़रूरी है कि आपके पास मान्य TLS सर्टिफ़िकेट हो. इसके अलावा, Cloudflare Tunnel या ngrok जैसी टनल करने की सेवा का इस्तेमाल भी किया जा सकता है.

TryCloudflare का इस्तेमाल करने का उदाहरण

इस उदाहरण में, हम तुरंत टनल बनाने के लिए, TryCloudflare का इस्तेमाल करने का तरीका बताएंगे. इससे, इनबाउंड पोर्ट खोले बिना अपने स्थानीय वेब सर्वर को एक्सपोज़ करने का आसान और सुरक्षित तरीका मिलता है.

  1. cloudflared डाउनलोड और इंस्टॉल करें.

  2. अपने लोकल वेब सर्वर पोर्ट पर ले जाने वाला टनल बनाएं:

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

Cloudflare आपको एक सबडोमेन देगा (उदाहरण के लिए, acids-iceland-davidson-lb.trycloudflare.com) का इस्तेमाल करके, अपने WebSocket एंडपॉइंट को ऐक्सेस करें और TLS को अपने-आप मैनेज करें. इस सबडोमेन को नोट कर लें, क्योंकि आपको इसकी ज़रूरत बाद में पड़ेगी.

तीसरा चरण: डाइनैमिक ऐक्सेस पासकोड बनाना

ऐक्सेस पासकोड कॉन्फ़िगरेशन फ़ॉर्मैट का इस्तेमाल करके, अपने उपयोगकर्ताओं के लिए क्लाइंट ऐक्सेस पासकोड वाली YAML फ़ाइल जनरेट करें. साथ ही, सर्वर साइड पर पहले से कॉन्फ़िगर किए गए वेबसोकेट एंडपॉइंट शामिल करें:

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 फ़ाइल जनरेट करने के बाद, आपको इसे अपने उपयोगकर्ताओं को भेजना होगा. फ़ाइल को स्टैटिक वेब होस्टिंग सेवा पर होस्ट किया जा सकता है या डाइनैमिक तौर पर जनरेट किया जा सकता है. डाइनैमिक ऐक्सेस की इस्तेमाल करने के तरीके के बारे में ज़्यादा जानें.

चौथा चरण: Outline क्लाइंट से कनेक्ट करना

Outline Client के किसी आधिकारिक ऐप्लिकेशन (1.15.0 और उसके बाद के वर्शन) का इस्तेमाल करें और अपनी नई बनाई गई डाइनैमिक ऐक्सेस कुंजी को सर्वर एंट्री के तौर पर जोड़ें. Shadowsocks-over-Websocket कॉन्फ़िगरेशन का इस्तेमाल करके, अपने सर्वर पर टनल बनाने के लिए, कनेक्ट करें पर क्लिक करें.

IPInfo जैसे टूल का इस्तेमाल करके पुष्टि करें कि अब इंटरनेट को अपने Outline सर्वर से ब्राउज़ किया जा रहा है.