Laluan yang ditaip selepas setiap sambungan menyelesaikan saat itu dan bukan minggu itu. Pada macOS, pilihan kekal biasanya awalan yang disimpan dengan perkhidmatan VPN, kerana perkhidmatan memasangnya semula pada setiap sambungan dan mengalihkannya apabila perkhidmatan tidak berjalan. Alternatifnya ialah route add sementara untuk ujian dan hook sambungan untuk alamat yang hanya diketahui selepas rundingan.

Tentukan sama ada laluan itu milik perkhidmatan atau sesi

Tanya apa yang menjadi kebergantungan awalan. Jika ia rangkaian persendirian tetap di belakang perkhidmatan VPN asli, laluan itu milik perkhidmatan tersebut. Jika ia bergantung pada alamat rakan yang berubah pada setiap sambungan, hook atau tugas yang dipacu keadaan mungkin pemilik yang lebih baik. Jika anda hanya menyemak laluan untuk lima minit akan datang, laluan sementara sudah memadai.

Laluan terikat perkhidmatan mempunyai kitaran hayat paling bersih. Ia muncul bersama perkhidmatan dan hilang apabila perkhidmatan tidak bersambung, jadi ia tidak boleh hidup lebih lama daripada terowong yang ditunjuknya. Sifat itu lebih bernilai daripada kemudahan arahan satu baris.

Laluan terikat sesi milik antara muka, dan nombor itu berubah tanpa notis. Sambungan semula mungkin memberikan terowong nama utun yang berbeza daripada sesi sebelumnya, yang menjadikan arahan berkod keras sebagai laluan yang tidak menunjuk ke mana-mana atau, lebih buruk, ke terowong lain.

Baca keadaan laluan dan perkhidmatan semasa

Mulakan dengan nama yang benar-benar digunakan oleh sistem. Nama perkhidmatan dalam Tetapan Rangkaian ialah pengecam untuk arahan di bawah, dan jadual laluan semasa menunjukkan apa yang dipasang oleh klien yang bersambung. Baca kedua-duanya semasa terowong aktif.

scutil --nc list
networksetup -listnetworkserviceorder
netstat -rn | head -30
route get 10.20.5.5

Carian itu menunjukkan gateway dan antara muka mana yang akan dipilih oleh kernel untuk alamat ini pada masa ini. Jika ia sudah memilih terowong, awalan itu dilindungi dan laluan baharu akan menjadi berlebihan. Jika ia memilih penghala tempatan, terowong kekurangan awalan itu.

Catat alamat rakan semasa bersambung. Ia menjadi nilai gateway dalam laluan terikat perkhidmatan, dan biasanya destinasi yang dipaparkan untuk laluan lalai terowong dalam netstat -rn.

Simpan awalan dengan networksetup

Alat networksetup melampirkan laluan tambahan pada perkhidmatan rangkaian. Untuk perkhidmatan bernama OfficeVPN dan awalan persendirian yang dicapai melalui rakan terowong, bentuknya ialah:

sudo networksetup -setadditionalroutes OfficeVPN 10.20.0.0 255.255.0.0 10.8.0.6
networksetup -getadditionalroutes OfficeVPN

Setiap rangkap tiga selepas nama perkhidmatan memberikan destinasi, topeng rangkaiannya dan rakan terowong sebagai gateway. Satu panggilan boleh membawa beberapa awalan, dan panggilan kosong memadam senarai yang disimpan. Pembaca ialah langkah pengesahan; jika senarai kosong, tetapan itu tidak digunakan pada perkhidmatan yang anda fikirkan.

Gateway mesti rakan terowong, bukan penghala fizikal. Laluan yang menamakan gateway tempatan menghantar awalan persendirian keluar melalui antara muka fizikal, iaitu kegagalan asal dengan langkah tambahan. Rakan yang lapuk ialah sebab paling biasa laluan yang kelihatan betul tidak pernah membawa trafik. Baca semula rakan daripada keadaan bersambung dan bukan menyalin alamat daripada nota lama.

Gunakan route add hanya untuk ujian

Laluan langsung berguna untuk membuktikan awalan berfungsi sebelum menjadikannya kekal. Bentuk antara muka mengelakkan carian gateway:

sudo route -n add -net 10.20.0.0/16 -interface utun4

Laluan itu hilang pada sambungan semula seterusnya dan bergantung pada nombor antara muka yang wujud hari ini. Itu menjadikannya diagnostik, bukan penggunaan. Jika ujian berjaya dan laluan terikat perkhidmatan tidak, bandingkan nilai gateway dahulu; itulah medan yang paling kerap salah.

Berhati-hati dengan nasihat yang menggantikan laluan lalai VPN untuk memaksa tingkah laku pemisahan. Klien yang menguatkuasakan terowong penuh boleh memasang semula laluannya selepas sambungan semula atau penyegaran dasar, jadi perubahan manual dibatalkan secara senyap. Beberapa awalan persendirian ialah masalah penghalaan; menyimpan semua trafik internet secara tempatan menentang dasar terowong penuh ialah keputusan di pihak pelayan.

Pilih hook hanya apabila alamat dirundingkan

Untuk pautan berasaskan PPP seperti L2TP, macOS menjalankan /etc/ppp/ip-up sebaik pautan terbentuk. Skrip menerima nama antara muka serta alamat tempatan dan jauh yang dirundingkan, jadi ia boleh menambah laluan yang bergantung pada rakan yang diberikan oleh pelayan. Itulah tepat kes yang tidak dapat dinyatakan oleh laluan perkhidmatan tetap.

IKEv2 dan klien vendor mungkin tidak menggunakan laluan PPP itu langsung, yang bermaksud skrip boleh berdiam sepanjang sesi. Apabila itu berlaku, tugas launchd yang menanyakan scutil --nc status dan bertindak atas perubahan keadaan ialah mekanisme yang setara, dengan kelewatan kecil.

Walau apa pun hook yang anda gunakan, jadikannya idempoten dan biarkan ia mengalihkan hanya laluan yang diciptanya sendiri. Skrip yang memadam setiap laluan yang menyebut terowong akhirnya akan memadam laluan yang memastikan pelayan VPN boleh dicapai, dan sambungan akan terputus sebaik ia berjaya.

Akhiri dengan menyemak destinasi persendirian, pelayaran biasa dan kitaran sambungan semula atau tidur. Kemudian periksa scutil --dns, kerana penyelesaian nama ialah dasar berasingan dan laluan yang berfungsi tidak membuktikan nama persendirian diselesaikan.

Artikel berkaitan