คีย์การเข้าถึงแบบไดนามิก

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

การระบุข้อมูลการเข้าถึงเพื่อให้คีย์การเข้าถึงแบบไดนามิกนำไปใช้มี 3 รูปแบบ ดังนี้

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

คุณสามารถใช้ลิงก์ ss:// ที่มีอยู่ได้โดยตรง วิธีนี้เหมาะอย่างยิ่งหากคุณไม่จำเป็นต้องเปลี่ยนเซิร์ฟเวอร์ พอร์ต หรือวิธีการเข้ารหัสบ่อยๆ แต่ยังต้องการความยืดหยุ่นในการอัปเดตที่อยู่เซิร์ฟเวอร์

ตัวอย่าง

ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTpleGFtcGxl@outline-server.example.com:8388/?outline=1

ใช้ออบเจ็กต์ JSON

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

วิธีนี้ช่วยเพิ่มความยืดหยุ่นในการจัดการการเชื่อมต่อ Outline ของผู้ใช้ในทุกๆ ด้าน คุณสามารถอัปเดตเซิร์ฟเวอร์ พอร์ต รหัสผ่าน และวิธีการเข้ารหัสได้ด้วยวิธีนี้

ตัวอย่าง

{
  "server": "outline-server.example.com",
  "server_port": 8388,
  "password": "example",
  "method": "chacha20-ietf-poly1305"
}
  • server: โดเมนหรือที่อยู่ IP ของเซิร์ฟเวอร์ VPN ของคุณ
  • server_port: หมายเลขพอร์ตที่เซิร์ฟเวอร์ VPN ของคุณกำลังทำงานอยู่
  • password: รหัสผ่านที่ต้องใช้ในการเชื่อมต่อกับ VPN
  • method: วิธีการเข้ารหัสที่ VPN ใช้ โปรดดูการเข้ารหัส AEAD ที่ Shadowsocks รองรับ

ใช้ออบเจ็กต์ YAML

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

วิธีนี้คล้ายกับวิธี JSON ก่อนหน้า แต่เพิ่มความยืดหยุ่นมากยิ่งขึ้นโดยใช้ประโยชน์จากรูปแบบการกำหนดค่าขั้นสูงของ Outline คุณจึงสามารถอัปเดตเซิร์ฟเวอร์ พอร์ต รหัสผ่าน วิธีการเข้ารหัส และอื่นๆ ได้อีกมากมาย

ตัวอย่าง

transport:
  $type: tcpudp
  tcp:
    $type: shadowsocks
    endpoint: outline-server.example.com:8388
    cipher: chacha20-ietf-poly1305
    secret: example
  udp:
    $type: shadowsocks
    endpoint: outline-server.example.com:8388
    cipher: chacha20-ietf-poly1305
    secret: example
  • transport: กำหนดโปรโตคอลการรับส่งที่จะใช้ (TCP และ UDP ในกรณีนี้)
  • tcp/udp: ระบุการกำหนดค่าสำหรับแต่ละโปรโตคอล
    • $type: ระบุประเภทของการกำหนดค่า ในที่นี้คือ shadowsocks
    • endpoint: โดเมนหรือที่อยู่ IP และพอร์ตของเซิร์ฟเวอร์ VPN ของคุณ
    • secret: รหัสผ่านที่ต้องใช้ในการเชื่อมต่อกับ VPN
    • cipher: วิธีการเข้ารหัสที่ VPN ใช้ โปรดดูการเข้ารหัส AEAD ที่ Shadowsocks รองรับ

ไปที่หัวข้อการกำหนดค่าคีย์การเข้าถึงเพื่อดูรายละเอียดเกี่ยวกับวิธีการทั้งหมดที่คุณสามารถใช้กำหนดค่าการเข้าถึงเซิร์ฟเวอร์ Outline ได้ ซึ่งรวมถึง Transport, Endpoint, Dialer และ Packet Listener

ดึงข้อมูลการเข้าถึงจากคีย์แบบคงที่

หากมีคีย์การเข้าถึงแบบคงที่อยู่แล้ว คุณสามารถดึงข้อมูลออกมาเพื่อสร้างคีย์การเข้าถึงแบบไดนามิกในรูปแบบ JSON หรือ YAML ได้ โดยคีย์การเข้าถึงแบบคงที่จะเป็นไปตามรูปแบบต่อไปนี้

SS-URI = "ss://" userinfo "@" hostname ":" port [ "/" ] [ "#" tag ]
userinfo = websafe-base64-encode-utf8(method  ":" password)
           method ":" password

ตัวอย่าง

ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTpleGFtcGxl@outline-server.example.com:8388/?outline=1

เลือกแพลตฟอร์มโฮสติ้ง

เมื่อเข้าใจวิธีการสร้างคีย์การเข้าถึงแบบไดนามิกแล้ว สิ่งสำคัญคือต้องเลือกแพลตฟอร์มโฮสติ้งที่เหมาะสมสำหรับการกำหนดค่าคีย์การเข้าถึงของคุณ เมื่อถึงเวลาต้องเลือก โปรดพิจารณาปัจจัยต่างๆ เช่น ความน่าเชื่อถือ ความปลอดภัย ความสะดวกในการใช้งาน และการป้องกันการเซ็นเซอร์ของแพลตฟอร์ม อีกทั้งต้องพิจารณาว่าแพลตฟอร์มจะให้บริการข้อมูลคีย์การเข้าถึงของคุณอย่างสม่ำเสมอโดยไม่ต้องหยุดทำงานหรือไม่ แพลตฟอร์มมีมาตรการรักษาความปลอดภัยที่เหมาะสมเพื่อปกป้องการกำหนดค่าของคุณหรือไม่ การจัดการข้อมูลคีย์การเข้าถึงบนแพลตฟอร์มทำได้ง่ายเพียงใด และแพลตฟอร์มเข้าถึงได้ในภูมิภาคที่มีการเซ็นเซอร์อินเทอร์เน็ตหรือไม่

ในกรณีที่การเข้าถึงข้อมูลอาจถูกจำกัด ให้พิจารณาโฮสติ้งบนแพลตฟอร์มที่ป้องกันการเซ็นเซอร์ เช่น Google ไดรฟ์, pad.riseup.net, Amazon S3 (พร้อมการเข้าถึงแบบเส้นทาง), Netlify หรือ GitHub secret gists ประเมินความต้องการเฉพาะในการใช้งานของคุณและเลือกแพลตฟอร์มที่สอดคล้องกับข้อกำหนดสำหรับการเข้าถึงและความปลอดภัย