Lỗi proxy timeout: kết nối treo rồi hết thời gian chờ
Cập nhật:
Timeout khó chịu hơn các lỗi khác vì nó không nói gì cả: không từ chối, không đòi mật khẩu, chỉ im lặng cho tới khi phần mềm bỏ cuộc. Thường thì gói tin của bạn đi tới đâu đó và biến mất, hoặc proxy nhận kết nối nhưng không trả lời kịp. Việc cần làm là xác định im lặng xảy ra ở bước nào.
Ba dạng timeout chúng tôi đo được
Chúng tôi dựng một proxy thử nghiệm nhận kết nối TCP nhưng không bao giờ trả lời, rồi chạy cùng lệnh với hai kiểu giới hạn thời gian (địa chỉ viết lại thành 203.0.113.10:8080, user123:pass456):
curl --connect-timeout 10 -x http://user123:[email protected]:8080 https://example.comchocurl: (28) Proxy CONNECT aborted due to timeout. Giới hạn này chỉ áp cho giai đoạn kết nối.- Thay bằng
-m 10(giới hạn tổng thời gian) chocurl: (28) Connection timed out after 10002 milliseconds. - Chromium trỏ vào proxy đó báo
ERR_TIMED_OUT; công cụ check proxy báotimeout.
Nguyên nhân, xếp theo khả năng
- Mạng bạn đang dùng lặng lẽ chặn port proxy. Wi-Fi công ty, khách sạn, trường học hay bỏ gói tin tới port lạ thay vì từ chối. Kết quả là chờ mãi.
- Đặt timeout quá ngắn trong code. Proxy ở nước xa cần thêm thời gian bắt tay; giới hạn 2–3 giây có thể cắt ngang một proxy vẫn đang chạy tốt.
- Proxy hoặc website đích quá tải. Proxy nhận kết nối nhưng phải chờ website trả lời, và bạn hết kiên nhẫn trước.
- Sai IP. Gõ nhầm IP sang một địa chỉ không phản hồi thì không có gì từ chối bạn, chỉ có im lặng.
Cách sửa theo môi trường
- Windows/Chrome: thử cùng proxy qua 4G của điện thoại. Hết timeout thì mạng cũ chặn; đọc kiểm tra proxy và tường lửa.
- Trình duyệt antidetect: nút check proxy thường có giới hạn chờ cố định. Bấm lại vài lần, và nếu chỉ một số profile lỗi thì so sánh dòng proxy của chúng với dòng đang chạy.
- Telegram: treo ở trạng thái đang kết nối sau khi bật proxy thường cũng là timeout; thử proxy trong checker trước khi sửa Telegram.
- Python requests: truyền
timeout=(10, 30), tức 10 giây cho kết nối và 30 giây cho đọc dữ liệu. Bắt riêngrequests.exceptions.ConnectTimeoutvàrequests.exceptions.ReadTimeoutđể biết treo ở bước nào. Thêm vài lần thử lại có khoảng nghỉ thay vì tăng timeout vô hạn. - curl: dùng
--connect-timeoutđể đo riêng bước kết nối,-mđể giới hạn cả lệnh.
Timeout hay chỉ là chậm?
Một proxy chậm vẫn trả lời, chỉ là lâu. Công cụ đo tốc độ proxy cho bạn thời gian phản hồi thật; nếu con số gần sát giới hạn timeout của phần mềm, hãy nới giới hạn hoặc chọn proxy ở nước gần đích hơn. Nếu đo nhiều lần đều không có phản hồi, đó là timeout thật và nên gửi ticket kèm kết quả checker.
Các bước thực hiện
- 1
Chạy checker để xác nhận timeout
Dán dòng proxy vào công cụ check proxy. Kết quả
timeoutnghĩa là không có phản hồi trong thời gian chờ. - 2
Đổi mạng để khoanh vùng
Thử lại qua 4G. Chạy được thì vấn đề nằm ở mạng hoặc tường lửa cũ.
- 3
Đo thời gian phản hồi
Dùng công cụ đo tốc độ proxy để xem proxy chậm hay không trả lời.
- 4
Chỉnh timeout và thử lại trong phần mềm
Nới giới hạn kết nối lên khoảng 10 giây và thêm lần thử lại, rồi chạy lại tác vụ.
Câu hỏi thường gặp
Proxy timeout có phải proxy đã chết?
Chưa chắc. Rất nhiều ca timeout do mạng của người dùng chặn port. Thử trên mạng khác trước khi kết luận.
Nên đặt timeout bao nhiêu cho proxy trong code?
Khoảng 10 giây cho kết nối và 30 giây cho đọc là điểm khởi đầu hợp lý. Proxy ở xa hoặc trang nặng có thể cần thêm.
Vì sao chỉ một vài website bị timeout qua proxy?
Khi đó proxy vẫn chạy, website đích phản hồi chậm hoặc chặn. Nếu website trả lỗi 502 thay vì im lặng, xem 502 Bad Gateway.
Timeout khác gì máy chủ proxy từ chối kết nối?
Từ chối về ngay lập tức; timeout thì chờ tới hết giới hạn. Xem máy chủ proxy từ chối kết nối.
Chọn proxy gần thị trường của bạn
VinaProxy có IP ở Việt Nam, Mỹ, Nhật, Hàn, Singapore, Anh và Hồng Kông để bạn chọn nơi gần đích nhất.
Xem bảng giá