OpenVPN tidak bermula, dan mesej kegagalan menunjuk baris yang kelihatan betul: Unrecognized option or missing or extra parameter(s) in office.ovpn:42: ca. Sijil tidak berubah, fail dibuka dalam editor, dan tiada apa yang kelihatan salah pada laluan. Penghurai tidak membantah nama pilihan itu; ia membantah berapa banyak argumen yang tiba bersamanya. Empat pemeriksaan menyelesaikan hampir setiap kes sedemikian, dan ia wajar dijalankan mengikut urutan kos.

Mengapa penghurai menyalahkan pilihan

Setiap baris konfigurasi dipecahkan pada ruang dan pada petikan sebelum mana-mana pilihan melihatnya. Jadi nilai yang mengandungi ruang tiba sebagai beberapa argumen melainkan dibungkus, dan pilihan pemilik baris melaporkan ketidakpadanan. Di Windows direktori pemasangan lalai memastikannya, kerana C:\Program Files berada di tengah laluan secara binaan. Sijil tidak pernah dibuka dalam kegagalan ini, jadi menyemak sama ada fail itu wujud tidak membuktikan apa-apa yang berguna.

Nombor baris yang dilaporkan biasanya betul, dan pilihan yang dilaporkan ialah yang menggunakan baris itu. Apabila pilihan yang dinamakan ialah satu yang anda tahu tidak pernah anda tulis, baca baris di atasnya, kerana petikan yang hilang dalam blok terdahulu menggeser penghuraian. Begitulah blok sijil akhirnya disalahkan atas bilangan argumen.

ca C:\Program Files\OpenVPN\config\office-ca.crt

Letakkan petikan pada setiap laluan yang mengandungi ruang

Satu pasang petikan berganda di sekeliling nilai ialah keseluruhan pembaikan, dan garis condong ke hadapan diterima di Windows, jadi pelarian tidak pernah menjadi sebahagian daripada masalah. Betulkan setiap pilihan laluan dalam hantaran yang sama, kerana penghurai berhenti pada kegagalan pertama dan yang seterusnya hanya menunggu permulaan semula berikutnya. Set itu biasanya merangkumi ca, cert, key, tls-auth dan auth-user-pass.

ca "C:/Program Files/OpenVPN/config/office-ca.crt"
cert "C:/Program Files/OpenVPN/config/office.crt"
key "C:/Program Files/OpenVPN/config/office.key"

Carian mengikut nama direktori menemui setiap kejadian lebih pantas daripada membaca fail. Jalankannya sebelum sebarang suntingan, supaya senarai itu lengkap:

Select-String -Path .\office.ovpn -Pattern 'Program Files'

Memindahkan profil ke laluan tanpa ruang ialah alternatif yang sah, dan ia sah hanya jika setiap laluan turut berpindah. Profil yang separuh berpindah menghasilkan semula ralat yang sama dengan nama fail lain, yang lebih sukar dikesan kerana mesej kini menunjuk laluan yang baru anda cipta. Pilih satu pendekatan dan selesaikannya.

Pulihkan pengisytiharan mod sebelum sijil

Punca kedua yang lazim menghasilkan mesej berbeza dengan petang yang sama terbuang. Profil klien mesti mengisytiharkan modnya berhampiran bahagian atas, dan pengisytiharan itu mudah hilang apabila hanya blok sijil ditampal ke dalam fail baharu. Tanpanya OpenVPN membaca fail dengan set lalai yang berbeza, dan kerosakan muncul jauh kemudian sebagai konflik antara pilihan atau kegagalan log masuk. Baris yang hilang murah untuk diperiksa dan mahal untuk dilupakan.

client
dev tun
proto udp
remote vpn.example.net 1194

Kekalkan satu arahan setiap baris selagi anda berada di sana. Baris yang dicantum menghasilkan tepat ralat bilangan argumen daripada bahagian pertama, dan baris yang dilaporkan kelihatan munasabah kerana cantuman berlaku di tempat editor mematahkan teks. Baca baris mentah, bukan yang dipaparkan.

Kerosakan pengekodan kelihatan seperti nama pilihan

Fail yang disimpan sebagai UTF-16, lengkap dengan tanda susunan bait, menyembunyikan pilihan pertamanya daripada penghurai, dan bait sesat boleh melekat pada nama pilihan dalam mesej. Simpan fail sebagai UTF-8 tanpa tanda susunan bait, kemudian buka semula dan pastikan aksara pertama ialah huruf biasa. Editor, ubah hala PowerShell dan teks yang ditampal daripada tetingkap sembang semuanya mengubah pengekodan tanpa bertanya.

Format-Hex .\office.ovpn | Select-Object -First 1

Tanda susunan bait muncul sebagai bait penanda di hadapan sebelum apa-apa teks, dan memadam aksara itu dengan tangan ialah langkah yang kalah kerana editor menulisnya semula pada penyimpanan berikutnya. Simpan semula fail dengan pengekodan eksplisit sebagai gantinya. Hujung baris lebih bertolak ansur, tetapi fail tanpa baris baharu di hujung masih boleh menggabungkan arahan terakhir ke dalam yang sebelumnya selepas suntingan.

Pemeriksaan mana dahulu, dan mengapa

Mulakan dengan pengekodan, kerana ia berharga satu arahan dan membatalkan setiap bacaan fail yang lain. Kemudian petikan, kemudian pengisytiharan mod dan arahan wajib yang lain, dan hanya selepas itu sijil, kunci dan kelayakan. Bekerja dalam urutan itu mengekalkan setiap langkah boleh diterbalikkan, kerana sijil yang ditukar untuk membetulkan masalah petikan meninggalkan pemasangan yang berfungsi dengan kegagalan baharu yang dua suntingan daripada asal. Urutan lebih penting daripada pemeriksaan individu.

Simpan salinan fail yang tidak disentuh sebagaimana operator menghantarnya. Jika suntingan kemudian merosakkannya, perbezaan dengan salinan itu menunjukkan sama ada petikan, baris baharu atau bait penanda telah bergerak, yang lebih pantas daripada membaca semula ralat itu. Rujukan pilihan bagi setiap arahan ada dalam manual OpenVPN bagi versi yang dipasang.

Artikel berkaitan