Shadowsocks-over-WebSockets

ไคลเอ็นต์ Outline เวอร์ชัน 1.15.0 ขึ้นไป

บทแนะนำนี้จะอธิบายคำแนะนำแบบละเอียดทีละขั้นเพื่อช่วยคุณติดตั้งใช้งาน Shadowsocks-over-WebSockets ซึ่งเป็นเทคนิคที่มีประสิทธิภาพในการหลบเลี่ยงการเซ็นเซอร์ในสภาพแวดล้อมที่มีการบล็อกการเชื่อมต่อ Shadowsocks แบบปกติ การห่อหุ้มข้อมูลการเข้าชม Shadowsocks ภายใน WebSocket จะทำให้คุณปลอมแปลงการเข้าชมดังกล่าวเป็นการเข้าชมเว็บมาตรฐานได้ ซึ่งจะช่วยเพิ่มความยืดหยุ่นและการเข้าถึง

ขั้นตอนที่ 1: กำหนดค่าและเรียกใช้เซิร์ฟเวอร์ 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

ขั้นตอนที่ 2: เปิดใช้งานเว็บเซิร์ฟเวอร์

หากต้องการให้เว็บเซิร์ฟเวอร์ 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 โดยอัตโนมัติ โปรดจดโดเมนย่อยนี้ไว้เนื่องจากคุณจะต้องใช้ในภายหลัง

ขั้นตอนที่ 3: สร้างคีย์การเข้าถึงแบบไดนามิก

สร้างไฟล์ YAML ของคีย์การเข้าถึงไคลเอ็นต์สำหรับผู้ใช้โดยใช้รูปแบบการกำหนดค่าคีย์การเข้าถึง และระบุปลายทาง WebSocket ที่กําหนดค่าไว้ก่อนหน้านี้ในฝั่งเซิร์ฟเวอร์

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 ของคีย์การเข้าถึงแบบไดนามิกแล้ว คุณต้องส่งไฟล์ดังกล่าวให้ผู้ใช้ โดยสามารถฝากไฟล์ไว้ในบริการเว็บโฮสติ้งแบบคงที่หรือจะสร้างไฟล์แบบไดนามิกก็ได้ โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้คีย์การเข้าถึงแบบไดนามิก

ขั้นตอนที่ 4: เชื่อมต่อกับไคลเอ็นต์ Outline

ใช้แอปพลิเคชันไคลเอ็นต์ Outline แบบทางการ (เวอร์ชัน 1.15.0 ขึ้นไป) และเพิ่มคีย์การเข้าถึงแบบไดนามิกที่สร้างขึ้นใหม่เป็นรายการเซิร์ฟเวอร์ คลิกเชื่อมต่อเพื่อเริ่มการสร้างอุโมงค์เสมือนไปยังเซิร์ฟเวอร์โดยใช้การกำหนดค่า Shadowsocks ผ่าน WebSocket

ใช้เครื่องมืออย่าง IPInfo เพื่อยืนยันว่าคุณกำลังท่องอินเทอร์เน็ตผ่านเซิร์ฟเวอร์ Outline