# HTTPとSOCKS5プロキシを使ったcurl：コピペ用例

> curlプロキシ例：-xと-U、--socks5-hostnameによるSOCKS5、スティッキーセッション、-wによるCONNECTステータスとタイミング、Windowsのcurl.exe。

- URL: https://crawlrelay.com/ja/docs/curl/
- 最終更新: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

curlは認証情報、ターゲティング、タイミングをスクレイパーに触る前に高速テストする最速手段です。以下のコマンドはUSERNAMEとPASSWORDを置き換えるだけで実行可能です。

**クイックアンサー — curlでプロキシを使うには？**

HTTPプロキシには`curl -x http://USERNAME:PASSWORD@gw.crawlrelay.com:7777 https://api.ipify.org`、SOCKS5には`--socks5-hostname gw.crawlrelay.com:7778`と`-U USERNAME:PASSWORD`を使います。**CrawlRelay** レジデンシャルプロキシは国とスティッキーセッションをユーザー名に含めます（例：`USERNAME-country-de-session-t1-ttl-10`）。$0.50/GBから利用可能。KYC不要の暗号通貨払い対応。

## curlで必要なフラグ

| 属性 | 値 |
| --- | --- |
| `-x` / `--proxy` | プロキシURL：`http://host:port`、認証情報は省略可 |
| `-U` / `--proxy-user` | プロキシ認証情報を`USERNAME:PASSWORD`としてURLから分離 |
| `--socks5-hostname` | 出口でDNS解決されるSOCKS5プロキシ |
| `-v` | CONNECT交換とプロキシのステータス行を表示 |
| `-w` | タイミング、サイズ、`%{http_connect}`、プロキシのCONNECTステータスを表示 |
| `--max-time`, `--connect-timeout` | 合計および接続時間制限（秒単位） |

## 基本的なプロキシコマンドとは？

各コマンドはウェブサイトが見る出口IPを表示します。

*HTTPプロキシ、ローテーション、ターゲット、固定*

```bash
# Rotating exit, any country
curl -x http://gw.crawlrelay.com:7777 -U USERNAME:PASSWORD https://api.ipify.org

# Country and city (city availability varies)
curl -x http://gw.crawlrelay.com:7777 -U USERNAME-country-us-city-chicago:PASSWORD https://api.ipify.org

# Sticky: run it twice, the IP stays the same for up to 10 minutes (it can change earlier)
curl -x http://gw.crawlrelay.com:7777 -U USERNAME-country-de-session-t1-ttl-10:PASSWORD https://api.ipify.org

# SOCKS5, DNS resolved at the exit
curl --socks5-hostname gw.crawlrelay.com:7778 -U USERNAME-country-gb:PASSWORD https://api.ipify.org
```

## curlでプロキシ接続をデバッグするには？

`-v`を使って実行し、`CONNECT`の周辺行を読みます。動作中のトンネルは`HTTP/1.1 200 Connection established`を表示し、その後ウェブサイトとのTLSハンドシェイクが続きます。その行の他のステータスはプロキシからのもので、407は認証情報、502または504は出口またはターゲットの問題です。以下の`-w`フォーマットは同じ情報を1行で出力し、ループやCIチェックに便利です。

*詳細なCONNECTおよび1行のタイミング報告*

```bash
# Full exchange, including the proxy's answer to CONNECT
curl -v -x http://gw.crawlrelay.com:7777 -U USERNAME:PASSWORD https://example.com/ -o /dev/null

# One line: proxy CONNECT status, HTTP status, compressed bytes and timings
curl -s --compressed -o /dev/null -x http://gw.crawlrelay.com:7777 -U USERNAME-country-us:PASSWORD \
  -w 'connect=%{http_connect} http=%{http_code} bytes=%{size_download} tcp=%{time_connect}s tls=%{time_appconnect}s ttfb=%{time_starttransfer}s total=%{time_total}s\n' \
  https://example.com/
```

## ローテーションとセッションが機能するかどうかは？

IPを複数回リクエストします。セッションIDなしでは毎回新しい接続と見なされ通常は異なるIPが表示されます。セッションIDがある場合、TTL終了までは同じIPが保持されますが、早く変わることもあります。

*シェルループでのローテーションと固定*

```bash
echo "rotating:"
for i in 1 2 3 4 5; do
  curl -s -x http://gw.crawlrelay.com:7777 -U USERNAME-country-us:PASSWORD https://api.ipify.org; echo
done

echo "sticky:"
for i in 1 2 3 4 5; do
  curl -s -x http://gw.crawlrelay.com:7777 -U USERNAME-country-us-session-loop1-ttl-5:PASSWORD https://api.ipify.org; echo
done
```

## Windowsでcurlをプロキシと使うには？

`curl.exe`を呼び出し、`curl`は使わないでください。Windows PowerShell 5.1では`curl`は`Invoke-WebRequest`のエイリアスですが、`-x`や`-U`は認識しません。Windows 10と11では本物のcurlは`curl.exe`として提供されています。PowerShellでは特殊文字を含む引数は引用符で囲み、パスワード内のリテラル`$`はシングルクォートで書いてください。

*PowerShell*

```powershell
curl.exe -x http://gw.crawlrelay.com:7777 -U 'USERNAME-country-fr:PASSWORD' https://api.ipify.org
```

## すべてのコマンドで一度にプロキシを設定するには？

curlは環境変数`https_proxy`と`http_proxy`を読み、多くのツールも同様です。シェルセッションに設定し、APIなどプロキシを通すべきでないホストは`NO_PROXY`で指定します。共有マシンではパスワードを全子プロセスに渡る変数にしないよう注意してください。

*環境変数(bash, zsh)*

```bash
export https_proxy="http://USERNAME-country-us:PASSWORD@gw.crawlrelay.com:7777"
export http_proxy="$https_proxy"
export NO_PROXY="localhost,127.0.0.1,.internal.example"

curl https://api.ipify.org   # now uses the proxy
unset https_proxy http_proxy # back to direct
```

## curlとプロキシ：質問

### --socks5と--socks5-hostnameの違いは？

`--socks5`ではcurlがホスト名をマシンで解決しIPをプロキシに渡します。`--socks5-hostname`はホスト名を送って、プロキシ側で解決します。スクレイピングでは`--socks5-hostname`を使うと出口国に合ったDNS回答を得られ、ローカルリゾルバに取得ドメインを見せません。

### curlが「CONNECTトンネル失敗、レスポンス407」と言うのはなぜ？

プロキシが認証情報を拒否したか、受け取っていません。ユーザ名とパスワードを確認し、特殊文字はURL内の`-x`にあればURLエンコードするか、`-U`で渡してください。[407ページ](https://crawlrelay.com/ja/docs/errors/407-proxy-authentication-required/)に他の原因があります。

### プロキシ経由でページのバイト数を確認するには？

`--compressed -o /dev/null -w '%{size_download}\n'`を追加します。`--compressed`はcurlがgzipまたはbrotli圧縮をリクエストし、`%{size_download}`は圧縮された転送バイト数を数えます。これがないとサーバーは非圧縮でページを送るため数値が数倍になることがあります。実際のページ数件で試して、1,000ページあたりのトラフィックを見積もってください。

### curlはプロキシ経由でHTTP/2やHTTP/3を使えますか？

HTTP/2はウェブサイトが対応していればCONNECTトンネル内で機能します。トンネルはTLSを終端まで運ぶためです。HTTP/3はUDP上で動作し、HTTPプロキシのCONNECTトンネルはUDPを通さないため、HTTP/2かHTTP/1.1を使用してください。

**コマンドラインでターゲットをテスト** $1.50で1 GB向け、数千回のcurlテストに十分です。 [1 GBを選ぶ](https://crawlrelay.com/app/checkout/?plan=res-1&product=residential&lang=ja) · [エラーリファレンス](https://crawlrelay.com/ja/docs/errors/)

---

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