Skip to main content

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