如何解決 407 Proxy Authentication Required 錯誤
更新於:
出現 407 其實比表面上看起來樂觀:您的裝置已成功連線至 Proxy,網路路徑也是通暢的。Proxy 只是表示它並未收到有效的使用者名稱與密碼。因此,幾乎所有的 407 錯誤都是帳密驗證的問題,而非路由器或防火牆故障。
407 錯誤的常見原因(依可能性排序)
- 使用者名稱或密碼錯誤/遺漏。 輸入錯誤一個字元,或是複製密碼時不小心夾帶了結尾空格。大部分的 407 錯誤皆由此引起。
- 欄位貼錯位置。 把整串
ip:port:user:pass都貼進主機(Host)欄位,或是把使用者名稱貼到密碼欄。某些工具會自動為您分割這四個欄位,但有些不會。 - 應用程式從未發送驗證資訊。 作業系統層級的 Proxy 設定通常只儲存位址與連接埠。無法彈出密碼提示視窗的應用程式會在缺少驗證標頭的情況下連線,進而收到 407 回應。
- Proxy URL 中含有特殊字元。 在
http://user:pass@host:port格式中,密碼若包含@、:或#等字元,必須進行百分比編碼(例如@轉為%40),否則字串會在錯誤的位置被截斷。
407 錯誤的實際樣貌
我們在測試 Proxy 上重現了此錯誤,這裡使用文件範例位址 203.0.113.10:8080 與刻意設錯的 user123:pass456。針對 HTTPS 網站執行 curl -x http://user123:[email protected]:8080 https://example.com 會印出 curl: (56) CONNECT tunnel failed, response 407。若搭配 -w %{http_code} 針對一般 HTTP 網站執行,curl 則只會印出 407。
加上 -v 即可查看是否有送出驗證資訊。追蹤紀錄會先顯示 > CONNECT example.com:443 HTTP/1.1,接著是 > Proxy-Authorization: Basic ...,最後才是 407。若缺少 Proxy-Authorization 這一行,代表您的客戶端從未發送登入資訊。
VinaProxy 的 Proxy 檢查工具 會將相同狀況回報為 auth failed (407)。而沒有登入對話框的無頭 Chrome 則會顯示為 ERR_TUNNEL_CONNECTION_FAILED;詳情請參閱 通道錯誤頁面。
各環境的解決方法
- Windows 與 Chrome: Chrome 遵循 Windows 的 Proxy 設定(設定 > 網路和網際網路 > Proxy),該處僅能儲存位址與連接埠。首次載入網頁時,Chrome 會彈出登入對話框以供輸入 Proxy 的使用者名稱與密碼。如果輸入錯誤且對話框未再次出現,請關閉所有 Chrome 視窗後重新開啟。
- 防關聯瀏覽器(AdsPower、GoLogin、GenLogin): 將主機(Host)、連接埠(Port)、使用者名稱(Username)和密碼(Password)填入各自獨立的欄位。請將密碼欄位完全清空後重新貼上,切勿直接修改。各欄位的詳細說明請參閱 GoLogin 設定指南。
- 手機: iPhone 在「設定」>「Wi-Fi」>「(i)」>「設定代理伺服器」中有一個「認證」開關;若未開啟便會產生 407。Android 通常僅接受主機與連接埠,因此需要登入驗證的應用程式可能會改為顯示一般的連線錯誤。
- curl: 改用獨立的
-U "user:pass"參數傳遞,不要直接寫在 URL 中,這樣即可避開特殊字元引發的問題。 - Python requests: 在
proxies字典的http與https鍵中皆設定http://user:pass@host:port,若密碼含有特殊字元,請使用urllib.parse.quote進行編碼。
驗證資訊正確卻依然出現 407
接下來請比對通訊協定。VinaProxy 販售支援帳號密碼登入的 HTTP(S) Proxy 以及 SOCKS5 Proxy,請務必選擇控制台訂單中顯示的協定。如果檢查工具回應 not socks5,代表該連接埠使用的是 HTTP,不應設定為 SOCKS5。
操作步驟
- 1
從控制台複製 Proxy 資訊
在您的 VinaProxy 控制台中開啟該筆訂單,直接複製完整資訊,避免手動輸入。
- 2
使用 Proxy 檢查工具進行檢測
將其貼入 Proxy 檢查工具。若結果顯示
auth failed (407),即確認是驗證資訊有誤,而非網路連線問題。 - 3
重新乾淨輸入使用者名稱與密碼
將軟體中的這兩個欄位完全清空,然後重新貼上,確保開頭與結尾沒有任何空格。
- 4
確認通訊協定與訂單相符
完全依照訂單指示將 Proxy 類型設定為 HTTP 或 SOCKS5,然後儲存。
- 5
若問題持續,使用 curl -v 追蹤分析
帶入您的真實數值執行
curl -v,並檢查在 407 出現之前是否有Proxy-Authorization這一行。
常見問題
407 錯誤是因為我的 ISP 封鎖了 Proxy 嗎?
不是。407 是由 Proxy 伺服器本身回傳的,表示連線已經順利抵達。如果網路路徑被封鎖,通常會顯示為逾時或連線被拒絕;詳情請參閱 Proxy 逾時說明。
為什麼 Chrome 一直重複要求輸入 Proxy 登入資訊?
每次輸入錯誤都會再次收到 407,Chrome 就會重新提示。請檢查 Caps Lock(大寫鎖定),並確認越南文或其他輸入法沒有在密碼中加入任何額外字元或符號。
如果密碼中含有 @,該如何放入 Proxy URL?
進行編碼即可:@ 編碼為 %40、: 編碼為 %3A、# 編碼為 %23。若使用 curl,改用 -U 參數則完全不需要進行編碼。
Selenium 或 Puppeteer 顯示通道錯誤而非 407,也是同一個問題嗎?
通常是的。無頭 Chrome 無法顯示登入對話框,因此 407 會呈現為 ERR_TUNNEL_CONNECTION_FAILED。請透過該套件庫的驗證機制提供帳密,詳情請參閱 Selenium 設定指南。
帳密清晰明確的專屬代理伺服器
每筆 VinaProxy 訂單皆提供立即可用的 ip:port:user:pass 完整資訊,一次複製即可隨處貼上使用。
查看 Proxy 方案價格