Verification

Xác minh Proxy Miễn phí Trước khi Tin tưởng Gửi Lưu lượng Thực

3 min read Published Updated 470 words

Các proxy miễn phí thường thất bại nhiều hơn là hoạt động. Một danh sách công khai luân chuyển qua hàng chục nghìn ứng viên và nhiệm vụ của bạn là tìm ra tập con nhỏ hiện đang hoạt động, đủ nhanh và không có chủ đích độc hại. Năm bài kiểm tra, mỗi bài chi phí thấp, được chạy theo thứ tự.

Kiểm tra 1: Khả năng tiếp cận TCP

curl --connect-timeout 5 --proxy http://1.2.3.4:8080 \
     -s -o /dev/null -w "%{http_code}\n" \
     https://api.ipify.org

Mã thoát khác không hoặc phản hồi trống có nghĩa là proxy đã chết. Khoảng 60–80% của bất kỳ danh sách miễn phí nào sẽ trượt bài kiểm tra này tại bất kỳ thời điểm nào. Bỏ qua ngay lập tức và không thử lại.

Kiểm tra 2: Xác minh IP đầu ra

Cùng một lệnh gọi trả về IP công cộng mà yêu cầu xuất phát từ đó. Nếu nó bằng 1.2.3.4 — địa chỉ của proxy — thì proxy đang chuyển tiếp lưu lượng một cách chính xác. Nếu nó bằng IP cục bộ của bạn, proxy bị hỏng hoặc trong suốt: nó đã chấp nhận kết nối nhưng không thực sự chuyển tiếp qua chính nó. Hãy coi đó là một lỗi mặc dù TCP đã thành công.

Kiểm tra 3: Tính minh bạch của Header

curl --proxy http://1.2.3.4:8080 https://httpbin.org/headers

Phản hồi phản hồi lại các header mà đích đã nhận. Tìm kiếm X-Forwarded-For, Via, hoặc Forwarded với IP thực của bạn. Nếu bạn tìm thấy chúng, proxy đang ở chế độ trong suốt hoặc ẩn danh thay vì elite. Đối với HTTPS qua CONNECT, điều này không còn quan trọng — đích chỉ thấy bắt tay TLS, không có header ứng dụng — nhưng đối với HTTP văn bản thuần, nó quyết định proxy có phù hợp với mục đích hay không.

Kiểm tra 4: Độ trễ dưới tải

Đo thời gian một lần rất nhiễu. Chạy mười yêu cầu nối tiếp qua proxy và lấy giá trị trung vị. Bất cứ thứ gì trên hai giây đều không thể sử dụng cho công việc tương tác. Dưới 500 mili giây là cạnh tranh với việc không dùng proxy. Giữa các con số đó, proxy phù hợp cho việc thu thập dữ liệu hàng loạt nhưng không phải để duyệt web.

Kiểm tra 5: Tính toàn vẹn của dấu vân tay TLS

Kết nối qua proxy đến một điểm cuối TLS đã biết và xác minh chuỗi chứng chỉ khớp với những gì bạn nhận được khi không có proxy. Sự không khớp có nghĩa là proxy đang chặn TLS — thực hiện tấn công trung gian (man-in-the-middle) và lưu lượng "đã mã hóa" của bạn thực sự không được mã hóa từ proxy trở đi. Điều này hiếm gặp trên các proxy SOCKS được cấu hình đúng (chúng không thể nhìn thấy TLS) nhưng xuất hiện trên các proxy HTTPS doanh nghiệp cấu hình sai và trên các nút công cộng độc hại không thường xuyên. openssl s_client -proxy 1.2.3.4:8080 -connect example.com:443 in ra chuỗi chứng chỉ.

Quy trình làm việc thực tế

Lấy danh sách, lọc theo quốc gia và giao thức, phân tán năm bài kiểm tra trên một nhóm song song khoảng 50 worker, và giữ lại những cái sống sót. Từ 100 ứng viên thô, một lần chạy điển hình thu được 5–15 mục có thể sử dụng. Tốc độ suy giảm khoảng 30–60 phút đối với HTTP và HTTPS, lâu hơn một chút đối với SOCKS — lên lịch làm mới theo nhịp đó và đưa tập hợp sống sót vào cấu hình scraper hoặc trình duyệt của bạn. Lưu vào bộ nhớ đệm kết quả kiểm tra trong suốt vòng đời của một lô và kiểm tra lại ở lô tiếp theo.