trueNetLab logo
MS
Shadowsocks dan Xray: Apabila VPN Disekat

Shadowsocks dan Xray: Apabila VPN Disekat

12 min read
Network Security

Saya sering bekerja dengan VPN. Bukan sebagai teori, tetapi dalam kerja harian: menyambungkan lokasi, memberi pelanggan akses ke rangkaian syarikat, memastikan server boleh dicapai, mengkonfigurasi firewall, memperbaharui sijil, menstabilkan tunnel IPsec, menyahpepijat klien SSL VPN, dan mencari sebab sebuah lokasi tiba-tiba tidak dapat berhubung.

Biasanya ini kerja rangkaian yang kukuh dan agak membosankan. Memang begitulah yang kita mahu.

Namun ada keadaan di mana VPN yang betul dari segi teknikal tetap tidak mencukupi. Bagi pelanggan dari negara yang Internetnya sangat dikawal, seperti China atau Rusia, protokol VPN klasik kadangkala disekat, diganggu atau dikenal pasti secara khusus. Oleh sebab saya bekerja di Dubai dengan pelanggan yang sangat antarabangsa, isu ini bukan abstrak. Soalan operasinya ialah: bagaimana akses sah ke infrastruktur sendiri boleh dikekalkan apabila sambungan ditapis di tengah jalan?

Di sinilah muncul nama seperti Shadowsocks, ShadowsocksR, V2Ray, Xray-core, VLESS, Trojan, REALITY dan XHTTP. Pada awalnya ia kelihatan seperti campuran projek, fork dan singkatan yang mengelirukan. Dan sebahagiannya memang begitu.

Apabila VPN tidak gagal pada log masuk, tetapi sudah gagal semasa melalui rangkaian, kita tidak cukup bercakap tentang penyulitan sahaja; kita perlu bercakap tentang kebolehkesanan.

Mengapa Shadowsocks wujud

Shadowsocks bukan berasal daripada dunia VPN perusahaan klasik. Ia tidak dicipta untuk menggantikan IPsec atau membina penyelesaian site-to-site yang lebih cantik. Asalnya lebih langsung: pada 2012, seorang pembangun dengan nama samaran clowwindy mahu laluan ringan untuk keluar daripada rangkaian yang sangat ditapis menuju Internet terbuka.

Reka bentuknya mencerminkan keperluan itu. Shadowsocks mahu menjadi ringan, pantas dan praktikal: bukan klien VPN berat, bukan gateway besar, bukan suite remote access dengan identity management dan compliance. Idea asasnya ialah proxy SOCKS5 setempat yang menyulitkan trafik dan menghantarnya ke server di luar sekatan.

Keperluannya bukan “lebih banyak fungsi keselamatan enterprise”, tetapi “saya perlukan laluan keluar yang berfungsi daripada rangkaian yang menapis protokol dan destinasi tertentu”. Sebab itu Shadowsocks masih menarik, tetapi juga mudah disalah faham. Ia komponen transport yang ringkas, bukan VPN korporat lengkap secara automatik.

Pada 2015, kisahnya menjadi lebih politik: clowwindy menulis di GitHub bahawa polis telah datang dan beliau perlu menghentikan kerja itu. Pembangunan kemudian diteruskan melalui fork dan implementasi lain. Alat seperti ini sering lahir daripada masalah teknikal yang sangat nyata, kemudian menjadi sebahagian daripada perlumbaan antara pengguna, pembangun dan infrastruktur penapisan.

Mengapa VPN mudah kelihatan

Ramai orang mengaitkan VPN dengan penyulitan. Itu betul, tetapi hanya sebahagian cerita.

Pihak penapis, ISP atau firewall nasional tidak semestinya perlu membaca kandungan sambungan yang disulitkan untuk mengganggunya. Selalunya cukup dengan mengenali sampulnya. IPsec, SSL VPN, WireGuard dan OpenVPN mempunyai ciri biasa: port, saiz paket, corak handshake, tingkah laku sijil, timing, penggunaan UDP, retry, ralat atau alamat IP server yang sudah dikenali.

Analogi mudahnya: lihat sampul, bukan isi surat. Isi surat disulitkan, tetapi sampul mempunyai saiz, warna, setem dan penghantar yang berulang. Orang yang hanya menyusun sampul tidak perlu membaca teks untuk berkata: jenis ini perlu pemeriksaan khas.

Trafik rangkaian juga begitu. Deep Packet Inspection dan klasifikasi trafik tidak melihat port sahaja; ia menganalisis corak. Dalam TLS, Client Hello fingerprint, SNI, rantaian sijil atau ALPN boleh menonjol. Dalam protokol yang disulitkan sepenuhnya, rupa yang terlalu rawak pada paket awal boleh menjadi isyarat. Kajian Great Firewall menunjukkan bahawa panjang paket, entropi dan aksara ASCII boleh cetak dalam paket awal turut penting.

Inilah perkara yang tidak selesa: “semuanya nampak rawak” tidak semestinya bermakna “tidak mencurigakan”. Kadangkala itulah yang mencurigakan.

Apa yang ditunjukkan oleh kajian

Perkara penting bukan sekadar sistem penapisan boleh “mengesan VPN”. Itu sudah diketahui secara umum. Yang menarik ialah betapa tidak dramatiknya banyak kaedah pengesanan dari sudut teknikal.

Permulaan yang baik ialah kerja pengukuran GFW Report yang dibentangkan pada 2020 di ACM Internet Measurement Conference. GFW Report bukan produk atau vendor, tetapi projek penyelidikan dan pengukuran mengenai Great Firewall.

Intinya: ini bukan serangan penyahsulitan ajaib. Great Firewall menggabungkan pemerhatian pasif dan active probing. Mula-mula sambungan menjadi mencurigakan kerana panjang dan entropi paket data pertama. Kemudian penapis membuat probe aktif: ia menyambung ke server yang disyaki, memainkan semula paket lama atau diubah suai, dan melihat sama ada pihak satu lagi bertindak seperti server Shadowsocks.

Bagi pentadbir, ini menunjukkan dua lapisan pertahanan:

  • Trafik tidak boleh terlalu menonjol secara pasif.
  • Server tidak boleh menjawab probe aktif seperti proxy.

Pada 2023, kajian GFW lain menunjukkan bahawa trafik disulitkan sepenuhnya boleh disekat dengan heuristik mudah. Jika payload TCP pertama tidak kelihatan seperti TLS, HTTP atau teks boleh cetak, tetapi seperti blok rawak, itu sahaja boleh menjadi isyarat. Jadi “paling rawak” tidak semestinya sasaran penyamaran terbaik.

Pada 2024, kajian mengenai handshake TLS terenkapsulasi menambah isu lain: walaupun tunnel luar disulitkan dan tersamar, handshake TLS di dalamnya boleh muncul sebagai corak dalam stack protokol bertingkat. Padding rawak hanya membantu sedikit; multiplexing stream nampak lebih menjanjikan, tetapi tidak menyelesaikan semuanya jika akhirnya hanya satu stream aplikasi kelihatan.

Timing dan cross-layer RTT juga relevan. Proxy mengalihkan sesi transport dan aplikasi antara satu sama lain. Perbezaan masa ini boleh diukur, sama ada klien dekat atau jauh daripada proxy. Ia bukan sesuatu yang boleh dibetulkan hanya dengan header lain.

Kesimpulannya: bukan label protokol yang menentukan, tetapi tingkah laku keseluruhan setup.

Shadowsocks bukan VPN klasik

Shadowsocks sering diletakkan dalam kategori VPN. Dalam perbualan harian itu boleh difahami, tetapi secara teknikal kurang tepat.

Shadowsocks ialah proxy disulitkan, longgar berasaskan SOCKS5. Klien setempat menyediakan proxy kepada aplikasi, menyulitkan trafik dan menghantarnya ke server Shadowsocks jauh. Server menyahsulit permintaan, menyambung ke destinasi sebenar dan mengembalikan respons melalui laluan disulitkan.

Ia lebih ringan daripada VPN penuh. Shadowsocks tidak secara automatik memasukkan seluruh sistem operasi ke dalam tunnel. Ia menghantar trafik terpilih melalui laluan lain. Dengan klien dan komponen tambahan, tingkah lakunya boleh dibuat hampir seperti VPN, tetapi idea asasnya tetap proxy, bukan site-to-site VPN.

Bagi pentadbir:

  • Shadowsocks tidak menggantikan site-to-site IPsec yang kemas.
  • Shadowsocks bukan perlindungan ajaib daripada semua pengesanan.
  • Shadowsocks berguna apabila proxy disulitkan yang mudah dan pantas diperlukan daripada rangkaian terhad.

Shadowsocks telah berkembang. Setup lama dengan stream cipher tidak lagi patut menjadi rujukan. Deployment moden berada dalam dunia AEAD, dan Shadowsocks 2022 menambah asas kunci simetri pra-kongsi, derivasi berasaskan BLAKE3, perlindungan replay dan pembetulan lain. Tetapi spesifikasi tidak menyediakan Forward Secrecy. Jika kunci bocor, rotasi yang bersih wajib dibuat.

shadowsocks-rust ialah implementasi moden yang juga boleh dijalankan dengan Docker. Di server ada ssserver, di klien ada sslocal. Diperlukan secret yang dijana dengan betul, port yang boleh dicapai, cipher semasa dan keputusan jelas tentang TCP, UDP atau kedua-duanya.

Mengapa Xray-core kategori berbeza

Xray-core bukan sekadar “Shadowsocks yang lebih baharu”. Ia lebih kepada framework untuk senario proxy dan tunnel.

Xray boleh menggabungkan protokol inbound dan outbound seperti VLESS, VMess, Trojan, Shadowsocks, WireGuard, Hysteria, SOCKS dan HTTP. Di atasnya ada transport seperti RAW, WebSocket, gRPC, XHTTP atau Hysteria, bersama TLS, REALITY atau XTLS Vision. VMess masih ada dalam setup lama, tetapi untuk deployment baharu ia lebih legacy; VLESS biasanya menjadi pusat Xray moden.

Shadowsocks ialah pemutar skru pantas. Xray ialah kotak alat. Ia boleh membina setup ringkas atau rantai yang menerima trafik melalui klien SOCKS/TUN setempat, menghantarnya melalui VLESS dengan REALITY ke server dan keluar ke Internet melalui outbound freedom.

VLESS bukan penyamaran itu sendiri. Ia protokol proxy ringan dengan pengesahan UUID. Kerahsiaan dan kesan penyamaran datang daripada lapisan transport dan security seperti TLS, REALITY atau XTLS Vision.

REALITY menarik kerana ia tidak sekadar membuat “TLS sekali lagi”. Dari luar, server meminjam handshake TLS laman HTTPS pihak ketiga yang sebenar. Pemerhati melihat sijil sebenar daripada laman sebenar, bukan sijil proxy buatan sendiri. Hanya klien sah, melalui bahan kunci yang dikonfigurasikan, mengenali server Xray sendiri.

Ini terutama menangani fingerprint TLS sisi server dan active probing. uTLS membantu sisi klien dengan meniru Client Hello pelayar. Namun Xray bukan jubah halimunan: timing, saiz paket, ALPN, tingkah laku server dan corak TLS bertingkat masih boleh menjadi isyarat. XTLS Vision dan XHTTP ialah komponen menarik, bukan jaminan. Sedikit padding tidak banyak membantu jika corak asas trafik masih kelihatan.

Pendekatan UDP seperti Hysteria atau QUIC boleh pantas, tetapi dalam rangkaian terhad ia kerap diperlahankan atau disekat lebih mudah daripada TCP/443 keluar. Jadi Xray memerlukan disiplin: pin versi, uji perubahan, baca release notes dan jangan menyalin nasihat forum secara membuta tuli.

Kekeliruan fork dan nama

Apabila mula mencari, kita cepat menemui blog lama, fork GitHub dan klien yang separuh diselenggara. Itu sebahagian daripada sejarah alat ini.

Shadowsocks ialah protokol dan ekosistem dengan beberapa implementasi. shadowsocks-rust kini pilihan munasabah untuk server moden. Implementasi lama seperti shadowsocks-libev masih dikenali, tetapi bergantung pada status projek, ia lebih sesuai dianggap legacy atau berfokus bugfix.

ShadowsocksR ialah fork dengan idea obfuscation tambahan. SSR masih muncul dalam banyak panduan lama. Saya akan berhati-hati hari ini: bukan kerana semua pemasangan lama buruk, tetapi kerana klien, server, kripto, update dan komuniti perlu diperiksa dengan teliti.

Xray-core berasal daripada persekitaran V2Ray, tetapi berkembang sendiri. Tutorial V2Ray lama tidak boleh terus digunakan untuk Xray. Konsep mungkin sama, tetapi konfigurasi, fungsi dan cadangan sudah berubah.

V2Fly masih relevan sebagai projek komuniti yang lebih konservatif. Xray-core lebih agresif dengan REALITY, XTLS Vision dan XHTTP. sing-box juga wujud sebagai platform universal moden. Artikel ini fokus pada Xray, tetapi dalam lab saya juga akan melihat sing-box.

Nasihat praktikal:

  • Untuk setup ringkas baharu: Shadowsocks dengan implementasi semasa.
  • Untuk rangkaian sukar: Xray-core dengan reka bentuk bersih dan terkini.
  • Untuk panduan SSR atau V2Ray lama: semak status dan keselamatan dahulu.
  • Untuk pelanggan produksi: jangan salin setup tanpa memahami sendiri.

Apa yang diperlukan di kedua-dua sisi

Setup minimum sentiasa mempunyai dua sisi.

Di sisi jauh, perlukan server di luar rangkaian terhad: VPS, server sendiri atau infrastruktur terkawal dalam rantau yang boleh dicapai pelanggan. Server ini mesti dikeraskan, dipatch, dipantau dan didokumenkan. Instance murah yang dilupakan ialah risiko jangka panjang.

Di sisi klien, perlukan program sesuai. Untuk Shadowsocks, lazimnya klien SOCKS setempat atau aplikasi yang menetapkan proxy sistem. Untuk Xray, ia boleh menjadi klien Xray, mod TUN, setup router atau aplikasi yang mengimport profil.

Antara kedua-duanya diperlukan:

  • tujuan yang jelas
  • pengesahan yang bersih
  • versi perisian semasa
  • DNS terkawal
  • logging tanpa data pelanggan yang tidak perlu
  • monitoring capaian
  • pelan rotasi server, port dan secret
  • semakan undang-undang dan kontrak

Poin terakhir penting. Di sesetengah negara, penggunaan alat ini boleh bermasalah dari segi undang-undang. Dalam syarikat, perlu jelas sama ada ia membuka sistem sendiri, mengendalikan rangkaian pelanggan atau memberi akses Internet umum.

DNS sering dipandang ringan. Jika pelayar atau sistem masih menyelesaikan domain melalui provider tempatan, tunnel hanya membantu separuh. Kandungan mungkin melalui proxy, tetapi pertanyaan DNS masih mendedahkan destinasi. Jadi laluan DNS, IPv6 dan tingkah laku apabila tunnel putus mesti diuji.

Logging juga sensitif. Untuk troubleshooting kita mahu tahu tunnel hidup; untuk privasi kita mahu menyimpan sedikit mungkin. Setup baik mengumpul status teknikal, latensi, kadar ralat dan volum, bukan senarai penuh sambungan. Debug log, TLS keylog dan access log tanpa masking tidak patut kekal di produksi.

Monitoring perlu menguji laluan sebenar melalui tunnel, DNS yang betul, sekatan mengikut rantau dan perbezaan pandangan dari negara terjejas, bukan sekadar container masih berjalan.

Cara saya melihatnya secara operasi

Bagi saya, Shadowsocks atau Xray bukan pengganti seni bina firewall, Zero Trust, MFA atau segmentasi. Ia alat transport untuk kes khas.

Pendekatan syarikat yang munasabah:

  1. Uji dahulu SSL VPN, IPsec atau WireGuard.
  2. Jika disekat, ukur DNS, port, protokol, IP server, TLS fingerprint dan UDP throttling.
  3. Uji transport alternatif seperti Shadowsocks atau Xray-core.
  4. Gunakan tunnel hanya untuk destinasi yang diperlukan.
  5. Tapis di server perkhidmatan dalaman yang boleh dicapai.
  6. Bina monitoring supaya blokir tidak diketahui hanya daripada pelanggan.
  7. Sediakan fallback: exit kedua, provider lain, rantau lain atau protokol lain.
  8. Pisahkan secret dan profil per lokasi atau pengguna.
  9. Bina log dan metrik tanpa jejak yang tidak perlu.

Apabila pelanggan hilang akses, “asalkan jalan semula” memang menggoda. Tetapi selepas itu perlu dikemas dan didokumenkan. Jika tidak, workaround sementara menjadi laluan produksi yang tidak kelihatan.

Mengapa sekatan sering mengejar

Pihak satu lagi sentiasa menyesuaikan pengesanan.

Jika ramai menggunakan Docker Compose, port, TLS fingerprint, strategi domain dan provider VPS yang sama, coraknya akan kelihatan. Yang disekat bukan “Xray” atau “Shadowsocks” secara abstrak, tetapi corak tertentu: handshake, saiz paket, julat IP, klien biasa, fallback buruk atau respons ralat yang mencurigakan.

Penyamaran bukan hanya fungsi tool. Penyamaran ialah operasi: alat sama dengan domain, provider, profil dan corak trafik berbeza boleh kelihatan sangat berbeza.

Sebab itu saya berhati-hati dengan dakwaan projek. Jika tool mendakwa tidak boleh dikesan, itu dakwaan projek. Jika paper menunjukkan ciri tertentu dikesan dalam rangkaian sebenar, beratnya lain. Praktik memerlukan kedua-duanya: inovasi projek dan ketenangan penyelidikan.

Penilaian saya

Shadowsocks masuk akal apabila perlu proxy disulitkan yang ringan, pantas dan agak mudah: ujian awal, akses sementara dan persekitaran tanpa pengesanan sangat agresif.

Xray-core masuk akal apabila rangkaian lebih sukar, beberapa transport diperlukan atau kita mahu menggunakan VLESS, REALITY, WebSocket, gRPC atau XHTTP. Tetapi ia memerlukan lebih pemahaman dan lebih mudah salah konfigurasi.

Untuk pelanggan, saya tidak akan menjualnya sebagai “pengganti VPN”. Saya akan menerangkannya sebagai laluan transport alternatif untuk akses sah. Kurang dramatik, tetapi lebih jujur.

Perbezaan paling penting bukan Shadowsocks lawan Xray, tetapi sama ada saya faham masalah yang diselesaikan. Untuk remote access biasa, gunakan VPN biasa. Untuk pengesanan protokol oleh negara atau provider, bincangkan kebolehkesanan, fingerprint dan strategi operasi. Jika saya tidak boleh menerangkannya, saya tidak patut menjalankannya untuk pelanggan produksi.

Kesimpulan

Shadowsocks dan Xray-core ialah alat daripada dunia di mana sambungan rangkaian bukan sekadar “berfungsi” atau “tidak berfungsi”. Kadangkala ia diklasifikasikan, diperlahankan, diuji aktif atau disekat. Sesiapa yang menyokong pelanggan antarabangsa akhirnya akan bertemu realiti ini.

Topik ini menarik kerana ia menjadikan rangkaian sangat konkrit: penyulitan, corak, fingerprint, routing, DNS, operasi, undang-undang, tanggungjawab dan hakikat bahawa tunnel yang berfungsi tidak semestinya reka bentuk yang baik.

Langkah seterusnya bagi saya jelas: saya mahu menguji Shadowsocks dan Xray-core dalam lab kecil. Bukan untuk memintas penapisan secara membuta tuli, tetapi untuk memahami mengapa VPN klasik kadangkala kelihatan dan alternatif mana boleh dioperasikan dengan serius.

Jumpa lagi,
Joe

FAQ

Adakah Shadowsocks VPN?
Tidak dalam maksud klasik. Shadowsocks terutamanya proxy disulitkan. Bergantung pada klien dan sistem, ia boleh digunakan seperti VPN, tetapi secara teknikal bukan IPsec, SSL VPN atau WireGuard.
Adakah Xray-core lebih baik daripada Shadowsocks?
Tidak semestinya. Xray-core lebih fleksibel dan menggabungkan protokol, transport dan penyamaran. Shadowsocks lebih mudah dan ringan. Pilihan bergantung pada rangkaian, risiko dan usaha operasi.
Bolehkah ia dijalankan terus dengan Docker?
Boleh, Shadowsocks dan Xray-core boleh dijalankan dengan Docker. Untuk produksi pelanggan, container sahaja tidak cukup: perlu update, monitoring, pengurusan secret, firewall rules, log, DNS dan pelan untuk sekatan.
Bagaimana dengan ShadowsocksR?
ShadowsocksR ialah fork sejarah dengan idea obfuscation tambahan. Untuk setup produksi baharu, saya tidak akan memilih SSR hari ini kerana penyelenggaraan, standardisasi dan keselamatannya kelihatan lebih lemah daripada pendekatan Shadowsocks atau Xray moden.
Adakah ia dijamin tidak kelihatan?
Tidak. Tiada tool menjamin trafik tidak akan dikesan atau disekat. Penapis moden boleh menilai signature, metadata, corak paket, IP server, active probe dan tingkah laku luar biasa.
Sumber