# プロキシでのnet::ERR_TUNNEL_CONNECTION_FAILEDの原因と対処方法

> Chrome、Playwright、Puppeteerでプロキシを使った時のnet::ERR_TUNNEL_CONNECTION_FAILEDはCONNECTトンネルの失敗です。隠されたステータスを確認し修正してください。

- URL: https://crawlrelay.com/ja/docs/errors/err-tunnel-connection-failed/
- 最終更新: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

Chromiumのネットワークエラー：各ツールでの正確なメッセージ、考えられる原因の順序、効果的な修正方法。

**クイックアンサー — プロキシでの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で確認できます。

## ERR_TUNNEL_CONNECTION_FAILEDはPython、curl、Node.js、ブラウザではどのように表示されますか？

同じ失敗でもツールごとに異なる表示になります。ログ検索用のメッセージは以下の通りです：

- **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をcurlで`-v`を使って実行（下記コマンド）し、`CONNECT`の次の行を読む。
2. `407`は認証情報、`403`は拒否された宛先、`502`または`504`はターゲットまたは出口を意味します。
3. `http://`プロキシサーバーのHTTPポートをブラウザが使用しているか確認します。
4. 本来のターゲットの前に`https://api.ipify.org`のようなシンプルなページを試してください。

*curlで失敗したURLをテストする（HTTPポート、詳細表示）*

```bash
# 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:PASSWORD@gw.crawlrelay.com: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ガイド](https://crawlrelay.com/ja/docs/playwright/)をご覧ください。
- **Puppeteer:** `--proxy-server=http://host:port`で起動し、最初の`goto`の前に`page.authenticate()`を呼び出します。[Puppeteerガイド](https://crawlrelay.com/ja/docs/puppeteer/)をご覧ください。
- **Selenium:** 認証情報を追加する小さなローカルフォワーダーを実行します。[Seleniumガイド](https://crawlrelay.com/ja/docs/selenium/)をご覧ください。
- 宛先が当社の[許容利用規約](https://crawlrelay.com/ja/acceptable-use/)に準拠しているか確認してください。

*Playwright（Python）：認証情報を別々のフィールドにする*

```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（HTTP、HTTPSはCONNECT経由）、ポート7778（SOCKS5）。ユーザー名形式：`USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}`。関連情報：[407 Proxy Authentication Required](https://crawlrelay.com/ja/docs/errors/407-proxy-authentication-required/) · [ERR_PROXY_CONNECTION_FAILED](https://crawlrelay.com/ja/docs/errors/err-proxy-connection-failed/) · [Playwrightガイド](https://crawlrelay.com/ja/docs/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プロキシをサポートしていますが、ユーザー名・パスワード認証のSOCKS5は不可です。代わりにCONNECTトンネル経由でHTTPSを処理するゲートウェイのHTTPポートを使うか、ブラウザ用に認証を行うローカルフォワーダーを実行してください。

### ERR_TUNNEL_CONNECTION_FAILEDはウェブサイトが原因ですか？

稀に間接的にあります。トンネルはブラウザとプロキシ間にあるため、エラーはTLSハンドシェイク前に発生します。ウェブサイトが到達不能で、プロキシがCONNECT要求に502または504で応答した場合に間接的な原因となります。

## 他のプロキシエラーのリファレンス

- [401 Unauthorized vs 407](https://crawlrelay.com/ja/docs/errors/401-unauthorized/)
- [403 Forbidden](https://crawlrelay.com/ja/docs/errors/403-forbidden/)
- [407 Proxy Authentication Required](https://crawlrelay.com/ja/docs/errors/407-proxy-authentication-required/)
- [429 Too Many Requests](https://crawlrelay.com/ja/docs/errors/429-too-many-requests/)
- [502 Bad Gateway](https://crawlrelay.com/ja/docs/errors/502-bad-gateway/)
- [503 Service Unavailable](https://crawlrelay.com/ja/docs/errors/503-service-unavailable/)
- [504 Gateway Timeout](https://crawlrelay.com/ja/docs/errors/504-gateway-timeout/)
- [Cannot connect to proxy (ProxyError)](https://crawlrelay.com/ja/docs/errors/cannot-connect-to-proxy/)
- [Connection reset by peer (ECONNRESET)](https://crawlrelay.com/ja/docs/errors/connection-reset/)
- [ERR_PROXY_CONNECTION_FAILED](https://crawlrelay.com/ja/docs/errors/err-proxy-connection-failed/)
- [ERR_TUNNEL_CONNECTION_FAILED](https://crawlrelay.com/ja/docs/errors/err-tunnel-connection-failed/)
- [Read timed out (ReadTimeout)](https://crawlrelay.com/ja/docs/errors/read-timeout/)
- [SOCKS5 proxy errors](https://crawlrelay.com/ja/docs/errors/socks5-proxy-errors/)
- [SSL: CERTIFICATE_VERIFY_FAILED](https://crawlrelay.com/ja/docs/errors/ssl-certificate-verify-failed/)
- [SSL: WRONG_VERSION_NUMBER](https://crawlrelay.com/ja/docs/errors/ssl-wrong-version-number/)

**失敗ケースを網羅したドキュメント付きレジデンシャルプロキシ** $0.50/GB発のCrawlRelayレジデンシャルプロキシ、期限切れがないトラフィック。 [料金を見る](https://crawlrelay.com/ja/pricing/) · [クイックスタート](https://crawlrelay.com/ja/docs/)

---

CrawlRelay: CrawlRelayは開発者第一のレジデンシャルプロキシおよび4G/5Gモバイルプロキシの回転型サービスです：有効期限なしの使った分だけ支払うトラフィックを$0.50/GBから暗号通貨で購入、IDアップロード不要。KYC不要 — IDもセルフィーも書類も不要。暗号通貨で支払い可能。
