Cara menguji kill switch VPN tanpa akun asli Anda
Jalankan uji kill switch dengan halaman umpan dan profil cadangan: cakup setiap jenis pemutusan, baca kode keluar curl, dan pisahkan blokir nyata dari kegagalan DNS.
Anda tidak perlu akun asli untuk mengetahui apakah kill switch bekerja; justru itulah yang dipertaruhkan oleh sebuah uji. Pemeriksaan ini menciptakan jendela singkat ketika lalu lintas mungkin atau tidak keluar di luar terowongan, jadi muatannya harus sesuatu yang rela Anda kehilangan. Saya menjalankannya sekarang dengan halaman umpan dan profil peramban cadangan, dan hasilnya lebih jelas daripada rutinitas peramban-plus-webmail yang saya pakai sebelumnya. Berikut ini mengikuti urutan yang sama seperti yang ditampilkan klien: pengaturan, tujuan, transisi, lalu buktinya.
Uji ini menjawab satu pertanyaan sempit: selama transisi ini, dapatkah aplikasi ini mencapai jaringan di luar terowongan? Ini tidak mengatakan apa pun tentang apakah sisa kebijakan itu masuk akal. Jaga cakupannya sekecil itu dan hasilnya layak dicatat.
Temukan sakelar dan cakupannya di klien
Buka klien dan temukan pengaturan pemblokiran sebelum Anda mengubah keadaan jaringan apa pun. Vendor menamainya berbeda-beda: kill switch, mode penguncian, kunci jaringan, blokir lalu lintas di luar terowongan. Labelnya memberi tahu lebih sedikit daripada opsi di dalamnya. Yang penting adalah apakah blokir berlaku selalu, atau hanya ketika aplikasi memutuskan terowongan baru saja gagal, dan apakah blokir itu mencakup setiap aplikasi atau daftar terpilih.
Lalu daftar transisi yang benar-benar dapat dilakukan klien Anda. Pemutusan oleh pengguna, keluar dari aplikasi, dan kehilangan kontak dengan server adalah tiga jalur kode berbeda di sebagian besar klien, dan ketiganya tidak berbagi satu kebijakan pemblokiran. Sebagian melepaskan blokir saat aplikasi keluar. Yang lain membiarkan aturan filter terpasang sampai ada yang menghapusnya. Bacalah referensi pengaturan vendor untuk build yang Anda jalankan alih-alih mengasumsikan, lalu catat mana dari ketiganya yang Anda uji.
Catat juga profilnya: protokol, keluarga alamat, dan apakah split tunnelling diaktifkan. Klaim seluruh perangkat tidak bermakna jika profil sengaja mengecualikan beberapa aplikasi, dan pengecualian yang Anda konfigurasikan bukanlah kebocoran. Referensi pengaturan OpenVPN Connect adalah jenis halaman yang menyebutkan toggle mana mengubah perilaku mana, meskipun labelnya berbeda per klien.
Pilih tujuan umpan yang juga berfungsi tanpa terowongan
Umpan membutuhkan dua sifat, dan melewatkan salah satunya menghasilkan hasil yang tidak terbaca. Umpan harus dapat dijangkau langsung saat terowongan mati dan blokir nonaktif, atau ‘berhenti menjawab’ bisa berarti hostnya hilang. Dan umpan tidak boleh memerlukan login, cookie, atau pembayaran, sehingga kebocoran hanya menghabiskan satu baris log, bukan satu sesi.
Halaman statis di host yang Anda kendalikan adalah pilihan paling bersih. Mesin virtual cadangan yang menjalankan server HTTP biasa hampir sama baiknya, dan halaman pemeriksa konektivitas publik berfungsi jika Anda menerima bahwa ketersediaannya di luar kendali Anda. Catat alamat, port, keluarga alamat, dan apakah permintaan memerlukan pencarian nama, karena masing-masing menjadi variabel yang mungkin harus Anda isolasi nanti.
Tetapkan baseline sebelum menyentuh sakelar. Dengan terowongan aktif, umpan harus menjawab melalui terowongan, yang membuktikan rute kebijakan bekerja. Dengan terowongan mati dan blokir nonaktif, umpan harus menjawab langsung, yang membuktikan tujuannya hidup. Baru setelah itu kegagalan dalam keadaan terblokir memberi tahu Anda sesuatu.
Jalankan transisi dalam urutan tetap
Ambil transisi satu per satu dan beri masing-masing beberapa detik untuk stabil, karena klien sering membongkar dan membangun ulang aturan di sela itu. Menjalankan pemeriksaan singkat yang sama setiap kali membuat pengamatan dapat dibandingkan:
curl -sS -o /dev/null -w 'http=%{http_code}\n' --max-time 5 http://decoy.example/
echo "curl_exit=$?"
dig +short decoy.example
curl -6 -sS -o /dev/null -w 'v6_http=%{http_code}\n' --max-time 5 http://decoy.example/
echo "curl_v6_exit=$?"
| Transition | Expected with the block on | Failure signature |
|---|---|---|
| Manual disconnect | Decoy stops answering within seconds | Decoy still returns 200 |
| Server or path failure | Blocked, with no exemption for the old endpoint | Direct access during the gap |
| Quit the app | Client-dependent; record what happens | Block disappears with the process |
| Wi-Fi to Ethernet | Block holds until the tunnel returns | Traffic flows mid-change |
Baris keluar-dari-aplikasi layak dijalankan sendiri meskipun Anda tidak pernah menutup klien dalam pemakaian normal. Jika blokir terlepas saat keluar, crash atau pembaruan paksa memberi Anda paparan yang sama, dan itu fakta tentang penerapan, bukan tentang kesabaran Anda. Di Windows, probe yang setara adalah Resolve-DnsName decoy.example dan curl.exe -s -o NUL -w "%{http_code}" http://decoy.example/.
Bedakan blokir dari resolver yang rusak
Halaman yang gagal dimuat punya beberapa penyebab, dan hanya satu di antaranya adalah sakelar yang bekerja. Jika namanya tidak ter-resolve, Anda telah mengetahui bahwa DNS diblokir atau rusak, bukan bahwa jalur data diblokir. Uji juga alamat literal, agar jawabannya tidak bergantung pada resolusi sama sekali.
Kode keluar curl memisahkan kasus-kasus itu: 6 adalah kegagalan resolusi nama, 7 berarti koneksi ditolak, 28 adalah timeout. Rute yang diblokir biasanya muncul sebagai timeout atau penolakan terhadap alamat literal. Blokir yang hanya DNS meninggalkan 6 dan menyembunyikan sisanya. Halaman cache atau captive portal menipu mata, itulah sebabnya kode keluar, bukan layar, adalah buktinya.
Ulangi probe melalui IPv6 dengan alamat literal. Blokir yang mencakup IPv4 dan mengabaikan IPv6 cukup umum sehingga layak mendapat barisnya sendiri dalam catatan Anda, dan klien yang menonaktifkan IPv6 di luar terowongan seharusnya gagal dengan bersih pada kedua keluarga.
Catat cakupan yang dicakup hasilnya
Saat terowongan kembali, pastikan pemulihan: umpan menjawab melalui terowongan, resolver mengembalikan jawaban, dan kebijakan tetap di tempat Anda meninggalkannya. Lalu batalkan eksperimennya. Aturan firewall sementara, rute debug, atau profil uji yang dibiarkan akan membingungkan proses berikutnya dan bisa hidup lebih lama dari aplikasinya.
Satu kali jalan mencakup satu build klien, satu profil, satu transisi, dan satu keluarga alamat. Tuliskan keempatnya beserta hasilnya:
- Build dan platform klien, serta apakah pengaturannya per profil atau global.
- Profil, protokol, dan pengecualian split-tunnel apa pun.
- Transisi yang diuji, dan bagaimana Anda memicunya.
- Keluarga alamat dan DNS, dengan kode keluar curl untuk keadaan terblokir dan tidak terblokir.
Jika ada baris yang kosong, uji belum selesai. Roaming berarti mengulang baris perubahan jaringan. Reboot tanpa pengawasan berarti memeriksa bahwa aturannya kembali, yang merupakan pertanyaan tentang urutan pemulihan, bukan tentang sakelar. Jalankan ulang rangkaiannya setelah pembaruan klien, karena toggle-nya jarang berubah sementara perilaku di baliknya berubah. Simpan umpan itu: tidak ada yang perlu dirotasi, dan pemeriksaan berikutnya hanya lima menit.