KYC 없이 — 신분증, 셀카, 문서 없이. 암호화폐로 결제: BTC, USDT, USDC, ETH, SOL, LTC
언어: 한국어
시작하기

프록시 오류 참조 · 브라우저 및 클라이언트 오류

프록시와 함께 net::ERR_TUNNEL_CONNECTION_FAILED 발생 원인 및 해결법

Chromium 네트워크 오류: 각 도구에서 정확한 메시지, 가능한 원인들의 순서, 그리고 효과적인 해결 방법.

마지막 업데이트: · 3 분 읽기

빠른 답변

프록시에서 ERR_TUNNEL_CONNECTION_FAILED는 무엇을 의미하나요?

net::ERR_TUNNEL_CONNECTION_FAILED 는 Chrome이 프록시에 HTTPS 사이트로 터널을 열도록 요청했으나 프록시가 200 Connection established으로 응답하지 않았음을 의미합니다. 브라우저는 실제 상태 코드를 숨깁니다. CrawlRelay 주거용 프록시에서는 Playwright 또는 Puppeteer에서 자격 증명 누락, 또는 게이트웨이가 도달할 수 없는 대상이 원인입니다. curl -v로 재현해 실제 코드를 확인하세요.

ERR_TUNNEL_CONNECTION_FAILED 한눈에 보기

오류ERR_TUNNEL_CONNECTION_FAILED
유형Chromium 네트워크 오류
전송 주체프록시가 CONNECT 요청을 거부하거나 실패한 후 브라우저에서 발생
정의 위치CONNECT method: RFC 9110, section 9.3.6
다시 시도할까요?상태 코드를 확인한 후에만 재시도 권장
먼저 확인하세요curl -v로 재현하여 실제 CONNECT 상태 확인 가능

ERR_TUNNEL_CONNECTION_FAILED가 무엇을 의미하나요?

HTTP 프록시를 통해 HTTPS 페이지를 로드하려면 브라우저가 먼저 CONNECT host:443을 보냅니다. 프록시가 200으로 응답하면 터널 내부에서 TLS가 시작됩니다. 407, 403, 502 등 다른 응답은 시도를 종료하며 Chromium은 일반적인 오류를 보고합니다.

이 오류는 실패 위치가 터널임을 알려주나 이유는 알리지 않습니다. 이유는 프록시가 보낸 상태 코드이며 curl로 확인할 수 있습니다.

Python, curl, Node.js, 브라우저에서 ERR_TUNNEL_CONNECTION_FAILED는 어떻게 나타나나요?

같은 실패가 도구마다 다르게 출력됩니다. 로그에서 검색할 메시지들:

  • Playwright: page.goto: net::ERR_TUNNEL_CONNECTION_FAILED at https://...
  • Puppeteer: Error: net::ERR_TUNNEL_CONNECTION_FAILED at https://...
  • Chrome 주소 표시줄: '이 사이트에 연결할 수 없음'이며 코드 ERR_TUNNEL_CONNECTION_FAILED가 표시됨
  • Chrome에서 Selenium: WebDriverException 내 같은 코드

ERR_TUNNEL_CONNECTION_FAILED의 원인은 무엇인가요?

가장 가능성 높은 첫 번째 원인:

  • 자격 증명 전송 안 됨 (숨은 407). Chrome은 --proxy-server 안에 있는 사용자 이름과 비밀번호를 무시합니다.
  • 거부된 대상 (숨은 403), 예를 들어 프록시 사용 정책에 의해 차단된 카테고리.
  • 도달 불가능한 대상 (숨은 502 또는 504): 죽은 호스트, 오타 또는 출구에서의 DNS 실패.
  • 잘못된 포트: 브라우저에서 SOCKS5 포트를 HTTP인 것처럼 가리키거나 그 반대의 경우.

ERR_TUNNEL_CONNECTION_FAILED를 단계별로 진단하는 방법은?

  1. 동일한 URL을 -v로 curl 실행(아래 명령 참고)하고, CONNECT 다음 줄을 확인하세요.
  2. 407는 자격 증명 문제, 403은 거부된 대상, 502 또는 504는 대상 또는 출구 문제를 의미합니다.
  3. http:// 프록시 서버에 HTTP 포트를 사용하는지 확인하세요.
  4. 실제 대상 전에 https://api.ipify.org 같은 간단한 페이지를 테스트하세요.
curl로 실패한 URL 테스트하기(HTTP 포트, 상세 모드)
# Use the URL that fails; with https://api.ipify.org instead, you test the gateway alone.
# "HTTP/1.1 200 Connection established" first, then the site's own status: the site answered.
curl -v -x http://USERNAME:[email protected]:7777 https://TARGET_URL

# Same test through the SOCKS5 port, with DNS resolved at the exit
curl -v --socks5-hostname gw.crawlrelay.com:7778 --proxy-user USERNAME:PASSWORD https://TARGET_URL

ERR_TUNNEL_CONNECTION_FAILED를 어떻게 고치나요?

  • Playwright: 브라우저나 컨텍스트별로 proxy 옵션에 server, username, password 전달. Playwright 가이드 참고.
  • Puppeteer: --proxy-server=http://host:port 옵션으로 실행하고 첫 goto 전에 page.authenticate() 호출. Puppeteer 가이드 참고.
  • Selenium: 자격 증명을 추가하는 작은 로컬 포워더 실행. Selenium 가이드 참고.
  • 대상을 허용 사용 정책에 맞게 확인하세요.
Playwright (Python): 자격 증명을 별도 필드로 설정하기
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(proxy={
        "server": "http://gw.crawlrelay.com:7777",
        "username": "USERNAME-country-us",
        "password": "PASSWORD",
    })
    page = browser.new_page()
    response = page.goto("https://api.ipify.org")
    print(response.status, page.inner_text("body"))
    browser.close()

ERR_TUNNEL_CONNECTION_FAILED 이후에 다시 시도해야 하나요?

숨은 상태를 알 때만 재시도하세요. 숨은 407이나 403은 무한 반복되니 설정을 수정해야 합니다. 숨은 502나 504는 게이트웨이 오류처럼 새 출구에서 재시도할 수 있습니다.

ERR_TUNNEL_CONNECTION_FAILED가 CrawlRelay에 어떻게 적용되나요?

CrawlRelay의 HTTP 포트는 CONNECT 터널을 통해 HTTPS를 전달하며, 모든 Chromium 기반 도구가 지원합니다. 브라우저에는 HTTP 포트를 사용하세요: Chromium은 사용자 이름과 비밀번호가 있는 SOCKS5를 지원하지 않습니다.

게이트웨이: gw.crawlrelay.com, 포트 7777 (CONNECT를 통한 HTTP, HTTPS) 및 포트 7778 (SOCKS5). 사용자 이름 형식: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. 관련: 407 Proxy Authentication Required · ERR_PROXY_CONNECTION_FAILED · Playwright 가이드.

ERR_TUNNEL_CONNECTION_FAILED: 개발자들이 묻는 질문들

왜 curl은 작동하지만 Playwright는 ERR_TUNNEL_CONNECTION_FAILED를 표시하나요?

curl은 프록시 URL에서 자격 증명을 전송하지만 Chromium은 프록시 서버 주소에 포함된 자격 증명을 무시하기 때문입니다. Playwright에서는 username와 password을 proxy 옵션의 별도 필드로 전달하세요. Puppeteer에서는 탐색 전에 page.authenticate()를 호출하세요.

Chrome에서 인증 있는 SOCKS5 프록시를 사용할 수 있나요?

직접적으로는 아닙니다. Chromium은 SOCKS5 프록시를 지원하지만 사용자 이름과 비밀번호 인증은 지원하지 않습니다. HTTPS 사이트를 CONNECT 터널로 처리하는 게이트웨이의 HTTP 포트를 사용하거나, 브라우저를 위한 인증 로컬 포워더를 실행하세요.

ERR_TUNNEL_CONNECTION_FAILED는 웹사이트 때문인가요?

직접적으로는 거의 아닙니다. 터널은 브라우저와 프록시 사이에 형성되므로, 오류는 TLS 핸드셰이크 전에 발생합니다. 웹사이트가 도달 불가능해서 프록시가 CONNECT 요청에 502 또는 504를 응답할 때 간접적 원인이 될 수 있습니다.

이 참조에서 다른 프록시 오류들

HTTP 상태 코드

브라우저 및 클라이언트 오류

연결 및 TLS 오류

실패 사례를 다루는 문서가 있는 레지덴셜 프록시들

US$0.50/GB의 레지덴셜 프록시 CrawlRelay개, 트래픽이 절대 만료되지 않음.

US$0.50/GB 부터 · KYC 없이

시작하기