Client Shadowsocks: cách chọn, cài đặt và sử dụng trong năm 2026
Nên dùng client Shadowsocks nào năm 2026 trên Windows, macOS, Linux, Android và iOS, cách nhập link ss://, chọn thuật toán mã hóa và kiểm tra đường hầm.
Trong bài này 9 mục
- Client Shadowsocks thực sự làm gì
- Những client Shadowsocks tốt nhất năm 2026
- Bạn cần gì từ máy chủ
- Cách cài đặt client Shadowsocks
- Các chế độ định tuyến: thứ gì thực sự đi qua đường hầm
- Plugin và mức độ dễ bị phát hiện của Shadowsocks năm 2026
- Khắc phục sự cố
- So sánh Shadowsocks, proxy SOCKS5 và VPN
- Câu hỏi thường gặp
Client Shadowsocks là ứng dụng trên thiết bị của bạn, có nhiệm vụ kết nối tới máy chủ Shadowsocks và đưa lưu lượng của bạn đi qua một đường hầm được mã hóa. Bạn cần nó mỗi khi ai đó gửi cho bạn một link ss://, một mã QR hoặc thông tin máy chủ. Việc chọn ứng dụng nào cũng quan trọng hơn bạn nghĩ: một nửa số client mà các hướng dẫn cũ giới thiệu đã nhiều năm không được cập nhật, và một số còn hoàn toàn không làm việc được với máy chủ hiện đại.
Với hầu hết mọi người, câu trả lời khá ngắn gọn. Outline là lựa chọn miễn phí dễ dùng nhất trên mọi nền tảng, shadowsocks-android cho bạn nhiều quyền kiểm soát hơn trên Android, còn sslocal của shadowsocks-rust phục vụ Linux, máy chủ và router. Dưới đây, chúng ta sẽ xem client nào vẫn còn được phát triển trong năm 2026, tách một link ss:// ra từng phần, cài đặt trên từng nền tảng và cuối cùng xác nhận rằng lưu lượng của bạn thật sự đi ra qua máy chủ. Lý do là biểu tượng “đã kết nối” màu xanh tự nó không chứng minh được điều đó.

Client Shadowsocks thực sự làm gì#
Shadowsocks là một giao thức proxy có mã hóa. Nó xuất hiện lần đầu vào năm 2012 như một cách để truy cập các trang web không khả dụng ở một số khu vực, và hiện là một trong những giao thức được triển khai rộng rãi nhất cho các mạng bị hạn chế. Một hệ thống Shadowsocks luôn có hai nửa: máy chủ đặt trong mạng không bị hạn chế và client trên thiết bị của bạn.
Client làm ba việc:
- Mở một proxy cục bộ. Client lắng nghe ngay trên máy của bạn, thường dưới dạng proxy SOCKS5 tại
127.0.0.1:1080. Một số client còn mở thêm proxy HTTP hoặc một giao diện VPN cho toàn hệ thống. - Mã hóa và chuyển tiếp. Mọi kết nối mà ứng dụng của bạn gửi tới proxy cục bộ đó đều được mã hóa bằng khóa dùng chung rồi gửi tiếp đến máy chủ Shadowsocks.
- Quyết định thứ gì đi qua đường hầm. Tùy theo chế độ, đó có thể là toàn bộ lưu lượng, chỉ lưu lượng khớp với quy tắc, hoặc chỉ những ứng dụng mà bạn trỏ tới client.
Ở đầu bên kia, máy chủ giải mã lưu lượng và mở kết nối thật tới trang web. Trang web sẽ thấy địa chỉ IP của máy chủ thay vì IP của bạn, còn nhà mạng của bạn chỉ thấy một luồng dữ liệu mã hóa tới một máy chủ duy nhất, không có bước bắt tay proxy nào lộ ra.
Browser / app
│ plain SOCKS5 or HTTP (only on your device)
▼
Shadowsocks client 127.0.0.1:1080
│ encrypted Shadowsocks stream
▼
Shadowsocks server (your VPS or provider)
│ normal HTTPS
▼
Website
Có hai quan niệm phổ biến về Shadowsocks nhưng lại sai:
- Nó không phải proxy SOCKS5. Client nói chuyện với ứng dụng của bạn bằng SOCKS5, nhưng kết nối tới máy chủ dùng một giao thức khác, có mã hóa. Vì vậy, bạn không thể trỏ client Shadowsocks tới một máy chủ SOCKS5 thông thường, và chiều ngược lại cũng không được.
- Mặc định nó không phải VPN đầy đủ. Ở chế độ cơ bản, chỉ những ứng dụng dùng proxy cục bộ mới đi qua đường hầm, còn ứng dụng bỏ qua cài đặt proxy sẽ kết nối trực tiếp. Muốn bao phủ toàn bộ thiết bị, bạn cần chuyển client sang chế độ VPN (TUN).
Những client Shadowsocks tốt nhất năm 2026#
Nhiều danh sách vẫn giới thiệu những client đã bị bỏ rơi từ lâu, nên chúng tôi đã kiểm tra lịch sử phát hành của từng client vào tháng 10 năm 2026. Bảng dưới đây cho thấy tình trạng hiện tại của chúng.
Client chính thức và client chỉ hỗ trợ Shadowsocks#
| Client | Nền tảng | Thuật toán Shadowsocks 2022 | Plugin | Tình trạng năm 2026 |
|---|---|---|---|---|
| Outline Client | Windows, macOS, Linux, Android, iOS, ChromeOS | Không, chỉ thuật toán cổ điển | Không | Đang được phát triển tích cực; do tổ chức phi lợi nhuận Outline Foundation vận hành từ tháng 1 năm 2026 |
| shadowsocks-android | Android | Có | Có, dưới dạng ứng dụng riêng | Vẫn được duy trì trên GitHub (v5.3.4); trang Google Play không được cập nhật từ năm 2021 |
| ShadowsocksX-NG | macOS | Không | Có | Bản phát hành cuối là v1.10.3 vào tháng 10 năm 2024; chạy native trên Apple Silicon |
shadowsocks-rust (sslocal) | Linux, macOS, Windows, router | Có | Có | Bản triển khai tham chiếu, phát hành đều đặn (v1.25.0) |
| Shadowsocks for Windows | Windows | Không | Có | Vẫn chạy được, nhưng bản phát hành cuối (4.4.1.0) là từ tháng 2 năm 2022 |
| shadowsocks-libev, nay là shadowsocks-c | Linux, router | Chưa có trong bản phát hành nào | Có | Được hồi sinh dưới tên mới; v3.3.6 ra mắt vào tháng 2 năm 2026 |
| shadowsocks-qt5 | Linux, Windows | Không | Không | Đã bị bỏ rơi; hãy dùng sslocal hoặc một ứng dụng đa giao thức thay thế |
Python shadowsocks (pip) | Mọi nền tảng | Không | Không | Đã bị bỏ rơi từ nhiều năm trước, đừng dùng |
| ShadowsocksR (SSR) | Nhiều nền tảng | Không | Không | Một bản fork đã chết, dùng giao thức riêng mà máy chủ hiện đại không chấp nhận |
Client đa giao thức có hỗ trợ cả Shadowsocks#
Nếu sau này bạn có thể cần đến VLESS, Trojan hoặc Hysteria, một ứng dụng duy nhất có thể xử lý tất cả chúng cùng với Shadowsocks:
- Máy tính: Clash Verge Rev, được xây dựng trên lõi mihomo, và v2rayN.
- Android: NekoBox, Hiddify và ứng dụng sing-box chính thức. NekoBox cập nhật chậm và trang Google Play của nó do bên thứ ba quản lý, vì vậy hãy cài từ GitHub.
- iOS: ứng dụng miễn phí sing-box MT, được tài liệu của sing-box dẫn link tới, và Potatso, vẫn được cập nhật trên App Store dù kho mã nguồn mở cũ của nó đã bị bỏ rơi. Các ứng dụng trả phí như Shadowrocket, Stash và Surge bổ sung thêm định tuyến theo quy tắc.
Cả sing-box lẫn mihomo đều hỗ trợ thuật toán Shadowsocks 2022. Chúng cũng tích hợp sẵn các plugin phổ biến, nên bạn không phải cài chúng thành chương trình riêng.
Lựa chọn nhanh#
- Dễ nhất trên mọi thiết bị: Outline. Bạn chỉ cần dán khóa và bấm Connect.
- Android, muốn toàn quyền kiểm soát: shadowsocks-android.
- Mac: ShadowsocksX-NG, hoặc Clash Verge Rev nếu bạn muốn có quy tắc định tuyến và thuật toán mới hơn.
- Linux, máy chủ và router:
sslocalcủa shadowsocks-rust. - iPhone: Outline nếu muốn miễn phí, hoặc một ứng dụng theo quy tắc nếu bạn cần định tuyến theo từng trang web, tính năng mà Outline không có.
Bạn cần gì từ máy chủ#
Dù bạn nhập tay hay nhập từ link, client Shadowsocks nào cũng cần đúng bốn giá trị giống nhau:
| Trường | Ví dụ | Ghi chú |
|---|---|---|
| Máy chủ | 203.0.113.10 | Địa chỉ IP hoặc tên miền |
| Cổng | 8388 | Bất kỳ cổng nào máy chủ đang lắng nghe; 443 là cổng hay dùng |
| Mật khẩu / khóa | Secret0 | Phải khớp chính xác với máy chủ |
| Thuật toán mã hóa (method) | chacha20-ietf-poly1305 | Phải khớp chính xác với máy chủ |
Sai thuật toán hoặc sai mật khẩu sẽ không hiện ra lỗi rõ ràng. Client vẫn kết nối, nhưng sau đó không trang nào tải được, và vì thế đây là lỗi cài đặt phổ biến nhất, bỏ xa các lỗi khác.
Cách đọc link ss://#
Nhà cung cấp và bảng điều khiển máy chủ thường đưa cho bạn cả bốn giá trị dưới dạng một link duy nhất theo định dạng SIP002, thường kèm theo mã QR:
ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTpTZWNyZXQw@203.0.113.10:8388#Frankfurt
| Thành phần | Ý nghĩa |
|---|---|
ss:// | Scheme mà mọi client Shadowsocks đều nhận ra |
Y2hhY2hh… | Thuật toán và mật khẩu, chacha20-ietf-poly1305:Secret0, được mã hóa bằng Base64 an toàn cho URL |
@203.0.113.10:8388 | Địa chỉ và cổng của máy chủ |
#Frankfurt | Nhãn hiển thị trong ứng dụng, không ảnh hưởng đến kết nối |
Bạn có thể giải mã phần ở giữa bằng echo Y2hhY2hh… | base64 -d để kiểm tra mình đã được cấp những gì. Link dành cho thuật toán Shadowsocks 2022 trông khác, vì đặc tả cấm dùng Base64 ở đó: thuật toán và khóa được viết dưới dạng văn bản thường, còn ký tự đặc biệt được mã hóa phần trăm. Nếu máy chủ dùng plugin, link sẽ có thêm tham số /?plugin= sau cổng.
Bạn cũng có thể gặp hai định dạng khác dùng để phân phối máy chủ qua một URL:
- URL đăng ký SIP008. Đây là một link HTTPS trả về danh sách máy chủ dạng JSON. Client sẽ tải lại nó theo định kỳ (shadowsocks-rust mặc định làm việc này mỗi giờ), nhờ vậy nhà cung cấp có thể đổi máy chủ mà không cần gửi link mới cho bạn.
- Khóa
ssconf://của Outline. Đây là khóa truy cập động của Outline. Ứng dụng đổissconf://thànhhttps://rồi lấy thông tin máy chủ hiện tại từ địa chỉ đó.
Hãy giữ những link này như giữ mật khẩu, vì bất kỳ ai có link đều dùng được máy chủ của bạn.
Nên chọn thuật toán mã hóa nào#
| Thuật toán | Họ | Có nên dùng? |
|---|---|---|
2022-blake3-aes-128-gcm, 2022-blake3-aes-256-gcm, 2022-blake3-chacha20-poly1305 | Shadowsocks 2022 | Có, nếu cả client lẫn máy chủ đều hỗ trợ. Khả năng chống tấn công phát lại (replay) đã được tích hợp sẵn. |
chacha20-ietf-poly1305 | AEAD cổ điển | Có. Mọi client tuân thủ đặc tả đều phải hỗ trợ thuật toán này, và đây là lựa chọn nhanh nhất trên điện thoại và router. |
aes-256-gcm, aes-128-gcm | AEAD cổ điển | Có. Nhanh nhất trên máy tính có AES phần cứng. |
aes-256-cfb, aes-128-ctr, rc4-md5, salsa20 và các thuật toán mã hóa dòng (stream cipher) khác | Cũ (legacy) | Không. Chúng không có kiểm tra toàn vẹn, và chính dự án gọi chúng là đã bị phá vỡ hoàn toàn. |
Mã hóa dòng không phải là rủi ro trên lý thuyết. Một cuộc tấn công công bố năm 2020 cho thấy ai đã ghi lại lưu lượng của bạn có thể khiến chính máy chủ giải mã nó, nếu máy chủ đó vẫn dùng thuật toán mã hóa dòng với cùng mật khẩu.
Shadowsocks 2022 cũng thay đổi cách dùng khóa, vì nó không chấp nhận mật khẩu tùy ý. Khóa phải là các byte ngẫu nhiên ở dạng Base64, 16 byte cho 2022-blake3-aes-128-gcm và 32 byte cho hai thuật toán còn lại, nên bạn tạo khóa bằng openssl rand -base64 16 hoặc openssl rand -base64 32. Giao thức còn kiểm tra dấu thời gian và coi mọi thông điệp lệch quá 30 giây là tấn công phát lại. Trên thực tế, điều đó có nghĩa là nếu đồng hồ thiết bị bị lệch nửa phút, mọi kết nối đều sẽ thất bại.
Cách cài đặt client Shadowsocks#
Trước tiên, hãy sao chép link ss:// của bạn. Mọi client dưới đây đều nhập được link này, giúp bạn khỏi phải gõ tay thuật toán và khóa.
Windows#
Đơn giản nhất là Outline:
- Tải Outline Client cho Windows từ trang web của Outline và cài đặt.
- Bấm Add server (thêm máy chủ), dán link
ss://hoặc khóa truy cập vào ô Paste access key here rồi xác nhận. - Bấm Connect và chấp thuận yêu cầu quyền mạng trong lần đầu. Từ đó trở đi, toàn bộ lưu lượng sẽ đi qua đường hầm.
Lựa chọn cổ điển là Shadowsocks for Windows:
- Tải file ZIP mới nhất từ trang releases trên GitHub của dự án và giải nén vào một thư mục bạn sẽ giữ lâu dài.
- Cài .NET Framework 4.8 và Visual C++ 2015 Redistributable (x86) nếu Windows chưa có, sau đó chạy
Shadowsocks.exe. - Nhấp chuột phải vào biểu tượng máy bay giấy ở khay hệ thống, mở Servers và chọn Import URL from Clipboard… (nhập URL từ clipboard), hoặc thêm máy chủ thủ công trong Edit Servers….
- Trong System Proxy, chọn PAC để chỉ gửi các trang trong danh sách qua đường hầm, hoặc Global để gửi tất cả.
macOS#
- Tải
ShadowsocksX-NG.dmgtừ trang releases trên GitHub và kéo ứng dụng vào thư mục Applications. Nếu macOS từ chối mở ứng dụng ở lần đầu, hãy cho phép trong Cài đặt hệ thống → Quyền riêng tư & Bảo mật. - Từ biểu tượng trên thanh menu, chọn Import Server URLs… hoặc Scan QR Code From Screen (quét mã QR trên màn hình). Bạn cũng có thể nhập giá trị thủ công trong Server Preferences….
- Bật Shadowsocks và chọn chế độ: Auto Mode By PAC, Global Mode hoặc Manual Mode. Ở chế độ cuối, chỉ những ứng dụng bạn tự cấu hình mới dùng đường hầm.
Linux (và router, máy chủ, Docker)#
Trên Linux, hãy dùng sslocal của shadowsocks-rust. Bạn có thể cài nó từ trình quản lý gói, bằng snap install shadowsocks-rust hoặc brew install shadowsocks-rust, hoặc tải file nhị phân dựng sẵn từ trang releases.
Cách khởi động nhanh nhất là đưa thẳng link vào lệnh:
sslocal -b 127.0.0.1:1080 --server-url "ss://Y2hhY2hh...@203.0.113.10:8388"
Để dùng lâu dài, hãy ghi các giá trị vào một file cấu hình:
{
"server": "203.0.113.10",
"server_port": 8388,
"password": "Secret0",
"method": "chacha20-ietf-poly1305",
"local_address": "127.0.0.1",
"local_port": 1080
}
sslocal -c config.json # SOCKS5 proxy on 127.0.0.1:1080
sslocal -c config.json --protocol http # HTTP proxy instead
Gói snap còn kèm theo dịch vụ sslocal-daemon mà bạn có thể bật bằng systemd, ngoài ra còn có Docker image chính thức là ghcr.io/shadowsocks/sslocal-rust.
Android#
- Cài shadowsocks-android từ trang releases trên GitHub. Bản trên Google Play vẫn chạy được nhưng không được cập nhật từ năm 2021.
- Chạm vào biểu tượng thêm profile ở phía trên và chọn Scan QR code, Import from Clipboard hoặc Manual Settings.
- Chọn profile, chạm vào nút kết nối hình tròn, rồi chấp nhận yêu cầu VPN.
- Trong cài đặt profile, đặt Route (ví dụ, Bypass LAN giữ các địa chỉ nội bộ ở ngoài đường hầm). Nếu chỉ một số ứng dụng nên dùng đường hầm, hãy bật Apps VPN mode và chọn các ứng dụng đó.
iPhone và iPad#
- Cài Outline từ App Store.
- Sao chép link
ss://. Khi bạn mở ứng dụng, Outline sẽ đề nghị thêm link này, hoặc bạn có thể chạm Add server và tự dán vào. - Chạm Connect và cho phép cấu hình VPN.
Các ứng dụng theo quy tắc như Shadowrocket hay Potatso hoạt động tương tự: bạn thêm máy chủ bằng cách dán link hoặc quét mã QR, rồi bật nó lên. Điểm khác là chúng có thể chỉ gửi những trang bạn chọn qua đường hầm, còn Outline thì luôn đưa mọi thứ qua đường hầm.
Các chế độ định tuyến: thứ gì thực sự đi qua đường hầm#
Chế độ quyết định lưu lượng nào dùng Shadowsocks, và chọn sai chế độ là lý do phổ biến thứ hai khiến một client “đang chạy” dường như chẳng làm gì cả.
| Chế độ | Thứ đi qua đường hầm | Phù hợp cho |
|---|---|---|
| Thủ công | Chỉ các ứng dụng bạn trỏ tới 127.0.0.1:1080 | Script, một profile trình duyệt, kiểm thử |
| Global (proxy hệ thống) | Mọi ứng dụng tuân theo cài đặt proxy hệ thống | Duyệt web với toàn bộ trình duyệt đi qua đường hầm |
| PAC / Auto / quy tắc | Chỉ các tên miền trong danh sách, mọi thứ khác đi trực tiếp | Giữ trang trong nước nhanh trong khi trang nước ngoài đi qua đường hầm |
| VPN / TUN | Toàn bộ lưu lượng của thiết bị, kể cả UDP và các ứng dụng bỏ qua cài đặt proxy | Game, ứng dụng nhắn tin, điện thoại và mọi thứ “không nhìn thấy” proxy |
Outline và các ứng dụng di động luôn chạy ở chế độ VPN. Client desktop cổ điển mặc định dùng proxy hệ thống, còn các ứng dụng đa giao thức như Clash Verge Rev và v2rayN cho phép bạn bật chế độ TUN.
Dùng proxy cục bộ trong từng ứng dụng cụ thể#
- Firefox: mở Cài đặt, tìm “proxy” và bấm Configure proxy trong mục Proxy settings. Chọn Manual proxy configuration, nhập
127.0.0.1và cổng1080vào SOCKS Host, chọn SOCKS v5 và đảm bảo Proxy DNS when using SOCKS v5 đã được đánh dấu. Các phiên bản gần đây đánh dấu sẵn tùy chọn này, và nếu thiếu nó, các truy vấn DNS sẽ đi ra ngoài đường hầm. - Chrome và Edge: hai trình duyệt này đi theo proxy hệ thống. Để chỉ đưa một trình duyệt qua đường hầm, hãy khởi động nó với
--proxy-server="socks5://127.0.0.1:1080". Với SOCKS5, Chrome luôn phân giải tên miền ở phía proxy, nên DNS không bị rò rỉ. - Tiện ích trình duyệt: một tiện ích chuyển đổi proxy cho phép bạn chỉ gửi những trang được chọn qua
127.0.0.1:1080và đổi quy tắc chỉ bằng một cú nhấp. Proxy SwitchyOmega bản gốc không còn chạy trên Chrome hiện tại, và bản fork được duy trì của nó là ZeroOmega. Chrome Web Store còn có một tiện ích giả mạo tên “SwitchyOmega V3”, vì vậy hãy kiểm tra nhà phát hành trước khi cài. Trên Firefox, hãy kiểm tra xem tùy chọn DNS từ xa của tiện ích đã được bật chưa. - Dòng lệnh: dùng
curl --socks5-hostname 127.0.0.1:1080 …, hoặc đặtALL_PROXY=socks5h://127.0.0.1:1080. Nhiều công cụ chỉ hiểu proxy HTTP, và với những công cụ đó bạn có thể chạysslocalvới--protocol http. - Git:
git config --global http.proxy socks5h://127.0.0.1:1080.
Chữ h trong socks5h rất quan trọng, vì nó yêu cầu công cụ phân giải tên miền qua proxy thay vì qua DNS cục bộ của bạn.
Kiểm tra xem nó có thực sự hoạt động không#
Biểu tượng màu xanh chỉ có nghĩa là client đã khởi động. Để biết lưu lượng của bạn thực sự đi đâu, hãy chạy một lệnh:
curl --socks5-hostname 127.0.0.1:1080 https://ifconfig.me
Lệnh này phải in ra địa chỉ IP của máy chủ Shadowsocks chứ không phải IP của bạn. Ở chế độ VPN, hãy chạy curl https://ifconfig.me thông thường, không kèm tham số proxy. Sau đó, mở một trang kiểm tra rò rỉ DNS trong trình duyệt: các máy chủ DNS được liệt kê phải thuộc về mạng của máy chủ hoặc một DNS resolver công cộng, chứ không phải nhà mạng internet tại nhà bạn.
Plugin và mức độ dễ bị phát hiện của Shadowsocks năm 2026#
Plugin#
Shadowsocks có thể chuyển lưu lượng của nó cho một plugin theo chuẩn SIP003, và plugin sẽ bọc lưu lượng đó trong một lớp truyền tải khác. Plugin chạy ở cả hai đầu, nên client cần đúng plugin mà máy chủ dùng, với cài đặt khớp với máy chủ (với v2ray-plugin là cùng host, path và lựa chọn TLS). Mỗi lúc chỉ chạy được một plugin, và plugin chỉ truyền lưu lượng TCP.
| Plugin | Chức năng | Ghi chú |
|---|---|---|
| v2ray-plugin | Bọc lưu lượng trong WebSocket, có thể kèm TLS | Có thể chạy sau CDN hoặc một web server thông thường trên cổng 443 |
| kcptun | Gửi lưu lượng qua một giao thức dựa trên UDP, được tinh chỉnh cho đường truyền hay mất gói | Hữu ích trên kết nối di động không ổn định hoặc kết nối đường dài, đổi lại tốn nhiều băng thông hơn |
| simple-obfs | Ngụy trang lưu lượng thành HTTP hoặc TLS thông thường | Đã ngừng phát triển; hãy dùng v2ray-plugin thay thế |
| Cloak | Khiến máy chủ trông như một trang HTTPS bình thường trước các đợt dò quét | Cần cài đặt client và máy chủ riêng |
Outline và nhiều ứng dụng iOS không chạy plugin. Nếu máy chủ của bạn dùng plugin, hãy chọn một client có chữ “Có” ở cột plugin trong bảng phía trên, hoặc một ứng dụng đa giao thức có tích hợp sẵn plugin đó.
Shadowsocks có thể bị phát hiện không?#
Có, nếu đó là các bộ lọc mạng được trang bị tốt. Shadowsocks không có bước bắt tay nào lộ ra ngoài: ngay gói tin đầu tiên đã chứa dữ liệu mã hóa, nên toàn bộ luồng trông như các byte ngẫu nhiên. Chính thiết kế đó cũng là điểm yếu của nó. Vào tháng 11 năm 2021, các hệ thống lọc ở những khu vực có hạn chế bắt đầu ngắt những kết nối có gói tin đầu tiên trông “quá ngẫu nhiên”.
Một nhóm nhà nghiên cứu từ nhiều trường đại học Mỹ đã mô tả cơ chế này trong một bài báo tại USENIX Security 2023. Hệ thống áp dụng các quy tắc đơn giản lên gói dữ liệu đầu tiên, chẳng hạn tỷ lệ ký tự in được, và chỉ kiểm tra khoảng một phần tư số kết nối. Các tác giả ước tính rằng dù vậy nó vẫn có thể bắt nhầm khoảng 0,6% lưu lượng internet bình thường. Để đối phó, shadowsocks-rust đã thêm tiền tố payload có thể cấu hình vào đầu năm 2022, và Outline cũng bổ sung một tùy chọn “prefix” tương tự cho client của mình vào cuối năm đó.
Trên thực tế, điều này có nghĩa như sau:
- Trên các mạng thông thường, như Wi-Fi khách sạn và quán cà phê, tường lửa văn phòng hay khi đi công tác, Shadowsocks thuần với thuật toán AEAD hiện đại hoặc thuật toán 2022 hoạt động tốt.
- Ở những khu vực có hạn chế, không giao thức nào truy cập được mãi mãi. Các giao thức mô phỏng lưu lượng TLS thật, như VLESS với Reality hoặc Trojan, hiện thường trụ được lâu hơn, và một client đa giao thức cho phép bạn chuyển đổi mà không phải cài lại gì.
- Về quyền riêng tư, hãy nhớ rằng Shadowsocks không có bảo mật chuyển tiếp (forward secrecy), kể cả ở phiên bản 2022. Ai ghi lại lưu lượng của bạn và sau đó lấy được khóa đều có thể giải mã nó, vì vậy hãy thay khóa định kỳ và đừng chia sẻ link rộng rãi.
Khắc phục sự cố#
| Triệu chứng | Nguyên nhân có thể | Cách khắc phục |
|---|---|---|
| Đã kết nối nhưng không trang nào tải được | Thuật toán hoặc mật khẩu không khớp với máy chủ | Nhập lại link ss:// thay vì gõ tay các giá trị, hoặc giải mã link để so sánh |
| Kết nối bị quá thời gian chờ | Máy chủ không chạy, sai cổng, hoặc cổng bị đóng trên mạng của bạn | Kiểm tra xem máy chủ có đang chạy không và thử cổng khác, chẳng hạn 443 |
| Trình duyệt chạy được, ứng dụng khác thì không | Các ứng dụng đó bỏ qua proxy hệ thống | Chuyển sang chế độ VPN/TUN, hoặc đặt proxy trong cài đặt riêng của ứng dụng |
| Các trang vẫn hiển thị quốc gia thật của bạn | DNS hoặc lưu lượng đi ra ngoài đường hầm | Dùng socks5h, đánh dấu “Proxy DNS” trong Firefox, hoặc chuyển sang chế độ VPN |
| Mọi kết nối đều thất bại với thuật toán 2022 | Khóa không phải chuỗi Base64 hợp lệ dài 16 hoặc 32 byte, hoặc đồng hồ thiết bị lệch quá 30 giây | Tạo lại khóa bằng openssl rand -base64 32 (16 cho aes-128) và đồng bộ đồng hồ |
| Lỗi “Unsupported method” | Client không biết thuật toán này | Cập nhật client, hoặc dùng chacha20-ietf-poly1305 ở cả hai đầu |
| Không kết nối được máy chủ dùng plugin | Client không có plugin, hoặc cài đặt plugin khác với máy chủ | Cài đúng plugin đó với host, path và cài đặt TLS khớp với máy chủ, hoặc dùng client hỗ trợ plugin |
| Chạy được vài phút rồi ngừng | Mạng đang lọc hoặc bóp băng thông | Thử plugin, cổng khác hoặc một giao thức dựa trên TLS |
| Tốc độ chậm | Máy chủ ở xa, VPS quá tải hoặc kết nối di động hay mất gói | Chọn máy chủ gần hơn, và thử kcptun trên kết nối không ổn định |
So sánh Shadowsocks, proxy SOCKS5 và VPN#
Ba công cụ này giải quyết những vấn đề khác nhau, và người dùng thường chọn nhầm.
| Shadowsocks | Proxy SOCKS5 | VPN (WireGuard, OpenVPN) | |
|---|---|---|---|
| Mã hóa tới máy chủ | Có | Không; lưu lượng và thông tin đăng nhập lộ rõ trên đường truyền | Có |
| Trông như thế nào | Các byte ngẫu nhiên, không có bắt tay | Bước bắt tay proxy dễ nhận ra | Bước bắt tay VPN dễ nhận ra |
| Phạm vi | Các ứng dụng dùng proxy cục bộ, hoặc toàn bộ thiết bị ở chế độ TUN | Các ứng dụng bạn cấu hình | Toàn bộ thiết bị |
| Cách triển khai điển hình | Một máy chủ riêng dùng chung cho vài người | Nhiều IP từ một nhà cung cấp | Một máy chủ hoặc mạng của nhà cung cấp |
| Phù hợp nhất cho | Mạng bị lọc và khu vực có hạn chế | Scraping, tự động hóa, quản lý nhiều tài khoản, kiểm thử theo vị trí địa lý | Bảo vệ quyền riêng tư hằng ngày trên mạng không tin cậy |
Shadowsocks cho bạn một đường hầm mã hóa khó bị phát hiện, nhưng chỉ có một địa chỉ đầu ra. Thu thập dữ liệu và tự động hóa lại cần điều ngược lại, tức là nhiều IP đầu ra mà không tốn chi phí mã hóa, và cho việc đó thì proxy SOCKS5 phù hợp hơn. Nếu bạn chỉ muốn bảo vệ toàn bộ thiết bị khi dùng Wi-Fi công cộng, một VPN như FineVPN sẽ đơn giản hơn so với tự vận hành máy chủ Shadowsocks.
Client Shadowsocks nào tốt nhất?
Với hầu hết mọi người, đó là Outline, vì nó miễn phí, chạy trên mọi nền tảng và chỉ cần dán một link. Trên Android, shadowsocks-android cho nhiều quyền kiểm soát hơn, còn trên Linux và router, lựa chọn thường gặp là sslocal của shadowsocks-rust.
Client Shadowsocks nào tốt nhất cho Windows?
Outline nếu bạn chỉ muốn kết nối. Nếu cần quy tắc định tuyến, plugin hoặc thuật toán Shadowsocks 2022, hãy dùng Clash Verge Rev hoặc v2rayN. Shadowsocks for Windows cổ điển vẫn chạy được, nhưng bản phát hành cuối cùng của nó ra mắt vào tháng 2 năm 2022.
Client Shadowsocks nào tốt nhất cho iPhone?
Outline miễn phí và đủ dùng với hầu hết mọi người. Ứng dụng miễn phí sing-box MT bổ sung thuật toán Shadowsocks 2022, còn Potatso, Shadowrocket, Stash và Surge có thêm quy tắc theo từng trang web.
Client Shadowsocks có miễn phí không?
Các client chính thức và Outline đều miễn phí và mã nguồn mở. Dù vậy, bạn vẫn cần một máy chủ, có thể là VPS của riêng bạn hoặc máy chủ từ nhà cung cấp.
Shadowsocks có phải là VPN không?
Về mặt kỹ thuật thì không, vì nó là một proxy có mã hóa. Tuy nhiên, Outline và hầu hết ứng dụng di động chạy nó qua giao diện VPN của hệ thống, nên trên các thiết bị đó nó hoạt động giống như VPN.
Có thể dùng client Shadowsocks với proxy SOCKS5 thông thường không?
Không. Client giao tiếp với ứng dụng của bạn bằng SOCKS5, nhưng ở đầu bên kia nó cần một máy chủ Shadowsocks.
Nên chọn thuật toán mã hóa Shadowsocks nào?
Hãy chọn một thuật toán Shadowsocks 2022 nếu cả hai đầu đều hỗ trợ, nếu không thì dùng chacha20-ietf-poly1305 hoặc aes-256-gcm. Tránh các thuật toán mã hóa dòng cũ như aes-256-cfb hay rc4-md5.
Shadowsocks có hợp pháp không?
Ở hầu hết các quốc gia, việc dùng proxy có mã hóa là hợp pháp. Một số quốc gia hạn chế các công cụ dùng để vượt qua giới hạn theo khu vực, vì vậy hãy kiểm tra quy định ở nơi bạn đang ở.
Shadowsocks có còn an toàn vào năm 2026 không?
Với thuật toán mã hóa hiện đại, nó vẫn là một đường hầm mã hóa đáng tin cậy. Tuy vậy, nó không vô hình trước các bộ lọc mạng tiên tiến và không có bảo mật chuyển tiếp (forward secrecy), nên hãy giữ kín khóa và thay khóa định kỳ.
Outline có hoạt động với mọi máy chủ Shadowsocks không?
Outline hoạt động với mọi máy chủ dùng thuật toán AEAD cổ điển và không dùng plugin. Máy chủ yêu cầu plugin hoặc thuật toán Shadowsocks 2022 cần một client khác, chẳng hạn shadowsocks-android hoặc sing-box.