Hồ sơ OpenVPN của Windows thất bại trên Ubuntu: ba tầng
Dòng được đẩy chỉ dành cho Windows chỉ là một cảnh báo. Cùng hồ sơ đó thất bại từ terminal trước tiên vì quyền, sau đó vì một trình trợ giúp phân giải bị thiếu.
Khởi chạy cùng hồ sơ đó từ terminal và thông báo mà hầu hết mọi người sao chép là một cảnh báo, không phải lý do client dừng lại. Ở đây ba tầng độc lập cùng thất bại: một chỉ thị được đẩy mà bản dựng Linux không triển khai, các quyền cần thiết để tạo thiết bị tun, và trình trợ giúp phân giải biến kết nối thành DNS hoạt động. Hãy xử lý theo thứ tự, vì mỗi tầng có thể che khuất tầng tiếp theo.
Giữ bản tải xuống như khi nhận được và chỉnh sửa một bản sao, để một lần tải mới không âm thầm hoàn tác các thay đổi của bạn.
Đọc cảnh báo trước khi đổ lỗi cho nó
block-outside-dns khóa DNS trên Windows thông qua Nền tảng Lọc của Windows, và client Linux không có gì để ánh xạ nó. Khi máy chủ đẩy nó, client in một dòng về tùy chọn không xác định cho mục được đẩy đó và tiếp tục, vì tùy chọn được đẩy không bị coi là gây chết. Nhưng cùng dòng đó trong tệp của bạn lại là chuyện khác: ở đó trình phân tích dừng lại. Hãy xác định bạn có cái nào trong hai cái trước khi chạm vào bất cứ thứ gì, vì chỉ một trong hai kết thúc lần chạy.
Để loại bỏ tiếng ồn, hãy lọc nó trước khi phân tích: một mục pull-filter ignore cho tên đó, hoặc --ignore-unknown-option khi dòng nằm trong tệp cục bộ. Cả hai đều làm im lặng một dòng bạn đã đọc; không cái nào sửa chữa một lỗi bạn chưa chẩn đoán.
Quyền thất bại trước mọi thứ khác
Thiết bị tun và các tuyến đường đi kèm là những đối tượng đặc quyền, và một tài khoản thông thường không thể tạo chúng. Tùy chọn --user giải thích sự phân tách này: daemon chỉ từ bỏ đặc quyền sau khi công việc đặc quyền hoàn tất. Khởi chạy nó với quyền root, hoặc qua một unit khởi chạy như vậy, rồi tìm lỗi quyền trước khi xem chứng chỉ. Nới lỏng quyền tệp trên hồ sơ không trao cho tiến trình những quyền mà nó còn thiếu.
Lỗi TLS nghĩa là client đã vượt qua tầng này. Khiếu nại về thiết bị hoặc tuyến đường nghĩa là nó chưa bao giờ chạm tới tầng bên trên.
Điều GUI làm mà terminal không làm
Kết nối thành công trong khi mọi tra cứu vẫn thất bại là tầng thứ ba. NetworkManager tự thực hiện công việc phân giải của mình, nên một lần nhập từ desktop có thể cấp DNS ngay cả khi script up của hồ sơ chưa bao giờ chạy thành công. Lệnh openvpn --config thực thi những gì --up chỉ định, và nếu thiếu trình trợ giúp đó, giao diện xuất hiện trong khi các truy vấn vẫn đi tới máy chủ trước đó. Hãy so sánh script của hai đường dẫn trước khi cài đặt bất cứ thứ gì.
Dùng trình trợ giúp đóng gói sẵn cho bản phân phối của bạn; một script sao chép từ bài blog thường nhắm tới trình phân giải khác. Tích hợp được cung cấp cho systemd-resolved không phải script chung kiểu vpnc, và mỗi cái mong đợi đối số và biến riêng từ client. Các script up do người dùng định nghĩa cũng yêu cầu script-security 2 trước khi client thực thi chúng.
Tách các tầng trong lần chạy tiếp theo
Chạy một lần với --verb 4 và đọc nhật ký theo thứ tự đã xảy ra: tạo thiết bị, tuyến đường, bắt tay TLS, rồi đầu ra của script up. Lỗi đầu tiên trong chuỗi đó là lỗi đáng sửa; mọi thứ sau đó thường là hệ quả. Một đường hầm được thiết lập trong khi trình phân giải không làm vậy đặt bạn vào tầng thứ ba, nơi chứng chỉ không còn liên quan. Hãy để hồ sơ đã tải xuống nguyên vẹn trong khi so sánh.
Khi mỗi điều chỉnh của người vận hành tạo ra thêm một dòng bị từ chối, tệp đang nhắm tới một nền tảng khác. Hãy yêu cầu bản xuất cho Linux thay vì xây dựng một danh sách lọc cố định.
Ghi lại tầng nào đã thất bại và điều gì đã thay đổi nó, nếu không người tiếp theo nhận cùng tệp cũng sẽ dừng ở cảnh báo.