Ngoại lệ VPN theo từng ứng dụng hỏng khi một dịch vụ dùng chung tải dữ liệu
Cửa sổ bạn loại trừ không phải lúc nào cũng là tiến trình mở kết nối. Tìm đúng người gửi yêu cầu trước khi thêm trình trợ giúp vào quy tắc VPN theo từng ứng dụng.
Bạn loại trừ một ứng dụng khỏi VPN và bản tải xuống mà nó cần vẫn thất bại hoặc, tệ hơn, nó bắt đầu hoạt động và một thứ không liên quan dừng lại. Cửa sổ nhìn thấy được không nhất thiết là tiến trình mở mọi kết nối: một ứng dụng có thể giao việc cho trình trợ giúp, dịch vụ truyền nền hoặc một gói hoàn toàn khác. Vì vậy quy tắc theo từng ứng dụng cần mô hình danh tính thực sự của nền tảng chứ không phải tên tệp khởi chạy quen thuộc. Các kiểm tra dưới đây bắt đầu từ quan sát và quay lại người thực sự gửi yêu cầu.
Trong những phiếu này thường hai điều hỏng cùng lúc: thành phần sai bị loại trừ, và ngoại lệ không bao giờ được thu hẹp sau đó.
Tìm tiến trình, không phải cửa sổ
Tái hiện thao tác thất bại và xác định tiến trình hoặc gói đang sở hữu kết nối trong khi nó diễn ra. Trên Windows, đây là câu hỏi khác với việc cửa sổ nào đang có tiêu điểm, vì một bản truyền nền có thể được môi giới bởi dịch vụ chạy dưới danh tính riêng của nó. Trên Linux và macOS, cùng sự phân tách đó xuất hiện dưới dạng tiến trình trợ giúp và daemon hệ thống.
Ghi lại ba chi tiết: danh tính của tệp thực thi hoặc gói, đích mà nó đang liên hệ và thời điểm trong luồng công việc khi việc đó xảy ra. Một bản tải xuống thất bại lúc đầu thường là việc lấy siêu dữ liệu bởi thành phần khác so với bản tải xuống thất bại giữa chừng. Chỉ riêng khác biệt đó thường đủ để chọn đúng danh tính trước khi chạm vào quy tắc. Nếu danh tính hóa ra là dịch vụ chứ không phải ứng dụng, một sự thật đó thay đổi toàn bộ quy tắc, nên hãy xác lập nó trước.
Nếu bạn không thể quan sát tiến trình vì thao tác quá ngắn, hãy lặp lại với tải trọng lớn hơn hoặc đích chậm hơn. Mục tiêu là một quan sát có thể lặp lại, không phải một giả thuyết về trình trợ giúp nào liên quan.
Coi DNS là đường đi riêng của nó
Việc phân giải tên của hệ thống có thể hoàn toàn không đi theo ứng dụng bị loại trừ, đó là lý do một trình duyệt bị loại trừ vẫn có thể thất bại trên tên máy chủ riêng trong khi lưu lượng của nó đúng là ở ngoài đường hầm. Trình duyệt bị loại trừ; trình phân giải thì không.
Kiểm tra nền tảng làm gì với DNS khi quy tắc theo từng ứng dụng có hiệu lực, và kiểm tra riêng khỏi yêu cầu HTTP. Nếu trình phân giải là dịch vụ dùng chung, nó phục vụ mọi ứng dụng trên thiết bị, nên ngoại lệ bạn đang xem xét có đối tượng rộng hơn nhiều so với cái bạn đã thử.
Ghi lại trình phân giải nào đã trả lời và qua giao diện nào. Chỉ một quan sát đó giải quyết phần lớn các báo cáo «ứng dụng bị loại trừ nhưng tên không phân giải được», nên hãy giữ nó cùng phiếu.
Đừng mở rộng một trình trợ giúp dùng chung
Một dịch vụ dùng chung thực hiện công việc cho nhiều ứng dụng, nên loại trừ nó để sửa một luồng công việc cũng thay đổi lưu lượng không liên quan. Background Intelligent Transfer Service trên Windows là ví dụ tốt về hình dạng này: nó là hạ tầng mà nhiều ứng dụng có thể dùng, và danh tính của nó không phải danh tính của ứng dụng đã yêu cầu bản truyền.
Kiểm tra mô hình quy tắc mà ứng dụng khách hỗ trợ và các yêu cầu của tổ chức trước khi thêm ngoại lệ đó. Hỏi xem còn gì dùng thành phần này, và liệu quy tắc bạn sắp viết có thể diễn đạt theo đích thay vì theo một tiến trình dùng chung hay không.
Nếu yêu cầu hoàn toàn không thể diễn đạt như ranh giới ứng dụng, chính sách dựa trên đích hoặc một thiết kế đã được phê duyệt khác có thể dễ hiểu và an toàn hơn danh sách ngoại lệ trình trợ giúp ngày càng tăng.
Kiểm tra toàn bộ luồng công việc, không chỉ bước thất bại
Sau một thay đổi được hỗ trợ, chạy tác vụ dự định với một yêu cầu mới từ đầu đến cuối. Sau đó chạy một luồng công việc khác dùng thành phần dùng chung, vì đó là nơi một lối đi vòng rộng tự công bố. Một bản sửa chữa sửa cái thứ nhất và âm thầm làm hỏng cái thứ hai không phải là sửa chữa. Giữ cả hai kết quả trong phiếu và nêu tên rõ ràng luồng công việc thứ hai, để người đánh giá có thể lặp lại nó.
Giữ bài kiểm tra nhỏ và có thể lặp lại: cùng đích, cùng tài khoản, cùng điều kiện. Nếu luồng công việc thứ hai không được ghi lại, hãy hỏi chủ sở hữu của nó xem nó phụ thuộc vào điều gì trước khi quyết định thay đổi là an toàn.
Để lại lý do, không phải danh sách tên
Ghi lại thành phần, luồng công việc mà nó phục vụ và lý do nó bị loại trừ. Một danh sách tên trình trợ giúp không gắn mục đích sẽ trở nên không thể bảo trì trong hai chu kỳ phát hành, và kỹ sư tiếp theo sẽ xóa nhầm mục trong khi dọn dẹp nó.
Một dòng cho mỗi ngoại lệ là đủ: cái gì hỏng nếu không có nó, ai sở hữu luồng công việc đó và lần cuối nó được xác minh là khi nào. Ba trường đó biến một danh sách bí ẩn thành chính sách mà ai đó có thể bảo vệ.