407 Proxy Authentication Required 오류 해결 방법
업데이트:
407 오류는 얼핏 보이는 것보다 긍정적인 신호입니다. 기기가 프록시에 정상적으로 도달했고 네트워크 경로도 열려 있다는 뜻이기 때문입니다. 프록시 서버가 유효한 사용자 이름과 비밀번호를 전달받지 못했다고 응답하는 것뿐이므로, 407 오류는 공유기나 방화벽이 아닌 대부분 인증 정보 설정 단계에서 해결됩니다.
407 오류의 주요 원인 (가능성 높은 순)
- 잘못되거나 누락된 사용자 이름/비밀번호: 오타가 하나 있거나 비밀번호 끝에 공백이 함께 복사된 경우입니다. 407 오류 문의의 대부분이 여기에 해당합니다.
- 입력란을 혼동하여 붙여넣은 경우: 전체
ip:port:user:pass문자열이 호스트 입력란에 통째로 들어가거나, 사용자 이름이 비밀번호 입력란에 들어가는 경우입니다. 일부 툴은 4개 항목을 자동으로 분리해 주지만 그렇지 않은 툴도 있습니다. - 앱에서 인증 정보를 전송하지 않는 경우: 운영체제의 프록시 설정에는 주소와 포트만 저장됩니다. 비밀번호 입력을 요청하지 못하는 앱은 인증 헤더 없이 연결을 시도하므로 407 응답을 받게 됩니다.
- 프록시 URL 내 특수문자:
http://user:pass@host:port형식에서 비밀번호에@,:,#등의 문자가 포함되어 있다면 퍼센트 인코딩(@는%40으로 변환)을 적용해야 합니다. 그렇지 않으면 문자열 분리가 잘못 처리됩니다.
실제 407 오류 발생 예시
문서용 예시 주소 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이 출력됩니다. 일반 HTTP 사이트에서 -w %{http_code} 옵션과 함께 실행하면 단순히 407만 출력됩니다.
인증 정보가 실제로 전송되었는지 확인하려면 -v 옵션을 추가하세요. 로그에 > CONNECT example.com:443 HTTP/1.1이 표시된 후 > Proxy-Authorization: Basic ...이 나타나고, 그 뒤에 407이 반환됩니다. Proxy-Authorization 줄이 없다면 클라이언트가 로그인 정보를 전혀 보내지 않은 것입니다.
VinaProxy 프록시 체커에서는 동일한 상황을 auth failed (407)로 보고합니다. 로그인 대화상자가 지원되지 않는 Headless Chrome 환경에서는 ERR_TUNNEL_CONNECTION_FAILED로 표시되니 터널 오류 안내 페이지를 참고하세요.
환경별 해결 방법
- Windows 및 Chrome: Chrome은 주소와 포트만 저장되는 Windows 프록시 설정(설정 > 네트워크 및 인터넷 > 프록시)을 따릅니다. 처음 페이지를 로드할 때 Chrome에서 프록시 사용자 이름과 비밀번호를 묻는 로그인 대화상자가 뜹니다. 정보를 잘못 입력한 뒤 대화상자가 다시 나타나지 않는다면 열려 있는 모든 Chrome 창을 닫고 다시 실행하세요.
- 안티디텍트 브라우저 (AdsPower, GoLogin, GenLogin): Host, Port, Username, Password를 각각 별도의 입력란에 입력해야 합니다. 비밀번호 필드는 기존 내용을 직접 수정하기보다 완전히 지운 후 다시 붙여넣으세요. 항목별 상세 설정 방법은 GoLogin 설정 가이드를 확인하세요.
- 스마트폰: iPhone의 경우 설정 > Wi-Fi > (i) > 프록시 구성 메뉴 아래에 인증 스위치가 있습니다. 이 옵션이 꺼져 있으면 407 오류가 발생합니다. Android는 일반적으로 호스트와 포트만 지원하므로, 로그인이 필요한 앱에서는 407 대신 일반적인 연결 오류가 표시될 수 있습니다.
- curl: URL 내에 인증 정보를 직접 포함하는 대신
-U "user:pass"옵션을 별도로 전달하면 특수문자 인코딩 문제를 방지할 수 있습니다. - Python requests:
proxies딕셔너리의http및https키 모두에http://user:pass@host:port형식을 지정하고, 특수문자가 포함된 비밀번호는urllib.parse.quote로 인코딩하세요.
인증 정보가 맞는데도 407 오류가 계속되는 경우
프로토콜 설정을 확인해 보세요. VinaProxy는 user:pass 로그인을 사용하는 HTTP(S) 프록시와 SOCKS5 프록시를 모두 제공하므로 대시보드의 주문 내역에 표시된 프로토콜과 일치해야 합니다. 프록시 체커에서 not socks5라는 응답이 나온다면 해당 포트는 HTTP 방식이므로 SOCKS5로 설정해서는 안 됩니다.
단계별 안내
- 1
대시보드에서 프록시 정보 복사
VinaProxy 대시보드에서 주문 내역을 열고 직접 입력하는 대신 전체 문자열을 그대로 복사합니다.
- 2
프록시 체커로 테스트 실행
복사한 정보를 프록시 체커에 붙여넣습니다.
auth failed (407)결과가 나오면 네트워크 경로가 아닌 인증 정보의 문제임을 확인할 수 있습니다. - 3
사용자 이름과 비밀번호 재입력
사용 중인 소프트웨어의 두 입력란을 모두 비우고 앞뒤 공백 없이 깔끔하게 다시 붙여넣습니다.
- 4
주문 내역과 프로토콜 일치
프록시 타입을 주문 내역에 명시된 대로 정확히 HTTP 또는 SOCKS5로 설정한 뒤 저장합니다.
- 5
오류 지속 시 curl -v로 추적
실제 프록시 정보로
curl -v를 실행하여 407 응답 앞에Proxy-Authorization줄이 전송되는지 확인합니다.
자주 묻는 질문
인터넷 제공업체(ISP)가 프록시를 차단해서 407 오류가 발생할 수도 있나요?
아닙니다. 407 응답은 프록시 서버 자체가 직접 보낸 것이므로 연결은 정상적으로 이루어졌습니다. 네트워크 경로가 차단된 경우에는 407 대신 타임아웃이나 연결 거부 오류가 발생합니다. 자세한 내용은 프록시 타임아웃 안내를 참고하세요.
Chrome에서 프록시 로그인 창이 계속 뜨는 이유는 무엇인가요?
잘못된 인증 정보를 입력할 때마다 407 오류가 반환되어 Chrome이 재입력을 요구하기 때문입니다. Caps Lock이 켜져 있는지 확인하고, 베트남어 등의 입력기(IME)로 인해 비밀번호에 의도치 않은 성조나 액센트가 들어가지 않았는지 확인하세요.
@ 기호가 포함된 비밀번호는 프록시 URL에 어떻게 입력하나요?
문자를 인코딩하여 입력해야 합니다. @는 %40, :는 %3A, #는 %23으로 변환하세요. curl 사용 시에는 -U 플래그를 사용하면 별도 인코딩 없이 입력할 수 있습니다.
Selenium이나 Puppeteer에서 407 대신 터널 오류가 발생합니다. 같은 문제인가요?
대부분 같은 원인입니다. Headless Chrome은 로그인 대화상자를 표시할 수 없기 때문에 407 응답이 ERR_TUNNEL_CONNECTION_FAILED로 나타납니다. Selenium 가이드를 참고하여 라이브러리 내 자체 인증 메커니즘을 통해 인증 정보를 전달하세요.
설정이 간편한 전용 프록시
VinaProxy의 모든 주문은 한 번만 복사해 어디든 바로 붙여넣을 수 있는 ip:port:user:pass 형식의 정보를 제공합니다.
프록시 요금 확인하기