KYC不要 — IDもセルフィーも書類も不要。暗号通貨で支払い:BTC, USDT, USDC, ETH, SOL, LTC
言語: 日本語
今すぐ始める

ドキュメント・curl 7.xと8.x・Linux、macOS、Windows

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

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

最終更新:

クイックアンサー

curlでプロキシを使うには?

HTTPプロキシにはcurl -x http://USERNAME:[email protected]: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プロキシ
-vCONNECT交換とプロキシのステータス行を表示
-wタイミング、サイズ、%{http_connect}、プロキシのCONNECTステータスを表示
--max-time, --connect-timeout合計および接続時間制限(秒単位)

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

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

HTTPプロキシ、ローテーション、ターゲット、固定
# 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行のタイミング報告
# 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が保持されますが、早く変わることもあります。

シェルループでのローテーションと固定
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
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)
export https_proxy="http://USERNAME-country-us:[email protected]: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ページに他の原因があります。

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

--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テストに十分です。

$0.50/GBから · KYC不要

今すぐ始める