Tiga laluan memberi anda klien OpenConnect pada Mac, dan semuanya meninggalkan perkara berbeza pada cakera. Formula Homebrew memasang binari yang dikompil dan skrip rangkaian yang mengkonfigurasi laluan serta DNS. Arkib keluaran memberi anda kod sumber dengan sistem binaan yang dijana. Klon git memberi anda kod sumber tanpanya. Memilih yang salah ialah sebab orang menemui configure yang hilang beberapa minit selepas bermulanya tutorial.

Dua mesin berbeza di bawah nama yang sama

Laluan pakej ialah satu arahan, dan itulah lalai yang betul bagi sesiapa yang tugasnya menyambung dan bukan membangun.

brew install openconnect

Apa yang dipasangnya lebih penting daripada arahannya. Anda mendapat binari klien, dan anda juga mendapat vpnc-script yang dipanggil klien untuk memprogram antara muka, laluan dan penyelesai. Kedua-duanya bekerja secara berpasangan: binari menamatkan sesi TLS dan menyerahkan antara muka yang terhasil kepada skrip, dan skrip ialah bahagian yang tahu bagaimana sistem pengendalian ini mahu rangkaiannya diubah.

Pemisahan itu menjelaskan seluruh kelas laporan yang mengelirukan. Klien yang menyambung, melaporkan kejayaan dan kemudian menghantar trafik ke laluan yang salah biasanya masalah skrip, bukan masalah terowong, dan memasang semula formula hanya membaikinya kerana skrip juga dipasang semula. Semak sokongan formula semasa untuk macOS dan seni bina CPU sebelum merancang berdasarkannya; Mac yang menjalankan shell dengan sempurna mungkin masih tiada pakej semasa yang dibina untuknya.

Apa yang sebenarnya dilakukan laluan sumber

Arkib keluaran datang dengan sistem binaan yang dijana, jadi ./configure yang biasa sudah ada sejak awal. Klon git tidak, kerana fail yang dijana ialah produk binaan dan bukan perkara yang disimpan projek. Itulah seluruh sebab ./autogen.sh muncul dalam arahan untuk klon dan bukan untuk arkib keluaran.

./autogen.sh
./configure
make
make install

Setiap baris melakukan sesuatu yang khusus, dan mengetahui baris mana yang gagal menjimatkan banyak tekaan. Langkah autogen menjalankan autotools untuk menghasilkan configure. Langkah configure menguji pengkompil, pustaka dan pengepala yang diperlukan klien, kemudian menulis makefile yang mencerminkan apa yang ditemuinya. Langkah make mengompil. Langkah install menyalin hasilnya ke suatu tempat dalam laluan anda.

Pada baris terakhir itulah nasihat selalunya tersasar. Pemasangan bukan bukti bahawa binaan berjaya, dan menjalankannya dalam mana-mana folder muat turun dengan keistimewaan tinggi ialah cara yang baik untuk menabur fail yang anda tidak akan ingat kemudian. Jika configure gagal kerana pustaka tiada, keluaran berguna ialah ralat pertama yang dicetaknya, bukan dua puluh baris terakhir log.

Sesi dan konfigurasi rangkaian adalah berasingan

Perbezaan ini menentukan sama ada sambungan benar-benar membawa trafik. Menubuhkan sesi TLS memberi anda antara muka di sebelah klien. Menggunakan laluan, alamat dan penyelesai DNS ialah langkah kedua yang dilakukan melalui skrip rangkaian, dan binaan yang menghasilkan binari tanpa skrip mempunyai separuh klien.

Pemisahan yang sama menjelaskan mengapa dua mesin dengan klien yang sama berkelakuan berbeza: skrip merujuk konfigurasi rangkaian sistem, dan konfigurasi itu merangkumi apa sahaja yang telah menuntut laluan. Apabila terowong berpecah menghantar trafik ke tempat yang tidak dijangka, terowong itu melakukan tugasnya dan keputusan penghalaan ialah perkara yang perlu diperiksa.

Jadi semasa menyahpepijat, tanyakan lapisan mana yang gagal. Sesi yang tidak pernah terbentuk ialah protokol, sijil atau kelayakan. Sesi yang terbentuk dan tidak memajukan apa-apa ialah antara muka dan skrip. Klien yang dipasang yang berfungsi dari satu rangkaian dan tidak dari rangkaian lain ialah kebolehcapaian, dan tiada jumlah pembinaan semula mengubahnya.

Ketahui binari mana yang anda jalankan

Binaan yang dipasang secara manual dan binari berpakej boleh hidup bersama dengan aman, dan yang mana berjalan bergantung pada laluan anda, bukan niat anda. Ketahuinya sebelum melaporkan nombor versi kepada sesiapa.

which -a openconnect
openconnect --version
brew list --versions openconnect

Arahan pertama menyenaraikan setiap salinan yang dilihat oleh shell anda, mengikut urutan yang akan dicubanya. Yang kedua memberitahu anda yang mana menjawab. Apabila itu tidak sepadan dengan jangkaan anda, anda menjalankan binaan daripada eksperimen lama, dan tiada perubahan konfigurasi akan mengalihkannya.

Memasang klien bukan kelulusan gerbang

Binari yang berfungsi tidak menjadikan penggunaan serasi. Sahkan protokol gerbang, aliran pengesahannya dan sebarang keperluan peranti terurus dengan orang yang memilikinya, kerana itu fakta dasar dan lapisan aplikasi yang tidak dapat dibekalkan oleh binaan.

Arahan binaan projek membincangkan urutan autotools dan keperluan skrip rangkaian dengan lebih terperinci, dan itulah rujukan yang harus diikuti, bukan catatan blog yang lebih lama daripada versi macOS anda. Jika tujuannya hanya untuk menyambung, ambil pakej itu, kekalkan skrip itu, dan tinggalkan pengkompil di luar.

Artikel berkaitan