เซิร์ฟเวอร์ AnyTLS ถูกอธิบายด้วย รหัสผ่าน และ การตั้งค่า TLS AnyTLS ทำงานภายใน TLS และเติม padding ให้ทราฟฟิก การเชื่อมต่อจึงดูเหมือนการเข้าชม HTTPS ทั่วไป และไม่แสดงสัญญาณปกติของพร็อกซีภายใน TLS Potatso เชื่อมต่อกับเซิร์ฟเวอร์เมื่อรองรับการตั้งค่า TLS ของเซิร์ฟเวอร์ ใช้ตารางด้านล่างเพื่อตรวจสอบการตั้งค่าของเซิร์ฟเวอร์ ตามที่ผู้ให้บริการแจ้งหรือในลิงก์ anytls:// ของเซิร์ฟเวอร์
คุณเพิ่มเซิร์ฟเวอร์ AnyTLS ได้ด้วยตนเอง ด้วยลิงก์ anytls:// หรือโดยการนำเข้า:
- การสมัครรับ Clash หรือ Mihomo
- การกำหนดค่า Surge
Potatso ยังไม่นำเข้าเซิร์ฟเวอร์ AnyTLS จากการกำหนดค่า sing-box ให้ใช้ลิงก์ anytls:// ของเซิร์ฟเวอร์แทน
TLS
| การตั้งค่า | คีย์ของ Clash | พารามิเตอร์ของลิงก์ | รองรับ |
|---|---|---|---|
| ชื่อเซิร์ฟเวอร์ (SNI) | sni |
sni |
✅ หากไม่ระบุ Potatso ใช้ที่อยู่ของเซิร์ฟเวอร์ |
| ALPN | alpn |
alpn |
✅ หากไม่ระบุ Potatso ไม่ส่งอะไร เหมือนที่ Clash ทำ |
| ข้ามการตรวจสอบใบรับรอง | skip-cert-verify |
insecure |
✅ |
| การปักหมุดใบรับรอง (SHA-256) | fingerprint |
hpkp |
✅ |
| ลายนิ้วมือเบราว์เซอร์ | client-fingerprint |
fp |
✅ chrome, firefox, safari, ios, android, edge และ random ชื่ออื่นจะเชื่อมต่อด้วย handshake เริ่มต้น |
| REALITY | reality-opts |
✅ | |
| Encrypted Client Hello (ECH) | ech-opts |
✅ เมื่อมีการกำหนดค่า ECH ในการสมัครรับ หรือค้นหาจาก DNS | |
| ใบรับรอง CA ที่กำหนดเอง | ❌ | ||
| ใบรับรองไคลเอนต์ TLS | certificate, private-key |
❌ |
การปิดการตรวจสอบใบรับรองทำให้ใครก็ตามที่อยู่ระหว่างคุณกับเซิร์ฟเวอร์อ่านทราฟฟิกของคุณได้ หากเซิร์ฟเวอร์ใช้ใบรับรองที่ลงนามด้วยตัวเอง ให้ปักหมุดใบรับรองของเซิร์ฟเวอร์แทน: ตั้ง SHA-256 ของใบรับรองเป็นการปักหมุดใบรับรอง
ลายนิ้วมือเบราว์เซอร์ทำให้ TLS handshake ของการเชื่อมต่อดูเหมือนของเบราว์เซอร์นั้น ไม่เปลี่ยนสิ่งที่เซิร์ฟเวอร์ต้องรองรับ
Potatso ไม่นำเข้าเซิร์ฟเวอร์ที่ต้องใช้ใบรับรองไคลเอนต์ TLS เพราะเซิร์ฟเวอร์จะปฏิเสธการเชื่อมต่อ
REALITY
เซิร์ฟเวอร์ REALITY ยืมใบรับรอง TLS ของเว็บไซต์อื่น จึงไม่ต้องมีใบรับรองของตัวเอง เซิร์ฟเวอร์ sing-box มี AnyTLS ร่วมกับ REALITY ตั้ง คีย์สาธารณะ (public key) และ short ID ของเซิร์ฟเวอร์ตามที่ผู้ให้บริการให้ และตั้งชื่อเซิร์ฟเวอร์เป็นเว็บไซต์ที่เซิร์ฟเวอร์ยืมมา REALITY ต้องใช้ลายนิ้วมือเบราว์เซอร์ เช่น chrome
การเชื่อมต่อ
AnyTLS ใช้การเชื่อมต่อ TLS ซ้ำ: เมื่อการเชื่อมต่อไปยังเว็บไซต์สิ้นสุด การเชื่อมต่อถัดไปจะใช้การเชื่อมต่อ TLS เดิมแทนที่จะเปิดใหม่ การเชื่อมต่อ TLS แต่ละครั้งรับหนึ่งการเชื่อมต่อในแต่ละขณะ ดังนั้นการเชื่อมต่อหลายอย่างพร้อมกันจึงเปิดการเชื่อมต่อ TLS หลายครั้ง ซึ่งจะถูกใช้ซ้ำภายหลัง
| การตั้งค่า | คีย์ของ Clash | รองรับ |
|---|---|---|
| ตรวจสอบการเชื่อมต่อที่ว่างบ่อยแค่ไหน | idle-session-check-interval |
✅ เป็นวินาที ค่าเริ่มต้น 30 |
| การเชื่อมต่อที่ว่างเปิดอยู่นานเท่าใด | idle-session-timeout |
✅ เป็นวินาที ค่าเริ่มต้น 60 |
| มีการเชื่อมต่อที่ว่างเปิดอยู่กี่รายการ | min-idle-session |
✅ ค่าเริ่มต้น 1 |
ค่า 5 วินาทีหรือน้อยกว่าหมายถึง 30 เหมือนใน Clash การตั้งค่าเหล่านี้มาจากการสมัครรับ Clash Potatso ใช้ค่าเริ่มต้นสำหรับเซิร์ฟเวอร์ที่คุณเพิ่มด้วยตนเองหรือด้วยลิงก์
reuse=false ในการกำหนดค่า Surge ไม่มีผล: Potatso ใช้การเชื่อมต่อซ้ำเสมอ ตามข้อกำหนดของ AnyTLS Potatso นำเข้าเซิร์ฟเวอร์และแสดงคำเตือน
Padding
AnyTLS เติม padding ที่จุดเริ่มต้นของทุกการเชื่อมต่อเพื่อซ่อนขนาดที่เผยว่าเป็นพร็อกซี เซิร์ฟเวอร์ส่งรูปแบบ padding ของตัวเองได้ Potatso ใช้รูปแบบนั้นตั้งแต่การเชื่อมต่อ TLS ครั้งถัดไป ตามที่ AnyTLS กำหนด ไม่มีอะไรต้องตั้งค่าบนอุปกรณ์ของคุณ
UDP
AnyTLS นำ UDP ภายในการเชื่อมต่อ TLS (UDP over TCP) UDP ปิดไว้โดยค่าเริ่มต้น เหมือนใน Clash เปิด UDP Relay ในการตั้งค่าของเซิร์ฟเวอร์หากเซิร์ฟเวอร์ของคุณรีเลย์ UDP การสมัครรับ Clash เปิดด้วย udp: true และการกำหนดค่า Surge เปิดเสมอ
การรองรับฟีเจอร์
| ฟีเจอร์ | รองรับ |
|---|---|
| โปรโตคอล AnyTLS v2: รหัสผ่าน, padding, การใช้การเชื่อมต่อซ้ำ | ✅ |
| รูปแบบ padding ที่เซิร์ฟเวอร์ส่งมา | ✅ |
| UDP over TCP | ✅ |
| การตั้งค่าการเชื่อมต่อที่ว่าง | ✅ |
| REALITY, ECH | ✅ |
| การปักหมุดใบรับรอง ลายนิ้วมือเบราว์เซอร์ | ✅ |
| CA ที่กำหนดเอง, ใบรับรองไคลเอนต์ TLS | ❌ |
ลิงก์ anytls:// |
✅ |
ทุกฟีเจอร์ที่รองรับได้รับการทดสอบกับเซิร์ฟเวอร์ AnyTLS จริงอย่างน้อยหนึ่งตัว: anytls-go, sing-box หรือ mihomo
เมื่อรหัสผ่านผิด เซิร์ฟเวอร์จะปิดการเชื่อมต่อ ตรวจสอบรหัสผ่านก่อนเมื่อเซิร์ฟเวอร์ AnyTLS เชื่อมต่อไม่ได้เลย
ลิงก์ anytls://
ลิงก์ anytls:// เก็บเซิร์ฟเวอร์ทั้งตัวไว้ในบรรทัดเดียว:
anytls://password@host:port/?parameters#name| ส่วน | คำอธิบาย |
|---|---|
password |
รหัสผ่าน เข้ารหัสแบบ percent |
host |
ที่อยู่เซิร์ฟเวอร์ ใส่ที่อยู่ IPv6 ในวงเล็บเหลี่ยม เช่น [2001:db8::1] |
port |
พอร์ตเซิร์ฟเวอร์ เมื่อไม่ระบุ Potatso ใช้ 443 |
name |
ไม่บังคับ ชื่อของเซิร์ฟเวอร์ใน Potatso |
พารามิเตอร์เป็นไปตามรูปแบบของ anytls-go บวกอีกไม่กี่รายการที่บางแอปเพิ่ม:
| พารามิเตอร์ | คำอธิบาย |
|---|---|
sni |
ชื่อเซิร์ฟเวอร์ TLS |
insecure |
1 ปิดการตรวจสอบใบรับรอง |
alpn |
รายการ ALPN คั่นด้วยจุลภาคและเข้ารหัสแบบ percent |
fp |
ลายนิ้วมือเบราว์เซอร์ |
hpkp |
SHA-256 ของใบรับรองเซิร์ฟเวอร์ |
เมื่อ Potatso แชร์เซิร์ฟเวอร์ AnyTLS จะเสนอลิงก์ anytls:// ที่มีพารามิเตอร์เดียวกัน
ตัวอย่าง
แต่ละตัวอย่างแสดงลิงก์ที่จะนำเข้า รหัสผ่านคือ secret
เซิร์ฟเวอร์พื้นฐาน:
anytls://secret@anytls.example.com:443/?sni=anytls.example.com#Basicใบรับรองที่ลงนามด้วยตัวเอง โดยไม่ตรวจสอบ:
anytls://secret@203.0.113.7/?insecure=1#Self-signedลายนิ้วมือ Chrome รายการ ALPN และใบรับรองที่ปักหมุดไว้:
anytls://secret@anytls.example.com:443/?sni=anytls.example.com&alpn=h2%2Chttp%2F1.1&fp=chrome&hpkp=abababababababababababababababababababababababababababababababab#Shaped