Lỗi 407 Proxy Authentication Required có nghĩa là máy chủ Proxy nhận được yêu cầu nhưng chưa chấp nhận thông tin xác thực. Đây khác với lỗi 401 của website đích: mã 407 đến từ lớp Proxy, trước khi yêu cầu được chuyển tiếp thành công tới website.
Không chia sẻ mật khẩu thật: khi chụp màn hình hoặc gửi log hỗ trợ, hãy che host, username, password, token và IP whitelist.
Lỗi 407 xảy ra ở đâu?
Với HTTP Proxy, ứng dụng có thể gửi tiêu đề xác thực sau khi Proxy yêu cầu. Nếu thông tin thiếu, sai hoặc phương thức không được hỗ trợ, Proxy trả 407. Trình duyệt có thể mở hộp thoại nhập tài khoản; công cụ dòng lệnh thường hiển thị trực tiếp mã trạng thái.
SOCKS5 dùng cơ chế thương lượng xác thực riêng, vì vậy không nhất thiết trả mã HTTP 407. Nếu bạn thấy 407, nhiều khả năng ứng dụng đang giao tiếp với HTTP Proxy hoặc một cổng trung gian HTTP.
Nguyên nhân phổ biến
- Sai username hoặc password, có khoảng trắng thừa khi sao chép.
- Gói Proxy hết hạn, tài khoản bị khóa hoặc hết lưu lượng.
- Đang dùng sai host, port hoặc giao thức.
- Tài khoản yêu cầu whitelist IP nhưng IP hiện tại chưa được thêm.
- Ứng dụng không hỗ trợ xác thực Proxy hoặc không gửi lại thông tin sau phản hồi 407.
- Mật khẩu có ký tự đặc biệt nhưng được đặt trực tiếp trong URL mà chưa mã hóa đúng.
- Thông tin đăng nhập cũ còn trong trình duyệt, hệ điều hành hoặc tiện ích.
Bước 1: Kiểm tra trạng thái gói
- Đăng nhập bảng điều khiển nhà cung cấp.
- Xác nhận gói còn hạn, còn lưu lượng và Proxy đang hoạt động.
- Sao chép lại đúng host, port, username và password từ nguồn chính thức.
- Kiểm tra có giới hạn số kết nối hoặc quốc gia cho tài khoản hay không.
Nếu vừa đổi mật khẩu, hãy cập nhật ở tất cả ứng dụng và xóa thông tin cũ. Đừng thử liên tục với mật khẩu sai vì một số hệ thống có thể tạm khóa để bảo vệ tài khoản.
Bước 2: Xác định đúng giao thức và cổng
Một host có thể cung cấp nhiều cổng: HTTP, HTTPS CONNECT hoặc SOCKS5. Dùng HTTP client với cổng SOCKS5, hoặc ngược lại, thường tạo lỗi khó hiểu. Hãy đối chiếu tài liệu gói và xem phân biệt HTTP, HTTPS và SOCKS5.
| Dữ liệu gói | Cấu hình nên thử |
|---|---|
| HTTP Proxy | http://HOST:PORT |
| SOCKS5 Proxy | socks5h://HOST:PORT |
| Whitelist IP | Không nhất thiết dùng username/password |
Bước 3: Kiểm tra độc lập bằng curl
Dùng dữ liệu mẫu, không dán mật khẩu thật vào nơi công cộng:
curl -v --proxy http://HOST:PORT --proxy-user "USERNAME:PASSWORD" https://api.ipify.org
Nếu lệnh trả IP Proxy, tài khoản và cổng hoạt động; lỗi nằm ở cấu hình ứng dụng. Nếu vẫn 407, kiểm tra lại thông tin gói, whitelist và định dạng. Tùy hệ thống, log chi tiết có thể cho biết Proxy yêu cầu phương thức xác thực nào.
Ký tự đặc biệt trong mật khẩu
Định dạng http://user:password@host:port dễ lỗi khi mật khẩu chứa @, :, /, # hoặc %. Các ký tự này có ý nghĩa trong URL và cần percent-encoding. Cách an toàn hơn là dùng trường username/password riêng của ứng dụng hoặc tùy chọn --proxy-user của curl.
Không ghi mật khẩu vào script được chia sẻ hoặc lịch sử lệnh trên máy dùng chung. Có thể dùng biến môi trường hoặc trình quản lý bí mật phù hợp, nhưng cần tránh in giá trị ra log.
Whitelist IP bị sai
Một số gói cho phép xác thực bằng IP nguồn. Nếu nhà mạng đổi IP công khai, whitelist cũ sẽ không còn đúng. Hãy kiểm tra IP công khai hiện tại khi chưa qua Proxy, sau đó cập nhật danh sách trong bảng điều khiển theo hướng dẫn nhà cung cấp.
- Không whitelist dải quá rộng nếu không cần.
- Không đưa IP nội bộ 192.168.x.x hoặc 10.x.x.x khi hệ thống yêu cầu IP công khai.
- Nếu đang dùng VPN, IP nguồn mà Proxy nhìn thấy có thể là IP thoát VPN.
- Chờ thời gian đồng bộ nếu bảng điều khiển có thông báo thay đổi chưa áp dụng ngay.
Lỗi 407 trong trình duyệt
Trình duyệt có thể kế thừa Proxy từ hệ điều hành hoặc tiện ích. Hãy kiểm tra chỉ có một lớp cấu hình đang hoạt động. Nếu hộp thoại đăng nhập lặp lại, xóa thông tin đăng nhập Proxy đã lưu, đóng toàn bộ trình duyệt rồi thử lại trong hồ sơ kiểm thử.
Một số trình duyệt hoặc tiện ích không hỗ trợ gửi thông tin xác thực cho tất cả kiểu Proxy. Thử curl giúp xác định tài khoản có hoạt động hay không trước khi thay đổi nhiều thiết lập.
Lỗi 407 trong ứng dụng và mã nguồn
Ứng dụng cần truyền cả URL Proxy và thông tin xác thực đúng cách. Kiểm tra tài liệu của thư viện: biến môi trường, session, request riêng lẻ và HTTPS tunneling có thể dùng cấu hình khác nhau. Không vô hiệu hóa kiểm tra chứng chỉ TLS để “sửa” 407; hai vấn đề không liên quan và việc đó làm giảm bảo mật.
Bảng chẩn đoán nhanh
| Hiện tượng | Khả năng | Cách xử lý |
|---|---|---|
| Curl cũng trả 407 | Sai tài khoản, cổng, whitelist hoặc gói hết hạn | Đối chiếu bảng điều khiển |
| Curl đúng, trình duyệt sai | Trình duyệt không gửi xác thực hoặc còn cache | Xóa thông tin cũ, kiểm tra tiện ích |
| Chỉ lỗi khi dùng URL có mật khẩu | Ký tự đặc biệt chưa mã hóa | Dùng trường xác thực riêng |
| Hôm qua dùng được, hôm nay 407 | IP whitelist thay đổi hoặc gói hết hạn | Kiểm tra IP nguồn và thời hạn |
| Nhiều lần đăng nhập liên tiếp | Thông tin cũ hoặc phương thức không hỗ trợ | Thử curl và đọc phương thức xác thực |
Những cách không nên làm
- Không tắt TLS hoặc bỏ kiểm tra chứng chỉ.
- Không đăng username/password lên diễn đàn để nhờ kiểm tra.
- Không thay đổi ngẫu nhiên nhiều cổng cùng lúc mà không ghi lại.
- Không dùng công cụ bẻ khóa hoặc thử mật khẩu tự động.
- Không tiếp tục gửi tải lớn khi tài khoản đang báo lỗi xác thực.
Checklist trước khi liên hệ hỗ trợ
- Mã đơn hàng hoặc tên gói, không gửi mật khẩu.
- Thời gian lỗi và múi giờ.
- Host, port và giao thức đã che bớt phần nhạy cảm.
- Kết quả curl đã loại bỏ dòng chứa thông tin đăng nhập.
- IP nguồn nếu dùng whitelist.
- Tên ứng dụng, hệ điều hành và ảnh chụp đã che dữ liệu.
Kết luận
Lỗi 407 cho biết Proxy chưa chấp nhận xác thực. Hãy kiểm tra theo thứ tự: trạng thái gói, giao thức và cổng, username/password, whitelist IP, ký tự đặc biệt và khả năng của ứng dụng. Dùng curl làm phép thử độc lập giúp tách lỗi tài khoản khỏi lỗi cấu hình. Luôn bảo vệ thông tin đăng nhập và không dùng biện pháp làm suy yếu TLS để xử lý một lỗi xác thực Proxy.