Skip to content

Shadowsocks

การเข้ารหัส ปลั๊กอิน ลิงก์ และฟีเจอร์ของ Shadowsocks ที่ Potatso รองรับ

Updated ดูเป็น Markdown

เซิร์ฟเวอร์ Shadowsocks ถูกอธิบายด้วย การเข้ารหัส (cipher) และ รหัสผ่าน และอาจมี ปลั๊กอิน ที่ช่วยอำพรางการเชื่อมต่อ Potatso เชื่อมต่อกับเซิร์ฟเวอร์เมื่อรองรับการเข้ารหัส และปลั๊กอินหากมี ใช้ตารางด้านล่างเพื่อตรวจสอบการตั้งค่าของเซิร์ฟเวอร์ ตามที่ผู้ให้บริการแจ้งหรือในลิงก์ ss:// ของเซิร์ฟเวอร์

คุณเพิ่มเซิร์ฟเวอร์ Shadowsocks ได้ด้วยตนเอง ด้วยลิงก์ ss:// หรือโดยการนำเข้า:

  • การสมัครรับ Clash หรือ Mihomo
  • การกำหนดค่าออนไลน์ SIP008 จากไฟล์หรือลิงก์
  • config.json ของ shadowsocks-rust หรือ shadowsocks-libev
  • การกำหนดค่า Surge หรือการกำหนดค่า Xray หรือ V2Ray

การเข้ารหัส (Cipher)

เลือกการเข้ารหัสแบบ 2022 ก่อนหากเซิร์ฟเวอร์ของคุณมี แล้วจึงเลือกแบบ AEAD การเข้ารหัสแบบ Stream มีจุดอ่อนที่เป็นที่รู้จัก: ใช้เฉพาะกับเซิร์ฟเวอร์ที่ไม่มีตัวเลือกอื่น

การเข้ารหัส ชนิด รองรับ
2022-blake3-aes-128-gcm, 2022-blake3-aes-256-gcm 2022 ✅ ใช้กับหลายผู้ใช้ได้
2022-blake3-chacha20-poly1305, 2022-blake3-chacha8-poly1305 2022 ✅
aes-128-gcm, aes-192-gcm, aes-256-gcm AEAD ✅
chacha20-ietf-poly1305, xchacha20-ietf-poly1305 AEAD ✅
aes-128-ccm, aes-256-ccm, aes-128-gcm-siv, aes-256-gcm-siv AEAD ✅
sm4-gcm, sm4-ccm AEAD ✅
aes-128-ctr, aes-192-ctr, aes-256-ctr Stream ✅
aes-128-cfb, aes-192-cfb, aes-256-cfb (เขียนเป็น -cfb128 ได้เช่นกัน) Stream ✅
aes-128-cfb1, aes-192-cfb1, aes-256-cfb1 Stream ✅
aes-128-cfb8, aes-192-cfb8, aes-256-cfb8 Stream ✅
aes-128-ofb, aes-192-ofb, aes-256-ofb Stream ✅
camellia-128-ctr, camellia-192-ctr, camellia-256-ctr Stream ✅
camellia-128-cfb, camellia-192-cfb, camellia-256-cfb (เขียนเป็น -cfb128 ได้เช่นกัน) Stream ✅
camellia-128-cfb1, camellia-192-cfb1, camellia-256-cfb1 Stream ✅
camellia-128-cfb8, camellia-192-cfb8, camellia-256-cfb8 Stream ✅
camellia-128-ofb, camellia-192-ofb, camellia-256-ofb Stream ✅
chacha20-ietf, chacha20, salsa20 Stream ✅
bf-cfb, rc4-md5, rc4, table Stream ✅
none (เขียนเป็น plain ได้เช่นกัน) ไม่เข้ารหัส ✅
cast5-cfb, des-cfb, idea-cfb, rc2-cfb, seed-cfb, rc4-md5-6 Stream ❌ เฉพาะ ShadowsocksR
xchacha20, xsalsa20 Stream ❌

ชื่อไม่แยกตัวพิมพ์เล็กใหญ่ ดังนั้น AES-256-GCM ใช้ได้เหมือน aes-256-gcm

none ส่งทราฟฟิกของคุณโดยไม่เข้ารหัส ใช้เฉพาะกับปลั๊กอินที่เข้ารหัสการเชื่อมต่อเอง เช่น v2ray-plugin ร่วมกับ TLS

การเข้ารหัสที่รองรับทุกแบบได้รับการทดสอบกับเซิร์ฟเวอร์ Shadowsocks จริงอย่างน้อยหนึ่งตัว: shadowsocks-rust, sing-box หรือเซิร์ฟเวอร์ Python ดั้งเดิม ในบรรดาการเข้ารหัส AEAD ข้างต้น มีเพียงเซิร์ฟเวอร์ shadowsocks-rust ที่มี aes-*-ccm, aes-*-gcm-siv และ sm4-* และมีผู้ให้บริการไม่กี่รายที่ใช้

คีย์ 2022

การเข้ารหัสแบบ 2022 (SIP022) ไม่ใช้รหัสผ่าน แต่ใช้คีย์: ไบต์สุ่มที่เข้ารหัสด้วย Base64 ตามความยาวที่การเข้ารหัสนั้นต้องการ 2022-blake3-aes-128-gcm ต้องใช้คีย์ 16 ไบต์ และการเข้ารหัส 2022 อื่นต้องใช้คีย์ 32 ไบต์ ใช้คีย์ตรงตามที่เซิร์ฟเวอร์ของคุณมี

Potatso ไม่เชื่อมต่อด้วยคีย์ที่ความยาวไม่ถูกต้อง หรือด้วยรหัสผ่านที่ไม่ใช่ Base64 หากต้องการสร้างคีย์ใหม่สำหรับเซิร์ฟเวอร์ของคุณ ให้รัน openssl rand -base64 16 สำหรับ 2022-blake3-aes-128-gcm หรือ openssl rand -base64 32 สำหรับการเข้ารหัส 2022 อื่น

เซิร์ฟเวอร์หลายผู้ใช้

เซิร์ฟเวอร์ 2022 แบ่งหนึ่งพอร์ตให้หลายผู้ใช้ได้ (SIP023) ผู้ใช้แต่ละคนมีคีย์ของตัวเอง สำหรับเซิร์ฟเวอร์เหล่านี้ ให้ตั้งรหัสผ่านเป็นคีย์ของเซิร์ฟเวอร์ตามด้วยคีย์ผู้ใช้ของคุณ คั่นด้วยเครื่องหมายทวิภาค:

server-key:user-key

เฉพาะ 2022-blake3-aes-128-gcm และ 2022-blake3-aes-256-gcm เท่านั้นที่รองรับเซิร์ฟเวอร์หลายผู้ใช้

ปลั๊กอิน

ปลั๊กอินห่อหุ้มการเชื่อมต่อ Shadowsocks เพื่อให้ตรวจจับได้ยากขึ้น Potatso มีปลั๊กอินเหล่านี้ในตัว จึงไม่ต้องติดตั้งอะไรเพิ่ม

ปลั๊กอิน ชื่อปลั๊กอิน รองรับ UDP
Simple Obfs obfs-local, simple-obfs, obfs ✅ obfs=http และ obfs=tls ส่งไปยังเซิร์ฟเวอร์โดยไม่ผ่านปลั๊กอิน
v2ray-plugin v2ray-plugin ✅ WebSocket ทั้งแบบมีและไม่มี TLS ไม่รองรับโหมด QUIC ❌
gost-plugin gost-plugin ✅ WebSocket ทั้งแบบมีและไม่มี TLS ❌
ShadowTLS shadow-tls ✅ เวอร์ชัน 1, 2 และ 3 ❌
Restls restls ✅ ❌
JLS jls ✅ ❌

Potatso ไม่นำเข้าเซิร์ฟเวอร์ที่ต้องใช้ปลั๊กอินอื่น:

  • Cloak, xray-plugin และปลั๊กอินอื่นเป็นโปรแกรมที่อุปกรณ์ของคุณต้องรันควบคู่กับ Potatso ซึ่ง iOS ไม่อนุญาต
  • kcptun และ ech-tls-tunnel ยังไม่มีใน Potatso

ตั้งค่าปลั๊กอิน

ในการตั้งค่าของเซิร์ฟเวอร์ ให้เลือกปลั๊กอินใต้ ปลั๊กอิน แล้วป้อนตัวเลือกของปลั๊กอินใน พารามิเตอร์ปลั๊กอิน ตัวเลือกคือคู่ key=value คั่นด้วยเซมิโคลอน ดังตัวอย่าง Simple Obfs นี้:

obfs=tls;obfs-host=cdn.example.com

คีย์เดี่ยวๆ เช่น tls เปิดตัวเลือกนั้น ละตัวเลือกที่คุณไม่ต้องการไว้ได้ ตารางด้านล่างระบุค่าเริ่มต้นของแต่ละตัว

เมื่อคุณนำเข้าเซิร์ฟเวอร์ Potatso จะตั้งค่าปลั๊กอินและตัวเลือกของมันให้:

  • ลิงก์ ss:// มีสิ่งเหล่านี้ในพารามิเตอร์ plugin ต่อจากชื่อปลั๊กอิน: simple-obfs;obfs=tls;obfs-host=cdn.example.com
  • การสมัครรับ Clash หรือ Mihomo มีสิ่งเหล่านี้ใน plugin และ plugin-opts
  • การกำหนดค่า SIP008 หรือ config.json ของ shadowsocks-rust หรือ shadowsocks-libev มีสิ่งเหล่านี้ใน plugin และ plugin_opts

ตัวเลือกเหล่านี้เหมือนกันในทุกรูปแบบ หากผู้ให้บริการของคุณแสดงเป็นบรรทัดละหนึ่งตัวเลือก เช่นใน plugin-opts ของ Clash ให้เขียนแต่ละตัวเป็น key=value แล้วเชื่อมด้วยเซมิโคลอน

ตัวเลือกปลั๊กอิน

Simple Obfs

ตัวเลือก คำอธิบาย
obfs จำเป็น http หรือ tls
obfs-host ส่วนหัว Host (http) หรือชื่อเซิร์ฟเวอร์ที่ส่งใน TLS handshake (tls) เมื่อว่าง Potatso ใช้ที่อยู่ของเซิร์ฟเวอร์
obfs-uri เฉพาะ http เส้นทางของคำขอ ค่าเริ่มต้น /
http-method เฉพาะ http วิธีของคำขอ ค่าเริ่มต้น GET

v2ray-plugin

ตัวเลือก คำอธิบาย
mode websocket ซึ่งเป็นค่าเริ่มต้น ไม่รองรับโหมด QUIC
tls เชื่อมต่อผ่าน TLS ปิดไว้โดยค่าเริ่มต้น
host ส่วนหัว Host และชื่อเซิร์ฟเวอร์สำหรับ TLS เมื่อว่าง Potatso ใช้ที่อยู่ของเซิร์ฟเวอร์
path เส้นทาง WebSocket ค่าเริ่มต้น /
mux การมัลติเพล็กซ์ ปิดไว้โดยค่าเริ่มต้น เปิดเฉพาะเมื่อเซิร์ฟเวอร์ของคุณใช้
skip-cert-verify ยอมรับใบรับรองเซิร์ฟเวอร์ใดก็ได้ ใช้เฉพาะกับเซิร์ฟเวอร์ที่คุณเชื่อถือ
header ส่วนหัวคำขอเพิ่มเติม ในรูป header=Name:Value ใส่ซ้ำเพื่อเพิ่มส่วนหัวอื่น

gost-plugin

ตัวเลือก คำอธิบาย
mode จำเป็น websocket
tls เชื่อมต่อผ่าน TLS ปิดไว้โดยค่าเริ่มต้น
host ส่วนหัว Host และชื่อเซิร์ฟเวอร์สำหรับ TLS ค่าเริ่มต้น bing.com เหมือนใน gost
path เส้นทาง WebSocket ค่าเริ่มต้น /
mux การมัลติเพล็กซ์ เปิดไว้โดยค่าเริ่มต้น
skip-cert-verify ยอมรับใบรับรองเซิร์ฟเวอร์ใดก็ได้ ใช้เฉพาะกับเซิร์ฟเวอร์ที่คุณเชื่อถือ
fingerprint ลายนิ้วมือ SHA-256 ของใบรับรองเซิร์ฟเวอร์ เพื่อยอมรับเฉพาะใบรับรองนั้น
header ส่วนหัวคำขอเพิ่มเติม ในรูป header=Name:Value ใส่ซ้ำเพื่อเพิ่มส่วนหัวอื่น

ShadowTLS

ตัวเลือก คำอธิบาย
host จำเป็น ชื่อเซิร์ฟเวอร์ของเว็บไซต์พราง เช่น www.example.com
version จำเป็น 1, 2 หรือ 3
password รหัสผ่าน เวอร์ชัน 2 และ 3 ต้องใช้
alpn รายการ ALPN คั่นด้วยจุลภาค ค่าเริ่มต้น h2,http/1.1
skip-cert-verify ยอมรับใบรับรองของเว็บไซต์พรางใดก็ได้

Restls

ตัวเลือก คำอธิบาย
host จำเป็น ชื่อเซิร์ฟเวอร์ของเว็บไซต์พราง
password จำเป็น รหัสผ่าน
version-hint จำเป็น tls13 หรือ tls12 ตามที่เซิร์ฟเวอร์ของคุณตั้งไว้
restls-script สคริปต์เรคคอร์ด หากผู้ให้บริการของคุณให้มา

JLS

ตัวเลือก คำอธิบาย
host จำเป็น ชื่อเซิร์ฟเวอร์ของเว็บไซต์พราง
username จำเป็น ชื่อผู้ใช้
password จำเป็น รหัสผ่าน
alpn รายการ ALPN คั่นด้วยจุลภาค ค่าเริ่มต้น h2,http/1.1

Potatso ไม่เชื่อมต่อกับเซิร์ฟเวอร์เมื่อขาดตัวเลือกที่จำเป็นหรือค่าไม่ถูกต้อง

UDP

UDP เปิดไว้โดยค่าเริ่มต้นสำหรับเซิร์ฟเวอร์ Shadowsocks และใช้ได้กับทุกการเข้ารหัสที่รองรับ ปิดในการตั้งค่าของเซิร์ฟเวอร์หากเซิร์ฟเวอร์ของคุณไม่รีเลย์ UDP

UDP ไม่ถูกส่งผ่านปลั๊กอิน ดังนั้นกับปลั๊กอินอื่นนอกจาก Simple Obfs เซิร์ฟเวอร์จะรับส่งได้เฉพาะ TCP Potatso ไม่รองรับ UDP-over-TCP (udp-over-tcp หรือ uot ในลิงก์หรือการสมัครรับ) และไม่นำเข้าเซิร์ฟเวอร์ที่ต้องใช้

การรองรับฟีเจอร์

ฟีเจอร์ รองรับ
ลิงก์ ss:// ของ SIP002 ✅ รวมถึงรูปแบบ Base64 แบบเก่า
ปลั๊กอิน SIP003 เฉพาะปลั๊กอินในตัว
SIP003u (UDP ผ่านปลั๊กอิน) ❌
การเข้ารหัส AEAD (SIP004) ✅
การกำหนดค่าออนไลน์ SIP008 ✅
การเข้ารหัส 2022 ของ SIP022 ✅ TCP และ UDP
ส่วนหัวระบุตัวตนหลายผู้ใช้ของ SIP023 ✅ สำหรับการเข้ารหัส AES 2022
การเข้ารหัสแบบ Stream ✅ ดูการเข้ารหัส
UDP-over-TCP ❌
TCP Fast Open, MPTCP ❌

ฟีเจอร์บางอย่างของ shadowsocks-rust เป็นการตั้งค่าของโปรแกรมไคลเอนต์ของมันเอง sslocal และ Potatso ทำงานเดียวกันนี้ในแบบของตัวเอง:

  • เซิร์ฟเวอร์ SOCKS5, HTTP, tunnel, redir, DNS และ TUN ในเครื่อง: Potatso จับทราฟฟิกของอุปกรณ์คุณเอง
  • รายการควบคุมการเข้าถึง (ACL): ใช้กฎในโปรไฟล์ของคุณ
  • การเลือกเซิร์ฟเวอร์ที่เร็วที่สุดจากหลายเซิร์ฟเวอร์: ใช้กลุ่มพร็อกซีในโปรไฟล์ของคุณ

ลิงก์ ss:// เก็บเซิร์ฟเวอร์ทั้งตัวไว้ในบรรทัดเดียว (SIP002):

ss://userinfo@host:port/?plugin=…#name
ส่วน คำอธิบาย
userinfo การเข้ารหัสและรหัสผ่านในรูป cipher:password เข้ารหัสด้วย Base64 หรือ percent-encoding ก็ได้ การเข้ารหัส 2022 ต้องใช้แบบ percent-encoding
host ที่อยู่เซิร์ฟเวอร์ ใส่ที่อยู่ IPv6 ในวงเล็บเหลี่ยม เช่น [2001:db8::1]
port พอร์ตเซิร์ฟเวอร์
plugin ไม่บังคับ ชื่อปลั๊กอินและตัวเลือกของมัน คั่นด้วยเซมิโคลอนและเข้ารหัสแบบ percent เช่น simple-obfs;obfs=tls;obfs-host=cdn.example.com
name ไม่บังคับ ชื่อของเซิร์ฟเวอร์ใน Potatso

Potatso ยังนำเข้ารูปแบบเก่า ซึ่งทุกอย่างก่อน # เข้ารหัสด้วย Base64:

ss://base64(cipher:password@host:port)#name

Potatso ยอมรับ Base64 มาตรฐานและแบบ URL-safe ทั้งแบบมีและไม่มีการเติม = เมื่อ Potatso แชร์เซิร์ฟเวอร์ จะเสนอรูปแบบ Base64 และ percent-encoded ของ SIP002 และรูปแบบเก่า

แต่ละตัวอย่างแสดงลิงก์ที่จะนำเข้า รหัสผ่านในตัวอย่าง AEAD คือ secret

เซิร์ฟเวอร์พื้นฐานที่ใช้ aes-256-gcm:

ss://YWVzLTI1Ni1nY206c2VjcmV0@ss.example.com:8388#Basic

เซิร์ฟเวอร์ 2022 ที่ใช้คีย์ 16 ไบต์ MTIzNDU2Nzg5MDEyMzQ1Ng==:

ss://2022-blake3-aes-128-gcm:MTIzNDU2Nzg5MDEyMzQ1Ng%3D%3D@ss.example.com:8388#2022

เซิร์ฟเวอร์ 2022 หลายผู้ใช้ โดยคีย์เซิร์ฟเวอร์และคีย์ผู้ใช้คั่นด้วยเครื่องหมายทวิภาค (%3A):

ss://2022-blake3-aes-256-gcm:MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI%3D%3AYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU%3D@ss.example.com:8388#Multi-user

Simple Obfs กับ TLS โดยใช้ cdn.example.com เป็นชื่อเซิร์ฟเวอร์:

ss://YWVzLTI1Ni1nY206c2VjcmV0@ss.example.com:443/?plugin=simple-obfs%3Bobfs%3Dtls%3Bobfs-host%3Dcdn.example.com#Obfs

รูปแบบเก่าของเซิร์ฟเวอร์พื้นฐาน:

ss://YWVzLTI1Ni1nY206c2VjcmV0QHNzLmV4YW1wbGUuY29tOjgzODg#Legacy

เซิร์ฟเวอร์ที่มีที่อยู่ IPv6:

ss://YWVzLTI1Ni1nY206c2VjcmV0@[2001:db8::1]:8388#IPv6
การนำทาง

Type to search…

↑↓ navigate↵ selectEsc close