OpenConnect di macOS: paket, arsip rilis, atau klon git
Homebrew menyediakan biner plus skrip jaringan; pohon sumber tidak menyediakan keduanya sampai Anda membuat dan menjalankannya. Ketahui mana yang dipakai koneksi Anda.
Tiga jalur memberi Anda klien OpenConnect di Mac, dan ketiganya meninggalkan hal berbeda di disk. Formula Homebrew memasang biner terkompilasi plus skrip jaringan yang mengatur rute dan DNS. Arsip rilis memberi Anda kode sumber dengan sistem build yang dihasilkan. Klon git memberi Anda kode sumber tanpa itu. Memilih yang salah adalah alasan orang menemukan configure yang hilang beberapa menit setelah memulai tutorial.
Dua mesin berbeda dengan nama yang sama
Jalur paket adalah satu perintah, dan itu default yang tepat bagi siapa pun yang pekerjaannya menghubungkan, bukan mengembangkan.
brew install openconnect
Apa yang dipasangnya lebih penting daripada perintahnya. Anda mendapatkan biner klien, dan Anda juga mendapatkan vpnc-script yang dipanggil klien untuk memprogram antarmuka, rute, dan resolver. Keduanya bekerja sebagai pasangan: biner mengakhiri sesi TLS dan menyerahkan antarmuka yang dihasilkan ke skrip, dan skrip adalah bagian yang tahu bagaimana sistem operasi ini ingin jaringannya diubah.
Pemisahan itu menjelaskan seluruh kelas laporan yang membingungkan. Klien yang terhubung, melaporkan sukses, lalu mengirim lalu lintas ke jalur yang salah biasanya masalah skrip, bukan masalah terowongan, dan memasang ulang formula memperbaikinya hanya karena skrip juga dipasang ulang. Periksa dukungan formula saat ini untuk macOS dan arsitektur CPU sebelum merencanakan berdasarkan itu; Mac yang menjalankan shell dengan sempurna mungkin belum memiliki paket terkini yang dibangun untuknya.
Apa yang sebenarnya dilakukan jalur sumber
Arsip rilis datang dengan sistem build yang dihasilkan, jadi ./configure yang familier sudah ada sejak awal. Klon git tidak, karena file yang dihasilkan adalah produk build, bukan hal yang disimpan proyek. Itulah seluruh alasan ./autogen.sh muncul dalam petunjuk untuk klon dan bukan untuk arsip rilis.
./autogen.sh
./configure
make
make install
Setiap baris melakukan sesuatu yang spesifik, dan mengetahui baris mana yang gagal menghemat banyak dugaan. Langkah autogen menjalankan autotools untuk menghasilkan configure. Langkah configure memeriksa kompiler, pustaka, dan header yang dibutuhkan klien, lalu menulis makefile yang mencerminkan apa yang ditemukannya. Langkah make mengompilasi. Langkah install menyalin hasilnya ke suatu tempat di path Anda.
Di baris terakhir itulah saran biasanya salah arah. Instalasi bukan bukti bahwa build berhasil, dan menjalankannya di folder unduhan sembarang dengan hak istimewa tinggi adalah cara yang baik untuk menyebarkan file yang nanti tidak Anda ingat. Jika configure gagal karena pustaka yang hilang, keluaran yang berguna adalah kesalahan pertama yang dicetaknya, bukan dua puluh baris terakhir log.
Sesi dan konfigurasi jaringan terpisah
Perbedaan ini menentukan apakah koneksi benar-benar membawa lalu lintas. Membangun sesi TLS memberi Anda antarmuka di sisi klien. Menerapkan rute, alamat, dan resolver DNS adalah langkah kedua yang dilakukan melalui skrip jaringan, dan build yang menghasilkan biner tanpa skrip hanya punya separuh klien.
Pemisahan yang sama menjelaskan mengapa dua mesin dengan klien identik berperilaku berbeda: skrip memeriksa konfigurasi jaringan sistem, dan konfigurasi itu mencakup apa pun yang telah mengklaim rute. Saat terowongan terpisah mengirim lalu lintas ke tempat yang tak terduga, terowongan menjalankan tugasnya dan keputusan perutean adalah hal yang harus diperiksa.
Jadi saat men-debug, tanyakan lapisan mana yang gagal. Sesi yang tidak pernah terbentuk adalah protokol, sertifikat, atau kredensial. Sesi yang terbentuk dan tidak meneruskan apa pun adalah antarmuka dan skrip. Klien terpasang yang berfungsi dari satu jaringan dan tidak dari jaringan lain adalah keterjangkauan, dan tidak ada jumlah pembangunan ulang yang mengubahnya.
Ketahui biner mana yang Anda jalankan
Build yang dipasang manual dan biner paket dapat hidup berdampingan dengan damai, dan mana yang berjalan bergantung pada path Anda, bukan niat Anda. Cari tahu sebelum melaporkan nomor versi kepada siapa pun.
which -a openconnect
openconnect --version
brew list --versions openconnect
Perintah pertama mendaftar setiap salinan yang dapat dilihat shell Anda, dalam urutan yang akan dicobanya. Yang kedua memberi tahu Anda mana yang menjawab. Saat itu tidak cocok dengan harapan Anda, Anda menjalankan build dari eksperimen lama, dan tidak ada perubahan konfigurasi yang akan memindahkannya.
Memasang klien bukan persetujuan gateway
Biner yang berfungsi tidak membuat penerapan menjadi kompatibel. Pastikan protokol gateway, alur autentikasinya, dan persyaratan perangkat terkelola dengan orang-orang yang memilikinya, karena itu fakta kebijakan dan lapisan aplikasi yang tidak dapat disediakan build.
Petunjuk build proyek membahas urutan autotools dan persyaratan skrip jaringan lebih terperinci, dan itulah referensi yang harus diikuti, bukan pos blog yang lebih tua dari rilis macOS Anda. Jika tujuannya hanya terhubung, ambil paketnya, pertahankan skripnya, dan biarkan kompilator di luar.