Thoát hay ngắt kết nối: hai kết quả VPN khác nhau
Thoát, ngắt kết nối, tạm dừng và đóng cửa sổ có thể để lại các trạng thái dọn dẹp và chặn khác nhau. Hãy đọc định nghĩa của ứng dụng khách trước khi kiểm tra hành vi riêng tư.
Menu có Ngắt kết nối, cửa sổ có nút đóng, và trình quản lý tác vụ có Kết thúc tác vụ. Mỗi thứ trông như một cách dừng VPN, và mỗi thứ có thể để máy ở một trạng thái khác nhau. Một cái có thể dừng đường hầm trong khi vẫn giữ chặn, cái khác có thể dọn sạch mọi thứ như một phần của việc thoát gọn gàng, và cái thứ ba có thể chỉ ẩn giao diện trong khi thành phần nền vẫn chạy. Coi chúng là từ đồng nghĩa chính là cách một bài kiểm tra riêng tư đi đến kết luận sai về những gì đã xảy ra.
Tài liệu của ứng dụng khách là nơi đáng tin cậy duy nhất để biết cái nào là cái nào.
Bốn điều khiển, có thể bốn hành vi
Ngắt kết nối thường tháo đường hầm trong khi ứng dụng khách vẫn thường trú, nghĩa là một dịch vụ, một thành phần trong khay hệ thống hoặc một quy tắc kill switch có thể sống sót sau cú nhấp. Nhiều ứng dụng khách sau đó tiếp tục chặn lưu lượng vì chính sách của họ nói rằng thiết bị không được quay lại truy cập trực tiếp khi ứng dụng khách còn hiện diện. Hành vi đó trông như mạng hỏng và là sự bảo vệ có chủ đích.
Thoát là để kết thúc ứng dụng, và một ứng dụng khách cư xử đúng sẽ gỡ các quy tắc của nó khi thoát. Một số thiết kế thay vào đó để lại một trình trợ giúp riêng thực thi chính sách, và đó là lựa chọn, không phải lỗi. Đóng cửa sổ là hành động giao diện không có tác động xác định lên đường hầm, và Tạm dừng, nơi được cung cấp, là hành vi thứ tư với các quy tắc riêng.
Sự cố phía máy chủ là con đường thứ năm hoàn toàn khác, và đó là điều người dùng thực tế gặp thường xuyên nhất.
Đọc trạng thái trước và sau mỗi hành động
Ghi lại danh sách tiến trình, trạng thái dịch vụ và các quy tắc tường lửa trước hành động, rồi lặp lại việc ghi ngay sau đó. So sánh hai danh sách cho thấy điều khiển thực sự đã làm gì, mà không dựa vào mô tả của chính giao diện.
systemctl status wg-quick@wg0 --no-pager pgrep -a -f 'openvpn|wireguard|vpnagent' ip link show | grep -E 'tun|wg' nft list ruleset | grep -E 'drop|reject' | head -20 scutil --nc list
Nếu các quy tắc biến mất cùng với tiến trình thì ứng dụng khách là chủ của chúng. Nếu các quy tắc vẫn còn trong khi tiến trình đã mất, thứ khác đang thực thi chính sách, và việc tìm thành phần đó đến trước mọi thay đổi. Ghi lại trạng thái dịch vụ tại cùng thời điểm, vì một giao diện đã dừng không nói gì về dịch vụ hệ thống.
Ngắt kết nối thủ công không phải là sự cố sụp
Ngắt kết nối đi theo con đường tắt máy dự kiến, còn sự cố sụp bỏ qua nó. Vì vậy kết quả của cái này không chuyển sang cái kia, nên một bài kiểm tra dùng mục menu không thể chống đỡ khẳng định về hành vi khi ứng dụng khách chết.
Tương tự, sự cố sụp không nói gì về một tạm dừng đã được phê duyệt. Hãy giữ ba câu hỏi đó riêng rẽ trong kế hoạch kiểm tra và trong mọi thứ được viết ra sau đó. Con đường tắt máy cũng giải thích vì sao một lần thoát sạch có thể gỡ các quy tắc mà sự cố sụp để lại. Cùng một nút, mã khác, bằng chứng khác.
Chọn trạng thái không khả dụng mà bạn thực sự cần
Nếu lưu lượng phải luôn bị chặn mỗi khi đường hầm không hoạt động, hãy xác minh yêu cầu đó trong hành động cụ thể mà bạn quan tâm, dùng lưu lượng vô hại đến một đích đã biết. Bao gồm cả loại trừ ứng dụng và ngoại lệ mạng cục bộ, vì việc thực thi trên toàn thiết bị thường hẹp hơn tên gọi gợi ý. Sau đó xác nhận điều gì xảy ra sau khi khởi động lại, vì đó thường là lúc trạng thái cũ xuất hiện.
Nếu mục tiêu là truy cập trực tiếp thông thường, hãy dùng điều khiển đã được ghi trong tài liệu thay vì giết tiến trình hoặc tắt toàn bộ tường lửa. Các quy tắc cũ do một lần thoát bị gián đoạn để lại là vấn đề khác với khóa có chủ đích, và chúng cần cách khôi phục khác.
Ghi lại thành phần nào đã dừng: đường hầm, ứng dụng nhìn thấy được, hay lớp thực thi chính sách. Một câu đó ngăn phần lớn sự nhầm lẫn mà các điều khiển này tạo ra.