ตั้งแต่ไคลเอ็นต์ Outline เวอร์ชัน 1.9.0 เป็นต้นไป คีย์การเข้าถึงจะรองรับตัวเลือก "คำนำหน้า" ซึ่ง "คำนำหน้า" คือรายการไบต์ที่ใช้เป็นไบต์แรกของ Salt ในการเชื่อมต่อ TCP ของ Shadowsocks โดยจะทำให้การเชื่อมต่อดูเหมือนเป็นโปรโตคอลที่ได้รับอนุญาตในเครือข่าย เป็นการหลีกเลี่ยงไฟร์วอลล์ที่ปฏิเสธโปรโตคอลที่ไม่รู้จัก
ทำไมจึงควรลองใช้สิ่งนี้
หากคุณสงสัยว่าผู้ใช้การใช้งาน Outline ของคุณยังคงถูกบล็อกอยู่ คุณอาจลองใช้คำนำหน้าที่แตกต่างกัน 2-3 คำ
วิธีการ
คำนำหน้าควรมีความยาวไม่เกิน 16 ไบต์ เนื่องจากการใช้คำนำหน้าที่ยาวเกินไปอาจทำให้เกิดการชนกันของ Salt ซึ่งอาจทำให้ความปลอดภัยของการเข้ารหัสลดลงและอาจทำให้การเชื่อมต่อถูกตรวจพบได้ โปรดใช้คำนำหน้าที่สั้นที่สุดเท่าที่จะทำได้เพื่อหลีกเลี่ยงการบล็อกที่คุณกำลังเผชิญอยู่
พอร์ตที่คุณใช้ควรตรงกับโปรโตคอลที่คำนำหน้าแอบอ้างอยู่ โดย IANA จะใช้รีจิสทรีหมายเลขพอร์ตโปรโตคอลการรับส่งที่จับคู่โปรโตคอลและหมายเลขพอร์ต
ตัวอย่างคำนำหน้าที่ดูคล้ายคลึงกับโปรโตคอลทั่วไปมีดังนี้
พอร์ตที่แนะนำ | มีการเข้ารหัส JSON | มีการเข้ารหัส URL | |
---|---|---|---|
คำขอ HTTP | 80 (http) | "POST " |
POST%20 |
การตอบกลับ HTTP | 80 (http) | "HTTP/1.1 " |
HTTP%2F1.1%20 |
คำขอ DNS-over-TCP | 53 (dns) | "\u0005\u00DC\u005F\u00E0\u0001\u0020" |
%05%C3%9C_%C3%A0%01%20 |
TLS ClientHello | 443 (https), 463 (smtps), 563 (nntps), 636 (ldaps), 989 (ftps-data), 990 (ftps), 993 (imaps), 995 (pop3s), 5223 (Apple APN), 5228 (Play Store), 5349 (turns) | "\u0016\u0003\u0001\u0000\u00a8\u0001\u0001" |
%16%03%01%00%C2%A8%01%01 |
ข้อมูลแอปพลิเคชัน TLS | 443 (https), 463 (smtps), 563 (nntps), 636 (ldaps), 989 (ftps-data), 990 (ftps), 993 (imaps), 995 (pop3s), 5223 (Apple APN), 5228 (Play Store), 5349 (turns) | "\u0013\u0003\u0003\u003F" |
%13%03%03%3F |
TLS ServerHello | 443 (https), 463 (smtps), 563 (nntps), 636 (ldaps), 989 (ftps-data), 990 (ftps), 993 (imaps), 995 (pop3s), 5223 (Apple APN), 5228 (Play Store), 5349 (turns) | "\u0016\u0003\u0003\u0040\u0000\u0002" |
%16%03%03%40%00%02 |
SSH | 22 (ssh), 830 (netconf-ssh), 4334 (netconf-ch-ssh), 5162 (snmpssh-trap) | "SSH-2.0\r\n" |
SSH-2.0%0D%0A |
คีย์การเข้าถึงแบบไดนามิก
หากต้องการใช้ฟีเจอร์คำนำหน้าที่มีคีย์การเข้าถึงแบบไดนามิก (ssconf://
) ให้เพิ่มคีย์ "คำนำหน้า" ในออบเจ็กต์ JSON พร้อมกับค่าที่เข้ารหัส JSON ซึ่งนำเสนอคำนำหน้าที่คุณต้องการ (ดูตัวอย่างในตารางด้านบน) คุณสามารถใช้โค้ดอักขระหลีก (เช่น \u00FF) เพื่อนำเสนอจุดโค้ด Unicode ที่พิมพ์ไม่ได้ในช่วง U+0
ถึง U+FF
เช่น
{
"server": "example.com",
"server_port": 8388,
"password": "example",
"method": "chacha20-ietf-poly1305",
"prefix": "\u0005\u00DC\u005F\u00E0\u0001\u0020"
}
คีย์การเข้าถึงแบบคงที่
หากต้องการใช้คำนำหน้าที่มีคีย์การเข้าถึงแบบคงที่ (ss://) คุณจะต้องแก้ไขคีย์ที่มีอยู่ก่อนเผยแพร่ หากคุณมีคีย์การเข้าถึงแบบคงที่ที่สร้างโดย Outline Manager ให้คัดลอกคำนำหน้าแบบเข้ารหัส URL (ดูตัวอย่างในตารางด้านบน) แล้วเพิ่มลงในส่วนท้ายของคีย์การเข้าถึง ดังนี้
ss://Z34nthataITHiTNIHTohithITHbVBqQ1o3bkk@127.0.0.1:33142/?outline=1&prefix=<your url-encoded prefix goes here>
สำหรับผู้ใช้ขั้นสูง คุณสามารถใช้ฟังก์ชัน encodeURIComponent()
ของเบราว์เซอร์เพื่อแปลงคำนำหน้าแบบเข้ารหัส JSON เป็นคำนำหน้าแบบเข้ารหัส URL ซึ่งทำได้โดยเปิดคอนโซลการตรวจสอบเว็บ (*นักพัฒนาซอฟต์แวร์ > คอนโซลเว็บ JavaScript *บน Chrome) แล้วพิมพ์ตามด้านล่างนี้
encodeURIComponent("<your json-encoded prefix goes here>")
กด Enter ค่าที่สร้างขึ้นจะอยู่ในเวอร์ชัน *แบบเข้ารหัส URL* เช่น
encodeURIComponent("\u0016\u0003\u0001\u0000\u00a8\u0001\u0001")
'%16%03%01%00%C2%A8%01%01'