Vì sao OpenVPN trên Windows báo ca: đường dẫn không có dấu ngoặc kép, không phải chứng chỉ hỏng
Đường dẫn Program Files không có dấu ngoặc kép bị tách thành nhiều đối số, và bộ phân tích đổ lỗi cho tùy chọn. Hãy kiểm tra dấu ngoặc kép, dòng máy khách và bảng mã.
OpenVPN không khởi động, và thông báo lỗi chỉ vào một dòng trông có vẻ đúng: Unrecognized option or missing or extra parameter(s) in office.ovpn:42: ca. Chứng chỉ không thay đổi, tệp mở được trong trình soạn thảo, và không có gì trên đường dẫn trông sai. Bộ phân tích không phản đối tên tùy chọn; nó phản đối số đối số đi kèm. Bốn bước kiểm tra giải quyết gần như mọi trường hợp như vậy, và nên thực hiện theo thứ tự chi phí.
Vì sao bộ phân tích đổ lỗi cho tùy chọn
Mỗi dòng cấu hình được tách theo khoảng trắng và theo dấu ngoặc kép trước khi bất kỳ tùy chọn nào nhìn thấy nó. Vì thế một giá trị có khoảng trắng sẽ đến dưới dạng nhiều đối số nếu không được bao lại, và tùy chọn sở hữu dòng đó báo cáo sự không khớp. Trên Windows, thư mục cài đặt mặc định khiến điều đó chắc chắn, vì C:\Program Files nằm giữa đường dẫn theo cấu trúc. Chứng chỉ không bao giờ được mở trong lỗi này, nên việc kiểm tra tệp có tồn tại hay không chẳng chứng minh được gì hữu ích.
Số dòng được báo cáo thường đúng, và tùy chọn được báo cáo là tùy chọn đã dùng dòng đó. Khi tùy chọn được nêu là tùy chọn mà bạn biết mình chưa bao giờ viết, hãy đọc dòng phía trên, vì một dấu ngoặc kép bị mất trong khối trước đó làm lệch việc phân tích. Đó là cách một khối chứng chỉ cuối cùng bị đổ lỗi về số đối số.
ca C:\Program Files\OpenVPN\config\office-ca.crtĐặt dấu ngoặc kép quanh mọi đường dẫn có khoảng trắng
Một cặp dấu ngoặc kép quanh giá trị là toàn bộ việc sửa, và Windows chấp nhận dấu gạch chéo, nên việc thoát ký tự không bao giờ trở thành một phần của vấn đề. Sửa mọi tùy chọn đường dẫn trong cùng một lượt, vì bộ phân tích dừng ở lỗi đầu tiên và lỗi tiếp theo chỉ chờ lần khởi động lại kế tiếp. Bộ này thường gồm ca, cert, key, tls-auth và 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"Tìm kiếm theo tên thư mục tìm ra mọi lần xuất hiện nhanh hơn việc đọc tệp. Hãy chạy nó trước mọi chỉnh sửa, để danh sách được đầy đủ:
Select-String -Path .\office.ovpn -Pattern 'Program Files'Chuyển hồ sơ sang đường dẫn không có khoảng trắng là một phương án hợp lệ, và chỉ hợp lệ nếu mọi đường dẫn cũng chuyển theo. Một hồ sơ chuyển dở dang tái tạo đúng lỗi đó với tên tệp khác, điều khó nhận ra hơn vì thông báo giờ chỉ vào đường dẫn bạn vừa tạo. Hãy chọn một cách và làm cho xong.
Khôi phục khai báo chế độ trước các chứng chỉ
Nguyên nhân phổ biến thứ hai cho một thông báo khác với cùng buổi chiều bị mất. Hồ sơ máy khách phải khai báo chế độ của nó gần phần đầu, và khai báo đó dễ mất khi chỉ dán các khối chứng chỉ vào một tệp mới. Không có nó OpenVPN đọc tệp với một bộ giá trị mặc định khác, và hỏng hóc xuất hiện muộn hơn nhiều dưới dạng xung đột giữa các tùy chọn hoặc đăng nhập thất bại. Dòng bị thiếu thì rẻ để kiểm tra và đắt để quên.
client
dev tun
proto udp
remote vpn.example.net 1194Giữ một chỉ thị mỗi dòng trong khi bạn ở đó. Các dòng bị nối tạo ra đúng lỗi số đối số từ phần đầu tiên, và dòng được báo cáo trông hợp lý vì việc nối xảy ra ở chỗ trình soạn thảo ngắt văn bản. Hãy đọc dòng thô, không phải dòng được hiển thị.
Hỏng bảng mã trông giống tên tùy chọn
Một tệp được lưu dưới dạng UTF-16 kèm dấu thứ tự byte sẽ giấu tùy chọn đầu tiên khỏi bộ phân tích, và các byte lạc có thể dính vào tên tùy chọn trong thông báo. Lưu tệp dưới dạng UTF-8 không có dấu thứ tự byte, sau đó mở lại và xác nhận ký tự đầu tiên là chữ cái bình thường. Trình soạn thảo, chuyển hướng PowerShell và văn bản dán từ cửa sổ trò chuyện đều đổi bảng mã mà không hỏi.
Format-Hex .\office.ovpn | Select-Object -First 1Dấu thứ tự byte xuất hiện như các byte đánh dấu mở đầu trước mọi văn bản, và xóa tay những ký tự đó là nước đi thua vì trình soạn thảo ghi chúng trở lại ở lần lưu kế tiếp. Thay vào đó hãy lưu lại tệp với bảng mã rõ ràng. Kết thúc dòng dễ dãi hơn, nhưng một tệp không có dòng mới ở cuối vẫn có thể gộp chỉ thị cuối vào chỉ thị trước sau khi chỉnh sửa.
Kiểm tra nào trước, và vì sao
Bắt đầu bằng bảng mã, vì nó chỉ tốn một lệnh và làm mất hiệu lực mọi cách đọc khác của tệp. Rồi đến dấu ngoặc kép, rồi khai báo chế độ và các chỉ thị bắt buộc khác, và chỉ sau đó mới đến chứng chỉ, khóa và thông tin đăng nhập. Làm việc theo thứ tự đó giữ cho mỗi bước có thể đảo ngược, vì một chứng chỉ được thay để sửa vấn đề dấu ngoặc kép sẽ để lại một bản cài đặt đang chạy với lỗi mới cách bản gốc hai lần chỉnh sửa. Thứ tự quan trọng hơn từng bước kiểm tra riêng lẻ.
Giữ một bản sao không bị chạm tới của tệp đúng như người vận hành đã gửi. Nếu một chỉnh sửa sau đó làm hỏng nó, so sánh với bản sao đó cho thấy một dấu ngoặc kép, một dòng mới hay một byte đánh dấu đã dịch chuyển hay chưa, việc này nhanh hơn đọc lại lỗi. Tham chiếu tùy chọn cho mỗi chỉ thị nằm trong hướng dẫn OpenVPN của phiên bản đã cài.