OpenConnect boleh menamatkan jabat tangan terowong dan masih meninggalkan anda tanpa laluan ke subrangkaian persendirian, kerana klien dan pembantu yang mengubah keadaan rangkaian tempatan ialah dua program berbeza. Pengesahan membuktikan bahawa gateway menerima sesi itu; ia tidak membuktikan apa-apa tentang antara muka, laluan atau tetapan penyelesai yang dipasang selepasnya. Kebanyakan laporan yang mengelirukan datang daripada menggantikan pembantu dengan salinan daripada jawapan lama, yang mengubah tingkah laku setiap sambungan pada mesin. Cari pembantu yang benar-benar dipanggil oleh klien yang sedang berjalan sebelum mengubah mana-mana bahagiannya.

Dua program, dua tanggungjawab

Klien memiliki pengangkutan, pengesahan dan peranti terowong. Pembantu berasingan memiliki apa yang berlaku pada sistem tempatan selepas terowong wujud: pengalamatan pada antara muka, laluan ke subrangkaian yang diumumkan oleh gateway, dan konfigurasi penyelesai. dokumentasi pembantu OpenConnect menerangkan pemisahan itu dan persekitaran yang diterima oleh pembantu. Perbezaan ini penting semasa kegagalan, kerana kata laluan yang ditolak dan laluan yang hilang bukan insiden yang sama walaupun desktop memaparkan satu dialog untuk kedua-duanya.

Mengingati pemisahan ini juga menjelaskan mengapa sambungan boleh melaporkan kejayaan sedangkan nama persendirian masih gagal diselesaikan. Terowong berada dalam keadaan aktif dalam kedua-dua kes, dan hanya peringkat integrasi tempatan yang berbeza.

Cari pembantu yang digunakan oleh klien yang sedang berjalan

Laluan ditetapkan semasa pakej dibina dan boleh ditindih pada setiap panggilan, jadi fail yang anda ingat daripada distribusi lain mungkin tidak ada kaitan dengan sambungan ini. Tanya proses yang sedang berjalan, bukan dokumentasi yang kebetulan terbuka.

openconnect --version
ps -o args= -C openconnect
dpkg -L openconnect | grep -i script
ls -l /etc/vpnc/ 2>/dev/null

Jika baris proses membawa argumen --script , fail itu mengatasi nilai lalai yang dikompil. Laluan lama seperti /etc/vpnc/vpnc-script mungkin wujud dan masih tidak digunakan, sebab itu memadam atau menyuntingnya tidak mengubah apa-apa pada binaan terkini. Semak juga tarikh pengubahsuaian, kerana pembantu yang tidak disentuh sesiapa selama bertahun-tahun ialah tanda kuat bahawa nilai lalai daripada pakej yang melakukan kerja itu.

Integrasi NetworkManager ialah pemilik ketiga, dengan pembantu dan tetapan profilnya sendiri. Menimbun skrip laluan atau penyelesai kedua di atas integrasi itu menggandakan laluan dan meninggalkan penyelesai yang didakwa dikendalikan oleh dua program. Pilih satu pemilik bagi setiap sambungan dan lumpuhkan yang lain sebelum menguji.

Baca operasi pertama yang gagal, bukan amaran terakhir

Konfigurasi antara muka, pemasangan laluan, pemilihan penyelesai dan pembersihan keadaan lapuk ialah langkah berasingan, dan amaran yang dicetak terakhir selalunya aduan pembersihan dan bukan kegagalan yang memutuskan sambungan. Baca ke atas sehingga operasi khusus pertama yang gagal. Ralat pembantu yang menamakan fail atau alamat bernilai lebih daripada sepuluh baris bunyi pembongkaran.

Bandingkan hasil tempatan yang dimaksudkan dengan yang diperhatikan: peranti terowong wujud, laluan ke alamat persendirian yang diketahui melaluinya, dan penyelesai menjawab untuk nama persendirian. Pembantu yang berjaya pada dua yang pertama dan gagal pada yang ketiga menunjukkan dasar penyelesai dan bukan penghalaan. Pembantu yang tidak mengkonfigurasi peranti itu langsung mungkin tidak pernah dijalankan, dan itu persoalan kebenaran, bukan rangkaian. Sahkan bit boleh laksana dan akaun perkhidmatan sebelum menulis semula mana-mana logik.

Sahkan sambung, sambung semula dan putus

Persediaan hanyalah separuh daripada kontrak, kerana pembantu yang sama mesti memulihkan atau membuang keadaan yang dimilikinya apabila terowong ditutup. Pembantu yang menambah laluan dan tidak pernah membuangnya meninggalkan mesin dengan laluan lapuk yang hidup lebih lama daripada sesi.

ip -brief address show tun0
ip route get 10.24.8.15
resolvectl status tun0
journalctl -u NetworkManager -b --no-pager | grep -i -E 'vpnc|script'

Jalankan tiga yang pertama semasa bersambung, putuskan sambungan, kemudian jalankan semula dan sahkan bahawa laluan dan entri penyelesai telah hilang. Baris keempat menunjukkan sama ada pembantu dipanggil langsung dan laluan boleh laksana mana yang digunakan oleh perkhidmatan itu. Simpan pasangan output itu dalam tiket, kerana perbandingan sebelum dan selepas itulah yang menjadikan pepijat pembersihan jelas.

Kekalkan pembantu dalam pakej dan boleh dilaksana oleh akaun perkhidmatan, kerana skrip yang berjalan dalam shell anda masih boleh ditolak di bawah dasar perkhidmatan yang terhad. Apabila penyesuaian benar-benar diperlukan, dokumentasikan tujuan dan pemiliknya serta bandingkan dengan versi pakej pada setiap peningkatan. Fork pembantu yang tidak dijelaskan ialah salah satu daripada sedikit perkara yang boleh menyebabkan sambungan yang berfungsi gagal setahun kemudian.

Artikel berkaitan