Lỗi 407 Proxy Authentication Required là gì và sửa thế nào
Cập nhật:
Mã 407 là tin tốt hơn bạn nghĩ: máy đã chạm tới được proxy, đường mạng không bị chặn. Proxy chỉ báo rằng nó chưa nhận được username và password hợp lệ, nên gần như mọi ca lỗi 407 được giải quyết ở thông tin đăng nhập chứ không phải ở router hay tường lửa.
Nguyên nhân gây lỗi 407, từ hay gặp nhất tới hiếm
- Sai hoặc thiếu user/pass. Gõ tay nhầm một ký tự, hoặc copy dính dấu cách ở cuối password. Đây là nguyên nhân của phần lớn ca 407.
- Điền đảo ô. Dán nguyên dòng
ip:port:user:passvào ô Host, hoặc để username vào ô password. Một số phần mềm tự tách 4 trường, số khác thì không. - Ứng dụng không gửi thông tin đăng nhập. Cài proxy ở mức hệ điều hành chỉ lưu IP và port; app nào không biết hỏi mật khẩu sẽ kết nối mà không có header xác thực và nhận 407.
- Password có ký tự đặc biệt trong URL. Khi viết dạng
http://user:pass@host:port, các ký tự như@,:,#trong password phải được mã hoá phần trăm (ví dụ@thành%40), nếu không phần mềm cắt sai chuỗi.
Output thật khi gặp 407
Chúng tôi tái hiện lỗi trên proxy thử nghiệm với địa chỉ minh hoạ 203.0.113.10:8080 và cặp user123:pass456 bị gõ sai. Với trang HTTPS, lệnh curl -x http://user123:[email protected]:8080 https://example.com trả về curl: (56) CONNECT tunnel failed, response 407. Với trang HTTP thường và cờ -w %{http_code}, curl in ra đúng 407.
Thêm cờ -v để xem curl có gửi thông tin đăng nhập không: lần lượt hiện > CONNECT example.com:443 HTTP/1.1, > Proxy-Authorization: Basic ... rồi mới tới 407. Thiếu dòng Proxy-Authorization nghĩa là user/pass chưa hề được gửi.
Trên công cụ check proxy của VinaProxy, cùng tình huống hiện auth failed (407). Chrome headless (không có hộp thoại đăng nhập) báo ERR_TUNNEL_CONNECTION_FAILED, xem trang lỗi tunnel.
Cách sửa theo từng môi trường
- Windows và Chrome: Chrome dùng proxy của Windows (Settings > Network & Internet > Proxy), nơi chỉ lưu địa chỉ và port. Ở trang đầu tiên, Chrome mở hộp thoại hỏi username và password; nhập sai mà hộp thoại không hiện lại thì đóng hết cửa sổ Chrome rồi mở lại.
- Antidetect (AdsPower, GoLogin, GenLogin): tách rõ 4 ô Host, Port, Username, Password. Xoá hẳn ô password rồi dán lại từ dashboard thay vì sửa từng ký tự, xem cài proxy AdsPower.
- Điện thoại: trên iPhone, Settings > Wi-Fi > (i) > Configure Proxy có công tắc Xác thực; quên bật là gặp 407. Android thường chỉ cho nhập host và port.
- curl: dùng
-U "user:pass"tách riêng thay vì nhét vào URL để tránh lỗi ký tự đặc biệt. - Python requests: ghi
http://user:pass@host:portcho cả khoáhttpvàhttpstrong dictproxies; password đặc biệt thì mã hoá bằngurllib.parse.quote.
Khi thông tin đúng mà vẫn 407
So giao thức trước tiên. VinaProxy có proxy HTTP(S) đăng nhập bằng user:pass và cả SOCKS5; hãy chọn đúng giao thức ghi trên đơn trong dashboard. Checker hiện not socks5 nghĩa là port đó là HTTP, đừng cấu hình SOCKS5 cho nó. Checker báo OK mà phần mềm vẫn 407 thì lỗi nằm ở cách phần mềm gửi thông tin.
Các bước thực hiện
- 1
Copy lại thông tin proxy từ dashboard
Mở đơn hàng trong dashboard VinaProxy, copy nguyên dòng proxy, không gõ tay.
- 2
Thử dòng đó trên công cụ check proxy
Dán vào công cụ check proxy. Kết quả
auth failed (407)xác nhận lỗi là user/pass, không phải mạng. - 3
Xoá khoảng trắng và kiểm tra từng ô
Trong phần mềm, xoá hẳn ô Username và Password rồi dán lại, đảm bảo không có dấu cách đầu hoặc cuối.
- 4
Chọn đúng giao thức của đơn
Đặt kiểu proxy là HTTP hoặc SOCKS5 theo đúng đơn hàng, rồi lưu cấu hình.
Câu hỏi thường gặp
Lỗi 407 proxy có phải do nhà mạng chặn không?
Không. 407 là phản hồi do chính proxy gửi về, nghĩa là kết nối đã thông. Nhà mạng hay tường lửa chặn thì bạn sẽ gặp timeout hoặc connect failed, xem lỗi timeout proxy.
Vì sao Chrome cứ hiện hộp thoại đăng nhập proxy lặp lại?
Mỗi lần nhập sai, proxy trả 407 và Chrome hỏi lại. Kiểm tra Caps Lock và bộ gõ tiếng Việt có tự thêm dấu vào password không.
Password có ký tự @ thì viết vào URL proxy thế nào?
Thay @ bằng %40, : bằng %3A, # bằng %23. Với curl, dùng cờ -U thì không cần mã hoá.
Selenium hoặc Puppeteer báo lỗi tunnel thay vì 407, có liên quan không?
Có. Chrome headless không có hộp thoại đăng nhập nên lỗi 407 hiện thành ERR_TUNNEL_CONNECTION_FAILED. Cần truyền user/pass bằng cơ chế xác thực của thư viện, xem Puppeteer.
Proxy riêng, thông tin đăng nhập rõ ràng
Mỗi đơn VinaProxy có sẵn dòng ip:port:user:pass để copy một lần, dán vào mọi phần mềm.
Xem bảng giá proxy