เซิร์ฟเวอร์ Trojan ถูกอธิบายด้วย รหัสผ่าน และ การตั้งค่า TLS และอาจมี การส่งผ่าน (transport) ที่ใช้นำการเชื่อมต่อ เช่น WebSocket หรือ gRPC Trojan ทำงานภายใน TLS (หรือ REALITY) เสมอ ผู้ที่คอยสังเกตจึงเห็นการเชื่อมต่อเหมือนการเข้าชม HTTPS ทั่วไป Potatso เชื่อมต่อกับเซิร์ฟเวอร์เมื่อรองรับการส่งผ่านและการตั้งค่า TLS ของเซิร์ฟเวอร์ ใช้ตารางด้านล่างเพื่อตรวจสอบการตั้งค่าของเซิร์ฟเวอร์ ตามที่ผู้ให้บริการแจ้งหรือในลิงก์ trojan:// ของเซิร์ฟเวอร์
คุณเพิ่มเซิร์ฟเวอร์ Trojan ได้ด้วยตนเอง ด้วยลิงก์ trojan:// หรือโดยการนำเข้า:
- การสมัครรับ Clash หรือ Mihomo
- การกำหนดค่า Xray หรือ V2Ray
- การกำหนดค่า Surge
Potatso ยังไม่นำเข้าเซิร์ฟเวอร์ Trojan จากการกำหนดค่า sing-box ให้ใช้ลิงก์ trojan:// ของเซิร์ฟเวอร์แทน
การส่งผ่าน
| การส่งผ่าน | type ของลิงก์ |
รองรับ | ทดสอบกับ |
|---|---|---|---|
| TLS อย่างเดียว (ไม่มีการส่งผ่าน) | tcp หรือไม่ระบุ |
✅ | Xray, sing-box, trojan-go |
| WebSocket | ws |
✅ ทั้งแบบมีและไม่มี early data | Xray, sing-box, trojan-go |
| gRPC | grpc |
✅ | Xray, sing-box |
| HTTP/2 | http หรือ h2 |
✅ | sing-box |
| HTTP Upgrade | httpupgrade |
✅ | Xray, sing-box |
| XHTTP | xhttp |
❌ | |
| mKCP, QUIC | kcp, quic |
❌ |
ทุกการส่งผ่านใช้ได้กับ UDP Potatso ไม่นำเข้าเซิร์ฟเวอร์ที่ใช้การส่งผ่านที่ไม่รองรับ
Xray ไม่มี HTTP/2 อีกต่อไป: เซิร์ฟเวอร์ Xray ที่เคยใช้ HTTP/2 ตอนนี้ใช้ XHTTP ซึ่ง Potatso ยังไม่รองรับ
TLS
| การตั้งค่า | คีย์ของ Clash | พารามิเตอร์ของลิงก์ | รองรับ |
|---|---|---|---|
| ชื่อเซิร์ฟเวอร์ (SNI) | sni |
sni, peer |
✅ หากไม่ระบุ Potatso ใช้ที่อยู่ของเซิร์ฟเวอร์ |
| ALPN | alpn |
alpn |
✅ หากไม่ระบุ Potatso ส่ง h2, http/1.1 หรือ http/1.1 สำหรับ WebSocket และ HTTP Upgrade และ h2 สำหรับ gRPC และ HTTP/2 |
| ข้ามการตรวจสอบใบรับรอง | skip-cert-verify |
allowInsecure, insecure |
✅ |
| การปักหมุดใบรับรอง (SHA-256) | fingerprint |
✅ | |
| ลายนิ้วมือเบราว์เซอร์ | client-fingerprint |
fp |
✅ chrome, firefox, safari, ios, android, edge และ random ชื่ออื่นจะเชื่อมต่อด้วย handshake เริ่มต้น |
| REALITY | reality-opts |
security=reality, pbk, sid |
✅ เมื่อไม่มีการส่งผ่านหรือใช้ gRPC |
| Encrypted Client Hello (ECH) | ech-opts |
ech |
✅ เมื่อมีการกำหนดค่า ECH ในลิงก์หรือการสมัครรับ |
| ใบรับรอง CA ที่กำหนดเอง | ❌ | ||
| ใบรับรองไคลเอนต์ TLS | certificate, private-key |
❌ |
การปิดการตรวจสอบใบรับรองทำให้ใครก็ตามที่อยู่ระหว่างคุณกับเซิร์ฟเวอร์อ่านทราฟฟิกของคุณได้ หากเซิร์ฟเวอร์ใช้ใบรับรองที่ลงนามด้วยตัวเอง ให้ปักหมุดใบรับรองของเซิร์ฟเวอร์แทน: ตั้ง SHA-256 ของใบรับรองเป็นการปักหมุดใบรับรอง
ลายนิ้วมือเบราว์เซอร์ทำให้ TLS handshake ของการเชื่อมต่อดูเหมือนของเบราว์เซอร์นั้น ไม่เปลี่ยนสิ่งที่เซิร์ฟเวอร์ต้องรองรับ
REALITY
เซิร์ฟเวอร์ REALITY ยืมใบรับรอง TLS ของเว็บไซต์อื่น จึงไม่ต้องมีใบรับรองของตัวเอง ตั้ง คีย์สาธารณะ (public key) และ short ID ของเซิร์ฟเวอร์ตามที่ผู้ให้บริการให้ และตั้งชื่อเซิร์ฟเวอร์เป็นเว็บไซต์ที่เซิร์ฟเวอร์ยืมมา REALITY ต้องใช้ลายนิ้วมือเบราว์เซอร์: เมื่อลิงก์หรือการตั้งค่าของคุณไม่มี Potatso ใช้ chrome
REALITY ใช้ได้เมื่อไม่มีการส่งผ่านและกับ gRPC Potatso ไม่นำเข้าเซิร์ฟเวอร์ REALITY ที่ใช้การส่งผ่านอื่น
การมัลติเพล็กซ์
Potatso รันหลายการเชื่อมต่อผ่านการเชื่อมต่อ Trojan เดียวได้ด้วยการมัลติเพล็กซ์ของ sing-box (smux, yamux หรือ h2mux) ซึ่งตั้งด้วย smux ในการสมัครรับ Clash เซิร์ฟเวอร์ต้องเปิดการมัลติเพล็กซ์ไว้ ใช้ได้ทั้ง TCP และ UDP
การมัลติเพล็กซ์ของ trojan-go เอง (mux ในเซิร์ฟเวอร์ trojan-go) เป็นโปรโตคอลคนละแบบ และ Potatso ไม่รองรับ เซิร์ฟเวอร์ trojan-go ยังรับการเชื่อมต่อของ Potatso ที่ไม่มีการมัลติเพล็กซ์ได้
UDP
Trojan นำ UDP ผ่านการเชื่อมต่อ TLS เดียวกับ TCP UDP ปิดไว้โดยค่าเริ่มต้น เหมือนใน Clash เปิด UDP Relay ในการตั้งค่าของเซิร์ฟเวอร์หากเซิร์ฟเวอร์ของคุณรีเลย์ UDP: Xray, sing-box และ trojan-go ทำได้ทั้งหมด การสมัครรับ Clash เปิดด้วย udp: true
การรองรับฟีเจอร์
| ฟีเจอร์ | รองรับ |
|---|---|
โปรโตคอล Trojan: แฮชรหัสผ่าน, CONNECT |
✅ |
UDP ASSOCIATE ของ Trojan |
✅ |
Trojan ที่ไม่มี TLS (security=none) |
❌ |
| หลายผู้ใช้บนเซิร์ฟเวอร์เดียว | ✅ แต่ละคนมีรหัสผ่านของตัวเอง |
| การส่งผ่าน WebSocket, gRPC, HTTP/2 และ HTTP Upgrade | ✅ ดูการส่งผ่าน |
| การส่งผ่าน XHTTP, mKCP และ QUIC | ❌ |
| REALITY | ✅ เมื่อไม่มีการส่งผ่านหรือใช้ gRPC |
| ECH | ✅ |
| การมัลติเพล็กซ์ของ sing-box (smux, yamux, h2mux) | ✅ |
| การมัลติเพล็กซ์ของ trojan-go | ❌ |
การเข้ารหัส Shadowsocks ของ trojan-go (ss-opts, encryption=ss;…) |
❌ |
| ShadowTLS, Restls หรือ JLS ครอบ Trojan | ❌ |
ลิงก์ trojan:// และ trojan-go:// |
✅ |
ทุกฟีเจอร์ที่รองรับได้รับการทดสอบกับเซิร์ฟเวอร์ Trojan จริงอย่างน้อยหนึ่งตัว: Xray, sing-box หรือ trojan-go
เมื่อรหัสผ่านผิด เซิร์ฟเวอร์ Trojan จะตอบเหมือนเว็บไซต์ทั่วไปแทน (fallback) Potatso จึงเชื่อมต่อไม่ได้ และไม่แสดงข้อผิดพลาดเรื่องรหัสผ่าน: ตรวจสอบรหัสผ่านก่อนเมื่อเซิร์ฟเวอร์ Trojan เชื่อมต่อไม่ได้เลย
Potatso ไม่นำเข้าเซิร์ฟเวอร์ที่ใช้การเข้ารหัส Shadowsocks ของ trojan-go, ShadowTLS, Restls หรือ JLS ครอบ Trojan เพราะจะเชื่อมต่อโดยไม่มีสิ่งเหล่านั้น และเซิร์ฟเวอร์จะไม่ตอบ
ฟีเจอร์บางอย่างของ trojan-go เป็นการตั้งค่าของโปรแกรมไคลเอนต์ของมันเอง และ Potatso ทำงานเดียวกันนี้ในแบบของตัวเอง:
- การกำหนดเส้นทาง: ใช้กฎในโปรไฟล์ของคุณ
- เซิร์ฟเวอร์ SOCKS5 และ HTTP ในเครื่อง และการส่งต่อ: Potatso จับทราฟฟิกของอุปกรณ์คุณเอง
ลิงก์ trojan://
ลิงก์ trojan:// เก็บเซิร์ฟเวอร์ทั้งตัวไว้ในบรรทัดเดียว:
trojan://password@host:port?parameters#name| ส่วน | คำอธิบาย |
|---|---|
password |
รหัสผ่าน เข้ารหัสแบบ percent ทุกอย่างก่อน @ คือรหัสผ่าน รวมถึง : ใดๆ |
host |
ที่อยู่เซิร์ฟเวอร์ ใส่ที่อยู่ IPv6 ในวงเล็บเหลี่ยม เช่น [2001:db8::1] |
port |
พอร์ตเซิร์ฟเวอร์ เมื่อไม่ระบุ Potatso ใช้ 443 |
name |
ไม่บังคับ ชื่อของเซิร์ฟเวอร์ใน Potatso |
พารามิเตอร์เป็นไปตามรูปแบบที่ Xray และ v2rayN ใช้:
| พารามิเตอร์ | คำอธิบาย |
|---|---|
security |
tls (ค่าเริ่มต้น) หรือ reality |
type |
การส่งผ่าน: tcp, ws, grpc, http (HTTP/2) หรือ httpupgrade |
sni, peer |
ชื่อเซิร์ฟเวอร์ TLS |
alpn |
รายการ ALPN คั่นด้วยจุลภาคและเข้ารหัสแบบ percent |
fp |
ลายนิ้วมือเบราว์เซอร์ |
allowInsecure |
1 ปิดการตรวจสอบใบรับรอง |
host |
Host ของ HTTP สำหรับ WebSocket, HTTP/2 และ HTTP Upgrade |
path |
เส้นทางสำหรับ WebSocket, HTTP/2 และ HTTP Upgrade เส้นทาง WebSocket เช่น /ws?ed=2048 เปิด early data |
serviceName |
ชื่อบริการ gRPC |
pbk, sid |
คีย์สาธารณะและ short ID ของ REALITY |
ech |
การกำหนดค่า ECH เข้ารหัสด้วย Base64 และเข้ารหัสแบบ percent |
Potatso ยังนำเข้าลิงก์ trojan-go:// ที่มี type=original (ไม่มีการส่งผ่าน) หรือ type=ws แต่ไม่นำเข้าลิงก์ที่มีพารามิเตอร์ encryption ซึ่งต้องใช้การเข้ารหัส Shadowsocks ของ trojan-go
เมื่อ Potatso แชร์เซิร์ฟเวอร์ Trojan จะเสนอลิงก์ trojan:// ที่มีพารามิเตอร์เดียวกัน
ตัวอย่าง
แต่ละตัวอย่างแสดงลิงก์ที่จะนำเข้า รหัสผ่านคือ secret
เซิร์ฟเวอร์พื้นฐาน:
trojan://secret@trojan.example.com:443?sni=trojan.example.com#BasicWebSocket ผ่าน cdn.example.com:
trojan://secret@trojan.example.com:443?security=tls&type=ws&host=cdn.example.com&path=%2Fws#WebSocketgRPC ที่มีชื่อบริการ TrojanGun:
trojan://secret@trojan.example.com:443?security=tls&type=grpc&serviceName=TrojanGun#gRPCHTTP/2:
trojan://secret@trojan.example.com:443?security=tls&type=http&host=cdn.example.com&path=%2Fh2#HTTP2HTTP Upgrade:
trojan://secret@trojan.example.com:443?security=tls&type=httpupgrade&host=cdn.example.com&path=%2Fup#UpgradeREALITY ที่ยืม www.example.com:
trojan://secret@trojan.example.com:443?security=reality&sni=www.example.com&pbk=Z84J2IelR9ch3k8VtlVhhs5ycBUlXA7wHBWcBrjqnAw&sid=0123abcd&fp=chrome#REALITY