web-dev-qa-db-ja.com

cURLによるHTTPリクエストの実行(PROXYを使用)

私はこのプロキシアドレスを持っています:125.119.175.48:8909

curl http://www.example.comのようにcURLを使用しながら、自分のネットワークのプロキシアドレスを指定してHTTP要求を実行する方法を教えてください。

380
user873286

一般的な方法:

export http_proxy=http://your.proxy.server:port/

それからあなたは(多くの)アプリケーションからプロキシを通して接続することができます。

そして、下記のコメントの通り、https:

export https_proxy=https://your.proxy.server:port/
373
airween

man curlから:

-x, --proxy <[protocol://][user:[email protected]]proxyhost[:port]>

     Use the specified HTTP proxy. 
     If the port number is not specified, it is assumed at port 1080.
565
Karl Barker

上記の解決法は私が自分で試したいくつかのcurlバージョン(curl 7.22.0)ではうまくいかないかもしれません。しかし私にとってうまくいったのは、

curl -x http://proxy_server:proxy_port --proxy-user username:password -L http://url

それが問題をより良く解決することを願っています!

108
Amar

HTTP/HTTPSプロキシではなくSOCKSプロキシを使用している場合は、代わりに--socks5スイッチを使用する必要があります。

curl --socks5 125.119.175.48:8909 http://example.com/

プロキシ側でDNSを解決するために--socks5-hostnameの代わりに--socks5を使用することもできます。

71
Filipe Correia

airweenへの追加として、もう一つの良いアイデアはあなたの.bashrcにこれを追加することです、それであなたは非プロキシ環境からプロキシ環境へ切り替えることができるでしょう:

alias proxyon="export http_proxy='http://YOURPROXY:YOURPORT';export https_proxy='http://YOURPROXY:YOURPORT'"
alias proxyoff="export http_proxy='';export https_proxy=''"

あなたのプロキシはどこにありますか:あなたのIPアドレスとポートプロキシはあなたのものです。

それから、単純に

proxyon

あなたのシステムはプロキシを使い始めますが、その逆は次のようになります。

proxyoff
47

以下を使用してください

curl -I -x 192.168.X.X:XX http://google.com

192.168.X.X:XXはあなたのプロキシサーバーのIPとポートを入れます。

-v冗長モードでは、ヘッダーと応答を含む詳細が表示されます。

31
13krn

あなたが使用することができます:

curl http://www.example.com --proxy http://125.119.175.48:8909

カールによって説明されるように

29
smitkpatel

私は私が見ているIPを取得するためにこれを使用するのが好きです

curl -x http://proxy_server:proxy_port https://api.ipify.org?format=json && echo

これが誰かに役立つことを願っています。

21
bmetge

curlの場合、proxyの値を追加することで、~/.curlrc(Windowsでは_curlrc)ファイルにプロキシを設定できます。構文は次のとおりです。

proxy = http://username:[email protected]:port
16
kenorb

言及されたすべての答えを要約するだけです。

curl -x http://<user>:<pass>@<proxyhost>:<port>/ -o <filename> -L <link>
12
M. Mashaye

認証付きのプロキシで私は使用します:

curl -x <protocol>://<user>:<password>@<Host>:<port> --proxy-anyauth <url>

なぜ、curlが/ catch http [s] _proxy 環境変数を使わないのか私にはわかりません。

職場によっては、CA証明書に関する過去の潜在的な問題を解決するために、curlに-kまたは--insecureオプションを指定する必要があるかもしれません。

curl -x <myCompanyProxy>:<port> -k -O -L <link to file to download>
2
Matt Legler

プロキシを1回限りのコマンドに設定するだけであれば、http[s]_proxyシェル変数をエクスポートする必要はありません。例えば.

http_proxy=http://your.proxy.server:port curl http://www.example.com

それでも、私はいつもプロキシを使うつもりなら私はcurl -xを好むと思います。

2
overthink
Sudo curl -x http://10.1.1.50:8080/ -fsSL https://download.docker.com/linux/ubuntu/gpg

これは私にとって完璧に機能しました、カールはプロキシを設定する必要があるため、エラーが発生します

プロキシを自分のプロキシに置き換えることを思い出してください。私の例では、「例」は http://10.1.1.50:8080/ でした。

0
IbarMario