openvpn --errors-to-stderr là một tùy chọn khởi chạy, không phải lỗi
Thấy --errors-to-stderr trong dòng lệnh không có nghĩa là có gì đó đã thất bại. Hãy xác định bạn đang đọc dòng khởi chạy hay đầu ra của tiến trình, rồi kiểm tra.
Một dòng lệnh chứa --errors-to-stderr trông giống một lời phàn nàn nhưng không phải trông giống một lời phàn nàn nhưng không phải. Từ này thuộc về tên của một tùy chọn, cũng như tên tệp nhật ký không nói gì về nội dung của tệp. Trước khi thay đổi bất kỳ cấu hình nào, hãy xác định bạn thực sự đang đọc gì.
Quyết định có ba nhánh: dòng đó là chính lần khởi chạy, dòng đó là đầu ra do chương trình in, hoặc dòng đó là văn bản mà một trình bao bọc đã lặp lại trước khi VPN khởi động. Mỗi nhánh chỉ ra một nơi khác nhau để xem, và chỉ một trong số đó là thông điệp của chính VPN.
Tên tùy chọn không phải thông điệp trạng thái
Với Community OpenVPN, --errors-to-stderr chuyển đầu ra lỗi sang lỗi chuẩn thay vì đầu ra chuẩn. Đây là lựa chọn luồng, không phải bộ lọc mức độ nghiêm trọng, và nó không tạo ra lỗi. Một --log hoặc --log-append sau đó có thể chuyển cùng những thông điệp ấy vào một tệp, vì vậy tác dụng của cờ phụ thuộc phần còn lại của lệnh. Tài liệu tham chiếu ghi nhật ký từ nguồn quy định thứ tự đó.
Vậy sự hiện diện của cờ cho biết lỗi sẽ đi đâu. Nó không cho biết đã có lỗi xảy ra.
Dòng khởi chạy hay đầu ra của tiến trình
Bắt đầu bằng câu hỏi ai đã in văn bản đó. Một đơn vị dịch vụ, một gói ứng dụng hoặc một trình bao bọc shell thường lặp lại toàn bộ argv trước khi tiến trình VPN ghi bất cứ thứ gì. Không thể phân biệt tiếng vọng đó với một dòng trạng thái nếu bạn chỉ thấy một đoạn.
Nếu dòng đó đến từ trình bao bọc, VPN chưa chạy và không có gì để báo cáo. Hãy nhìn xuống dưới trong đầu ra để tìm thông điệp đầu tiên có dấu thời gian hoặc tên hệ thống con.
Nếu dòng đó đến từ tiến trình VPN, nó vẫn chỉ là lời gọi. OpenVPN không in dòng lệnh của chính nó như một lỗi, và những thông điệp quan trọng đến sau đó.
Tìm tiến trình và kết quả của nó
Xác định xem tiến trình còn chạy hay không. Một ứng dụng khách đang sống và thử lại trông rất khác với một ứng dụng đã thoát ngay, và cùng một dòng lệnh đứng trước cả hai.
Sau đó đọc kết quả qua thành phần sở hữu tiến trình. Dưới systemd, đó là nhật ký của đơn vị; trong ứng dụng máy tính để bàn, đó là nhật ký hoặc bảng điều khiển của chính ứng dụng. Trạng thái thoát cùng những thông điệp cuối trả lời câu hỏi mà tên tùy chọn chỉ gợi ý.
Lỗi phân tích cấu hình, tệp bị thiếu, thông tin xác thực bị từ chối và hết thời gian chờ của đối tác là bốn sự kiện khác nhau. Chúng đến trên cùng một luồng. Chúng cần bốn cách sửa khác nhau. Hãy quyết định bạn đang gặp cái nào trước khi chạm vào hồ sơ, và trích dẫn chính xác thông điệp khi bạn nhờ trợ giúp.
Khi nào cờ xứng đáng với vị trí của nó
Cờ xứng đáng với vị trí của nó khi stdout mang dữ liệu và lỗi không được làm ô nhiễm nó, hoặc khi một trình bao bọc bắt hai luồng riêng biệt. Trong một phiên ở tiền cảnh trên terminal, cả hai luồng đều đến trước mắt bạn. Trong trường hợp đó, sự phân biệt hiếm khi thay đổi việc bạn làm.
Giữ nó nếu kịch bản xung quanh phụ thuộc vào việc tách luồng. Xóa nó vì cái tên trông đáng lo sẽ thay đổi nơi thông điệp xuất hiện và không sửa được gì khác.
Những gì không nên thay đổi
Đừng coi tùy chọn này là một bước sửa chữa. Xóa nó không thể sửa chứng chỉ, tuyến đường hay lỗi xác thực.
Nếu lời gọi chứa --config stdin, cấu hình đang được cấp qua đầu vào chuẩn. Đây là một quyết định riêng về cách tệp được cung cấp. Hãy thay đổi từng thứ một, và đọc lại thông điệp thực tế trước khi thay đổi thứ hai.