Đường hầm của bạn đã dựng, trang trạng thái hiển thị một handshake khỏe mạnh, nhưng một ứng dụng vẫn không tải được gì. Ứng dụng đó có lẽ vẫn gửi yêu cầu đến một trung gian cũ hơn: proxy hệ thống, tiện ích mở rộng, tệp cấu hình do quản lý thiết bị đẩy xuống, hoặc một biến proxy mà chỉ tiến trình của nó đọc. Đổi máy chủ VPN sẽ không chạm vào cài đặt đó, và điều này giải thích kiểu lỗi trong đó các ứng dụng khác vẫn chạy từ cùng máy. Hãy làm việc từ ứng dụng bị lỗi ra ngoài, và để yên đường hầm cho đến khi câu hỏi về proxy được giải quyết.

Lớp nào sở hữu cài đặt proxy

Bốn nơi có thể đòi quyền chi phối yêu cầu của một ứng dụng, và thường nơi hẹp nhất thắng. Hệ điều hành giữ một proxy toàn cục và một URL cấu hình tự động tùy chọn; trình duyệt có thể tuân theo, ghi đè hoặc giao quyền kiểm soát cho tiện ích mở rộng; công cụ dòng lệnh đọc môi trường của chính nó; và chính sách được quản lý có thể ghim lại bất kỳ mục nào ở trên sau một thay đổi. Hãy quyết định lớp nào chịu trách nhiệm trước khi sửa bất cứ thứ gì, vì xóa nhầm lớp trông giống một bản sửa thành công nhưng sẽ quay lại ở lần đăng nhập sau.

So sánh hai ứng dụng trên cùng một trang web thông thường thay vì trên trang kiểm tra chỉ dành cho VPN. Nếu trình duyệt lỗi trong khi tải xuống ở terminal thành công, hệ điều hành không phải vấn đề, và khác biệt nằm trong hồ sơ trình duyệt hoặc các tiện ích của nó. Nếu cả hai đều lỗi nhưng tài khoản người dùng thứ hai trên cùng máy lại thành công, cài đặt là theo từng người dùng. Việc so sánh đó tốn một phút và loại bỏ phần lớn phỏng đoán.

Đọc giá trị mà mỗi công cụ thực sự dùng

In cấu hình trước khi thay đổi, và sao chép chuỗi proxy chính xác vào nơi bạn có thể khôi phục. Các biến shell là kiểm tra nhanh nhất cho công cụ dòng lệnh, vì ứng dụng VPN thường để chúng nguyên vẹn.

env | grep -i -E 'http_proxy|https_proxy|all_proxy|no_proxy'
scutil --proxy
gsettings get org.gnome.system.proxy mode
netsh winhttp show proxy

Chỉ chạy dòng khớp với nền tảng trước mặt bạn, rồi đọc kết quả về máy chủ, cổng và thông tin đăng nhập. Một giá trị như http://proxy.corp.example:8080 nghĩa là công cụ hỏi máy chủ đó cho mọi yêu cầu, còn kết quả rỗng nghĩa là nó đi trực tiếp và lỗi thật nằm ở chỗ khác. Hãy che phần người dùng và mật khẩu trước khi dán kết quả vào phiếu, vì những chuỗi đó là thông tin đăng nhập còn sống thường xuyên hơn nhiều so với mọi người tưởng.

Công cụ có động cơ proxy riêng cần bằng chứng riêng. Curl nêu quyết định mà nó đã đưa ra khi bạn tăng mức chi tiết, điều này tốt hơn đoán từ môi trường, và cùng cờ đó cho biết việc phân giải tên diễn ra cục bộ hay tại proxy.

Xóa phần ghi đè và kiểm tra lại đúng yêu cầu đó

Thay đổi một lớp, rồi lặp lại chính xác yêu cầu đã lỗi, vì một URL khác không chứng minh được gì. Trước tiên hãy xóa các biến môi trường trong shell hiện tại, vì thay đổi đó có thể đảo ngược và không thể làm hỏng đường hầm:

unset http_proxy https_proxy all_proxy
curl -v --max-time 10 https://example.com 2>&1 | grep -i -E 'uses proxy|connected to|http/'

Nếu kết quả chi tiết vẫn khẳng định có proxy, thì môi trường không phải là quyền lực. Hãy lên một cấp thay vì chồng thêm ghi đè.

Trên macOS, hãy kiểm tra rằng một tệp cấu hình tự động không cung cấp giá trị, sau đó tắt proxy của dịch vụ và xác nhận thay đổi. Trên Windows, hãy nhớ rằng cài đặt WinHTTP và cài đặt trình duyệt theo người dùng là hai đối tượng khác nhau, nên một công cụ dòng lệnh sạch có thể tồn tại cùng với trình duyệt vẫn trỏ đến máy chủ cũ. Tiện ích mở rộng cũng đáng bị nghi ngờ như vậy: một tiện ích proxy có thể ghi lại yêu cầu chỉ cho một hồ sơ, và đó chính là hình dạng của lỗi chỉ ảnh hưởng một trình duyệt và không gì khác.

Xác nhận bản sửa tồn tại qua lần khởi động lại

Một cài đặt chỉ hoạt động trong terminal bạn đã sửa thì chưa được sửa. Mở lại ứng dụng từ trình khởi chạy trên màn hình nền, đăng xuất rồi đăng nhập lại, và xem proxy cũ có quay về không.

Hai kiểm tra phân biệt một bản sửa thật với một bản tạm thời, và cả hai nên báo cáo kết nối trực tiếp hoặc giá trị mong muốn. Việc chạy trong môi trường sạch cho thấy một tiến trình đã lọc còn nhận cài đặt hệ thống hay không.

env -i /usr/bin/curl -sS -o /dev/null -w '%{http_code} %{remote_ip}
' https://example.com
networksetup -getwebproxy "Wi-Fi"

Nếu giá trị cũ quay lại sau khi khởi động lại, nguồn là một chính sách được quản lý hoặc một hồ sơ áp dụng lại nó, và chủ sở hữu chính sách đó phải gỡ ngoại lệ. Hãy để việc xác minh chứng chỉ luôn bật, vì proxy chặn lưu lượng sẽ trông như đã được giải quyết ngay khi bạn tắt các kiểm tra. Kết thúc bằng việc ghi giá trị đã gỡ và ngày tháng vào ghi chú của bạn, để người tiếp theo phân biệt được proxy cố ý với proxy bị lãng quên.

Bài viết liên quan