Caddy की मदद से, एचटीटीपीएस के अपने-आप अपग्रेड होने की सुविधा

इस गाइड में, अपने Outline सर्वर सेटअप को बेहतर बनाने के लिए, Caddy के इस्तेमाल का तरीका बताया गया है. यह एक बेहतर और उपयोगकर्ता के हिसाब से बनाया गया वेब सर्वर है. Caddy की अपने-आप एचटीटीपीएस चालू होने की सुविधाओं और आसानी से कॉन्फ़िगर किए जा सकने की वजह से, यह आपके Outline सर्वर को होस्ट करने के लिए एक बेहतरीन विकल्प है. खास तौर पर, WebSocket ट्रांसपोर्ट का इस्तेमाल करते समय.

Caddy क्या है?

Caddy एक ओपन-सोर्स वेब सर्वर है. इसे इस्तेमाल करना आसान है. साथ ही, यह अपने-आप एचटीटीपीएस मोड चालू करता है और कई प्रोटोकॉल के साथ काम करता है. इससे वेब सर्वर को कॉन्फ़िगर करना आसान हो जाता है. साथ ही, ये सुविधाएं भी मिलती हैं:

  • अपने-आप चालू होने वाला एचटीटीपीएस: Caddy, टीएलएस सर्टिफ़िकेट अपने-आप हासिल और रिन्यू करता है. इससे, सुरक्षित कनेक्शन की पुष्टि होती है.
  • एचटीटीपी/3 के साथ काम करना: Caddy, वेब ट्रैफ़िक को तेज़ और ज़्यादा असरदार बनाने के लिए, नए एचटीटीपी/3 प्रोटोकॉल के साथ काम करता है.
  • प्लग इन की मदद से बढ़ाया जा सकता है: Caddy को प्लग इन की मदद से बढ़ाया जा सकता है, ताकि रिवर्स प्रोक्सी और लोड बैलेंसिंग जैसी कई सुविधाओं का इस्तेमाल किया जा सके.

पहला चरण: ज़रूरी शर्तें

  • xcaddy डाउनलोड और इंस्टॉल करना

दूसरा चरण: अपना डोमेन कॉन्फ़िगर करना

Caddy को शुरू करने से पहले, पक्का करें कि आपका डोमेन नेम, आपके सर्वर के आईपी पते पर ले जाने के लिए सही तरीके से कॉन्फ़िगर किया गया हो.

  • A/AAAA रिकॉर्ड सेट करना: डीएनएस प्रोवाइडर में साइन इन करें और अपने डोमेन के लिए A और AAAA रिकॉर्ड सेट करें, ताकि वे आपके सर्वर के IPv4 और IPv6 पतों पर ले जाएं.
  • डीएनएस रिकॉर्ड की पुष्टि करना: पुष्टि करें कि आपके डीएनएस रिकॉर्ड, आधिकारिक लुकअप की मदद से सही तरीके से सेट किए गए हैं:

    curl "https://cloudflare-dns.com/dns-query?name=DOMAIN_NAME&type=A" \
      -H "accept: application/dns-json"
    

तीसरा चरण: कस्टम कैडी बिल्ड बनाना और चलाना

xcaddy का इस्तेमाल करके, कस्टम caddy बाइनरी बनाई जा सकती है. इसमें Outline का मुख्य सर्वर मॉड्यूल और ज़रूरी सर्वर एक्सटेंशन मॉड्यूल शामिल होते हैं.

xcaddy build \
  # The example uses a YAML config, so include a YAML config adapter module.
  --with github.com/iamd3vil/caddy_yaml_adapter \
  # The Outline core server module.
  --with github.com/Jigsaw-Code/outline-ss-server/outlinecaddy

चौथा चरण: Outline की मदद से Caddy सर्वर को कॉन्फ़िगर और चलाना

इस कॉन्फ़िगरेशन के साथ नई config.yaml फ़ाइल बनाएं:

apps:
  http:
    servers:
      server1:
        listen:
          - ":443"
        routes:
          - match:
            - host:
              - 'DOMAIN_NAME'
            - path:
              - "/TCP_PATH"
            handle:
            - handler: websocket2layer4
              type: stream
              connection_handler: ss1
          - match:
            - host:
              - 'DOMAIN_NAME'
            - path:
              - "/UDP_PATH"
            handle:
              - handler: websocket2layer4
                type: packet
                connection_handler: ss1
  outline:
    shadowsocks:
      replay_history: 10000
    connection_handlers:
      - name: ss1
        handle:
          handler: shadowsocks
          keys:
            - id: user-1
              cipher: chacha20-ietf-poly1305
              secret: SHADOWSOCKS_SECRET

यह कॉन्फ़िगरेशन, WebSockets पर Shadowsocks की रणनीति दिखाता है. इसमें पोर्ट 443 पर सुनने वाले वेब सर्वर के साथ-साथ, TCP_PATH और UDP_PATH पाथ पर, टीसीपी और यूडीपी Shadowsocks के रैप किए गए ट्रैफ़िक को स्वीकार किया जाता है.

बनाए गए कॉन्फ़िगरेशन का इस्तेमाल करके, Outline के साथ एक्सटेंड किया गया Caddy सर्वर चलाएं:

caddy run --config config.yaml --adapter yaml --watch

कॉन्फ़िगरेशन के ज़्यादा उदाहरण देखने के लिए, outline-ss-server/outlinecaddy GitHub रिपॉज़िटरी पर जाएं.

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

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

transport:
  $type: tcpudp

  tcp:
    $type: shadowsocks

    endpoint:
      $type: websocket
      url: wss://DOMAIN_NAME/TCP_PATH
    cipher: chacha20-ietf-poly1305
    secret: SHADOWSOCKS_SECRET

  udp:
    $type: shadowsocks

    endpoint:
      $type: websocket
      url: wss://DOMAIN_NAME/UDP_PATH
    cipher: chacha20-ietf-poly1305
    secret: SHADOWSOCKS_SECRET

डाइनैमिक ऐक्सेस कुंजी की YAML फ़ाइल जनरेट करने के बाद, आपको इसे अपने उपयोगकर्ताओं को भेजना होगा. फ़ाइल को स्टैटिक वेब होस्टिंग सेवा पर होस्ट किया जा सकता है या डाइनैमिक तौर पर जनरेट किया जा सकता है. डाइनैमिक ऐक्सेस की इस्तेमाल करने के तरीके के बारे में ज़्यादा जानें.

छठा चरण: Outline क्लाइंट से कनेक्ट करना

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

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