เซิร์ฟเวอร์ ShadowsocksR (SSR) ถูกอธิบายด้วยการตั้งค่าสามอย่าง ได้แก่ การเข้ารหัส (cipher) โปรโตคอล (protocol) และวิธี obfs (การอำพราง) Potatso เชื่อมต่อกับเซิร์ฟเวอร์เมื่อรองรับทั้งสามอย่างเท่านั้น ใช้ตารางด้านล่างเพื่อตรวจสอบการตั้งค่าของเซิร์ฟเวอร์ ตามที่ผู้ให้บริการแจ้งหรือในลิงก์ ssr:// ของเซิร์ฟเวอร์
คุณเพิ่มเซิร์ฟเวอร์ SSR ได้ด้วยตนเอง ด้วยลิงก์ ssr:// หรือจากการสมัครรับ Clash หรือ Mihomo Potatso เก็บโปรโตคอลและ obfs ตามที่ผู้ให้บริการของคุณระบุ รวมถึงรูปแบบ _compatible
การเข้ารหัส (Cipher)
| การเข้ารหัส | รองรับ |
|---|---|
none |
✅ |
aes-128-ctr, aes-192-ctr, aes-256-ctr |
✅ |
aes-128-cfb, aes-192-cfb, aes-256-cfb |
✅ |
camellia-128-cfb, camellia-192-cfb, camellia-256-cfb |
✅ |
chacha20, chacha20-ietf |
✅ |
salsa20 |
✅ |
bf-cfb |
✅ |
rc4-md5 |
✅ |
cast5-cfb, des-cfb, idea-cfb, rc2-cfb, seed-cfb |
✅ |
rc4-md5-6, table |
✅ |
xchacha20, xsalsa20 |
❌ |
การเข้ารหัส AEAD เช่น aes-256-gcm เป็นการเข้ารหัสของ Shadowsocks ไม่ใช่ของ ShadowsocksR หากผู้ให้บริการของคุณระบุการเข้ารหัสนั้นสำหรับเซิร์ฟเวอร์ SSR ให้ตรวจสอบว่าเซิร์ฟเวอร์นั้นเป็นเซิร์ฟเวอร์ Shadowsocks จริงหรือไม่
โปรโตคอล
| โปรโตคอล | รองรับ | หลายผู้ใช้ |
|---|---|---|
origin |
✅ | — |
verify_deflate |
✅ | — |
auth_sha1, auth_sha1_v2 |
เลิกใช้แล้ว (ไม่ได้ทดสอบกับเซิร์ฟเวอร์จริง) | — |
auth_sha1_v4 |
✅ | — |
auth_sha1_v4_compatible |
✅ | — |
auth_aes128_md5 |
✅ | ✅ |
auth_aes128_sha1 |
✅ | ✅ |
auth_chain_a |
✅ | ✅ |
auth_chain_b |
✅ | ✅ |
verify_simple, verify_sha1, auth_simple |
เลิกใช้แล้ว (นำเข้าเป็น origin) |
— |
เซิร์ฟเวอร์ หลายผู้ใช้ แบ่งหนึ่งพอร์ตให้หลายผู้ใช้ สำหรับเซิร์ฟเวอร์เหล่านี้ ให้ตั้งพารามิเตอร์โปรโตคอล (protocol-param หรือ protoparam ในลิงก์ ssr://) เป็น uid:key โดยใช้ ID ผู้ใช้และคีย์จากผู้ให้บริการของคุณ
เซิร์ฟเวอร์ ShadowsocksR ปัจจุบันไม่มี auth_sha1 และ auth_sha1_v2 อีกต่อไป Potatso ยังเชื่อมต่อด้วยโปรโตคอลเหล่านี้ได้ แต่ยังไม่ได้ทดสอบกับเซิร์ฟเวอร์จริง จึงควรเลือกโปรโตคอลอื่นหากผู้ให้บริการของคุณมี
Potatso เวอร์ชันเก่าแสดง verify_simple, verify_sha1 และ auth_simple ในรายการ แต่เชื่อมต่อด้วย origin เสมอ Potatso ยังนำเข้าโปรโตคอลเหล่านี้เป็น origin และแสดงคำเตือนเมื่อทำเช่นนั้น
Obfs
| Obfs | รองรับ |
|---|---|
plain |
✅ |
http_simple, http_simple_compatible |
✅ |
http_post, http_post_compatible |
✅ |
tls1.2_ticket_auth, tls1.2_ticket_auth_compatible |
✅ |
tls1.2_ticket_fastauth, tls1.2_ticket_fastauth_compatible |
✅ |
random_head, random_head_compatible |
✅ เลิกใช้แล้ว |
ชื่อที่ลงท้าย _compatible หมายความว่าเซิร์ฟเวอร์ยอมรับไคลเอนต์ที่ไม่ใช้การอำพรางด้วย Potatso ใช้วิธี obfs ตามชื่อที่ระบุ คุณจึงคงชื่อที่ผู้ให้บริการให้มาไว้ได้
สำหรับวิธีแบบ HTTP พารามิเตอร์ obfs (obfs-param หรือ obfsparam ในลิงก์ ssr://) กำหนดส่วนหัว Host อาจเป็นโฮสต์เดียว รายการโฮสต์คั่นด้วยจุลภาค หรือชุดส่วนหัวที่กำหนดเอง เมื่อว่าง Potatso ใช้ที่อยู่ของเซิร์ฟเวอร์ สำหรับวิธีแบบ TLS พารามิเตอร์นี้กำหนดชื่อเซิร์ฟเวอร์ที่ส่งใน TLS handshake
UDP
UDP ใช้ได้กับทุกโปรโตคอลที่รองรับ และเปิดไว้โดยค่าเริ่มต้นสำหรับเซิร์ฟเวอร์ SSR ปิดในการตั้งค่าของเซิร์ฟเวอร์หากเซิร์ฟเวอร์ของคุณไม่รีเลย์ UDP
ลิงก์ ssr://
ลิงก์ ssr:// เก็บเซิร์ฟเวอร์ทั้งตัวไว้ในบรรทัดเดียว ทุกอย่างหลัง ssr:// เข้ารหัสด้วย Base64:
ssr://base64(host:port:protocol:cipher:obfs:base64(password)/?obfsparam=…&protoparam=…&remarks=…)ส่วนก่อน /? คือหกฟิลด์คั่นด้วยเครื่องหมายทวิภาค:
| ฟิลด์ | คำอธิบาย |
|---|---|
host |
ที่อยู่เซิร์ฟเวอร์ ใส่ที่อยู่ IPv6 ในวงเล็บเหลี่ยม เช่น [2001:db8::1] |
port |
พอร์ตเซิร์ฟเวอร์ |
protocol |
หนึ่งในโปรโตคอลข้างต้น หากว่าง Potatso ใช้ origin |
cipher |
หนึ่งในการเข้ารหัสข้างต้น จำเป็น |
obfs |
หนึ่งในวิธี obfsข้างต้น หากว่าง Potatso ใช้ plain |
password |
รหัสผ่าน เข้ารหัสด้วย Base64 |
ส่วนหลัง /? เป็นตัวเลือก แต่ละค่าเข้ารหัสด้วย Base64:
| พารามิเตอร์ | คำอธิบาย |
|---|---|
obfsparam |
พารามิเตอร์ obfs เช่น Host สำหรับ http_simple |
protoparam |
พารามิเตอร์โปรโตคอล เช่น uid:key สำหรับเซิร์ฟเวอร์หลายผู้ใช้ |
remarks |
ชื่อของเซิร์ฟเวอร์ใน Potatso |
Potatso ไม่สนใจพารามิเตอร์อื่น เช่น group, udpport และ uot และ #name ที่ท้ายลิงก์ UDP ไม่ได้เป็นส่วนของลิงก์: เปิดไว้โดยค่าเริ่มต้น และคุณปิดได้หลังนำเข้า
Potatso ยอมรับ Base64 มาตรฐานและแบบ URL-safe ทั้งแบบมีและไม่มีการเติม = ชื่อไม่แยกตัวพิมพ์เล็กใหญ่ ดังนั้น AUTH_CHAIN_A ใช้ได้เหมือน auth_chain_a เมื่อ Potatso แชร์เซิร์ฟเวอร์ จะเขียน Base64 แบบ URL-safe โดยไม่เติม =
ตัวอย่าง
แต่ละตัวอย่างแสดงข้อความที่ถอดรหัสแล้วก่อน แล้วจึงตามด้วยลิงก์ที่จะนำเข้า รหัสผ่านในทุกตัวอย่างคือ secret
เซิร์ฟเวอร์พื้นฐานที่ไม่มีปลั๊กอินโปรโตคอลและไม่มีการอำพราง:
ssr.example.com:8388:origin:aes-256-cfb:plain:c2VjcmV0/?remarks=QmFzaWMssr://c3NyLmV4YW1wbGUuY29tOjgzODg6b3JpZ2luOmFlcy0yNTYtY2ZiOnBsYWluOmMyVmpjbVYwLz9yZW1hcmtzPVFtRnphV00การอำพราง TLS โดยใช้ cdn.example.com เป็นชื่อเซิร์ฟเวอร์:
ssr.example.com:443:auth_aes128_md5:chacha20-ietf:tls1.2_ticket_auth:c2VjcmV0/?obfsparam=Y2RuLmV4YW1wbGUuY29t&remarks=VExTIG9iZnMssr://c3NyLmV4YW1wbGUuY29tOjQ0MzphdXRoX2FlczEyOF9tZDU6Y2hhY2hhMjAtaWV0Zjp0bHMxLjJfdGlja2V0X2F1dGg6YzJWamNtVjAvP29iZnNwYXJhbT1ZMlJ1TG1WNFlXMXdiR1V1WTI5dCZyZW1hcmtzPVZFeFRJRzlpWm5Nเซิร์ฟเวอร์หลายผู้ใช้: ผู้ใช้ 2173 กับคีย์ userkey การเข้ารหัส none และการอำพราง HTTP:
ssr.example.com:8080:auth_chain_a:none:http_simple:c2VjcmV0/?obfsparam=Y2RuLmV4YW1wbGUuY29t&protoparam=MjE3Mzp1c2Vya2V5&remarks=TXVsdGktdXNlcgssr://c3NyLmV4YW1wbGUuY29tOjgwODA6YXV0aF9jaGFpbl9hOm5vbmU6aHR0cF9zaW1wbGU6YzJWamNtVjAvP29iZnNwYXJhbT1ZMlJ1TG1WNFlXMXdiR1V1WTI5dCZwcm90b3BhcmFtPU1qRTNNenAxYzJWeWEyVjUmcmVtYXJrcz1UWFZzZEdrdGRYTmxjZwเซิร์ฟเวอร์ที่มีที่อยู่ IPv6:
[2001:db8::1]:8388:auth_sha1_v4:rc4-md5:http_post:c2VjcmV0/?remarks=SVB2Ngssr://WzIwMDE6ZGI4OjoxXTo4Mzg4OmF1dGhfc2hhMV92NDpyYzQtbWQ1Omh0dHBfcG9zdDpjMlZqY21WMC8_cmVtYXJrcz1TVkIyTmc