Kiểm tra proxy HTTP bằng curl
Dùng phép thử curl có giới hạn thời gian để xem kết nối proxy, đường hầm HTTPS, trạng thái phản hồi và quy tắc bỏ qua mà không đổi proxy toàn cục của thiết bị.
Thay 127.0.0.1:8080 bằng điểm cuối của dịch vụ hoặc từ danh sách proxy HTTP, rồi chạy lệnh này với một đích HTTPS vô hại:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/Địa chỉ loopback chỉ bộ lắng nghe trên chính máy của bạn. Lệnh chọn rõ điểm đó, xóa danh sách bỏ qua proxy của curl cho lần gọi này, cho phép năm giây để thiết lập kết nối và mười lăm giây tổng cộng. Nó không thay đổi thiết lập proxy của trình duyệt hay hệ thống.
Dùng tệp thực thi curl thật nếu shell đặt curl làm bí danh cho chương trình khác; curl --version xác định bản dựng. Nếu bản thân bộ lắng nghe cần TLS, hãy dùng lược đồ URL proxy được ghi trong tài liệu của nó.
Đọc bốn kết quả, không chỉ một dấu hiệu thành công
- Đã kết nối với proxy được chọn: địa chỉ và cổng có thể truy cập.
- CONNECT được chấp nhận: proxy đã mở đường hầm tới đích HTTPS.
- Chứng chỉ của đích được xác minh: TLS hoàn tất với các kiểm tra tin cậy dự kiến.
- Đã nhận phản hồi từ đích: xem trạng thái và nội dung để biết có đạt kết quả ứng dụng cần hay không.
Một đường hầm hoạt động vẫn có thể dẫn tới phản hồi 403 hoặc 429 từ đích. curl cũng có thể thoát thành công sau khi nhận phản hồi lỗi HTTP, nên hãy ghi cả trạng thái phản hồi lẫn kết quả lỗi của curl. Chỉ kết nối TCP hoặc CONNECT thành công là chưa đủ.
Kết quả gọn để so sánh nhiều lần
Trong shell kiểu Unix, bỏ phần thân và in trạng thái đường hầm, trạng thái đích, đầu bên kia của kết nối và thời gian đã trôi qua:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --silent --show-error --output /dev/null --write-out 'http=%{http_code} connect=%{http_connect} peer=%{remote_ip} total=%{time_total}\n' https://example.com/http_connect mô tả phản hồi đường hầm; http_code mô tả phản hồi HTTP cuối cùng. remote_ip là đầu bên kia của kết nối curl, không phải phép đo độc lập về địa chỉ thoát của proxy. Trên hệ thống khác, thay /dev/null hoặc giữ phần thân phản hồi.
Nếu phép thử thất bại, tìm bước thiết lập kết nối hoặc truyền dữ liệu bị lỗi rồi so sánh với truy cập trực tiếp tới cùng đích ở nơi cho phép tuyến đó:
curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/--noproxy '*' bỏ qua proxy. Xác minh chứng chỉ thất bại trên cả hai tuyến gợi ý vấn đề tin cậy chung; truy cập trực tiếp thành công nhưng CONNECT bị từ chối gợi ý xác thực hoặc chính sách proxy. Xem lại đầu ra chi tiết trước khi chia sẻ vì có thể chứa thông tin nhận dạng.
Lưu điểm cuối, đích và dấu thời gian cùng kết quả. Điều này xác lập những gì đã hoạt động cho yêu cầu đó; khả năng hoạt động trong tương lai, quyền riêng tư và hiệu năng khi có tải cần bằng chứng riêng.