OpenVPN báo quá trình khởi tạo đã xong: vì sao dấu nhắc không trở lại
Dòng nhật ký cuối cùng đánh dấu kết thúc quá trình khởi động, không phải kết thúc chương trình. Chọn giữa gỡ lỗi ở tiền cảnh, một đơn vị dịch vụ và chế độ daemon.
Không có gì bị treo khi terminal im lặng sau dòng nhật ký cuối cùng. Đó là hình dạng mong đợi của một ứng dụng khách chạy ở tiền cảnh: nó đã khởi động xong và giờ ngồi đó chuyển lưu lượng. Dấu nhắc của shell không phải dấu hiệu thành công như nó trông có vẻ.
Hãy coi thông báo là ranh giới giữa khởi động và trạng thái ổn định, vì đó chính là điều nó đánh dấu.
Thông báo đánh dấu kết thúc khởi động, không phải kết thúc tiến trình
OpenVPN in dòng đó sau khi đã mở thiết bị, cấu hình giao diện, cài đặt tuyến đường và hoàn tất trao đổi TLS với đối tác. Sau đó tiến trình tiếp tục chạy, vì nhiệm vụ của nó là giữ đường hầm mở và chuyển tiếp gói tin. Một chương trình ở tiền cảnh không trở lại dấu nhắc khi vẫn đang làm nhiệm vụ đó. Việc im lặng sau đó là bình thường, vì ứng dụng khách chỉ nói khi có điều gì thay đổi.
Nếu dòng đó xuất hiện và kết nối chết sau đó, đó là sự kiện khác, và nhật ký sẽ nói điều đó sau khi sự việc xảy ra.
Ctrl+C là một quyết định, không phải cách sửa
Nhấn Ctrl+C gửi một ngắt, mà ứng dụng khách xử lý như yêu cầu tắt. Dấu nhắc quay lại, đường hầm biến mất và mọi phiên đang dùng nó kết thúc. Điều đó trông như tiến bộ và thực ra là ngược lại. Nếu mục tiêu là kết nối lâu dài, câu trả lời là chuyển tiến trình tới nơi nó có thể tiếp tục mà không cần terminal của bạn, không phải ngắt nó.
Để nó ở tiền cảnh là lựa chọn đúng khi bạn đang gỡ lỗi, vì các lỗi sau đó vẫn hiện trong cùng cửa sổ. Một phút im lặng không chứng minh điều gì theo hướng nào; hãy thử một tài nguyên qua đường hầm thay vì nhìn kết xuất.
Điều thông báo không chứng minh
Hoàn tất là một phát biểu cục bộ về cấu hình của chính ứng dụng khách. Nó không nói rằng phía bên kia trả lời, rằng các tuyến đường đã cài khớp với điều bạn cần, hay rằng việc phân giải tên qua đường hầm hoạt động. Một hồ sơ đường hầm chia tách có thể được khởi tạo hoàn hảo trong khi thư mục chia sẻ của công ty vẫn không truy cập được vì tuyến đường hoặc chính sách DNS chưa bao giờ phủ nó. Các thực thể phía máy chủ in một dòng tương tự khi sẵn sàng nhận khách, điều đó không giống với việc có một ứng dụng khách đang kết nối.
«Máy chủ đã khởi động» và «máy tính xách tay mở được thư mục chia sẻ» là những quan sát từ hai nơi khác nhau, và trộn chúng sẽ khiến bạn gỡ lỗi sai máy chủ.
Chạy mà không cần terminal
Với triển khai lâu dài, hãy dùng cách bố trí dịch vụ mà nền tảng hỗ trợ. Trên máy chủ systemd, đó là một thực thể openvpn-client@office với hồ sơ trong /etc/openvpn/client, được khởi động và bật để sống sót qua các lần khởi động lại. Community OpenVPN cũng cung cấp --daemon cùng với --log hoặc --log-append, thứ tách tiến trình ra và gửi kết xuất vào một tệp. Cả hai cách đều thay đổi cách tiến trình chạy; không cách nào sửa một tuyến đường hay làm cho một ứng dụng từ xa khỏe mạnh.
Kiểm tra rằng bạn không khởi động thực thể thứ hai bên cạnh thực thể đã được một dịch vụ quản lý. Hai ứng dụng khách đòi cùng một hồ sơ tạo ra nhật ký khó hiểu và một đường hầm mà bạn không định có.
Chọn cách bố trí phù hợp với công việc
Tiền cảnh để chẩn đoán, dịch vụ cho mọi thứ phải sống lâu hơn phiên, chế độ daemon khi không có trình quản lý dịch vụ để dựa vào. Ba cách này bao phủ các trường hợp thông thường, và mỗi cách có lý do rõ ràng để tồn tại. Chọn một trong số chúng do vô tình chính là điều tạo ra báo cáo «chạy được cho đến khi đóng cửa sổ».
Khi đường hầm cần ở lại, hãy xác nhận sau đó rằng nó trở lại sau khi khởi động lại và nhật ký của nó rơi vào nơi bạn sẽ xem. Dòng khởi tạo cũng xuất hiện trong những nhật ký đó, và khi ấy không ai cần theo dõi terminal vì nó nữa.