web-dev-qa-db-ja.com

curlでプロキシを無視するにはどうすればよいですか?

Curlでプロキシを無視するにはどうすればよいですか? $ NO_PROXYを設定してもうまくいかないようです。

89
ksuralta

Curlは環境変数http_proxyからプロキシアドレスを読み取り、変数はその値を保持する必要があると想定しています。 bashのようなシェルでは、コマンドの前(またはシェルスクリプト)でexport http_proxy='';が一時的に値を変更します。

ENVIRONMENT見出しの下にあるすべての変数については、curlのマニュアルを参照してください。)

46
Anonymous

curlが少なくともバージョン 7.19.4 の場合、--noproxyフラグを使用できます。

curl --noproxy "*" http://www.stackoverflow.com

manual から。

191
Scott Offen

Http_proxyおよびhttps_proxy環境変数を設定したため、同じ問題が発生しました。しかし、時々、別のネットワークに接続し、一時的にプロキシをバイパスする必要があります。 (環境変数を変更せずに)これを行う最も簡単な方法は次のとおりです。

curl --noproxy '*' stackoverflow.com

マニュアルから:"唯一のワイルドカードは、すべてのホストに一致する単一の*文字であり、プロキシを事実上無効にします。"

*文字は、シェルによって誤って展開されないように引用されます。

61
wisbucky

これはうまく機能し、プロキシ文字列を「」に設定します

curl -x "" http://www.stackoverflow.com
8
ericcurtin

ロングショットですが、プロキシを ""(空の文字列)に設定してみてください。これにより、manページに従ってプロキシ設定がオーバーライドされます。

6
Louis

まず、現在のプロキシ設定をリストしました

env | sort | less

http_proxy=http://wpad.local.machine.location:port numberのようなものでなければなりません)

その後、設定してみました

export http_proxy=";" 

このエラーメッセージが出ました:

curl: (5) Couldn't resolve proxy ';'

試した

export http_proxy="" && curl http://servername:portnumber/destinationpath/ -d 55

そしてそれは働いた!

PS! http-proxyを忘れずに元の設定に戻す

export http_proxy=http://wpad.local.machine.location:port number
6

http_proxyhttps_proxyが定義されています。これらの環境の設定を解除して再度設定したくありませんが、--noproxy '*'は完全に機能します。

curl --noproxy '*' -XGET 172.17.0.2:9200
{
  "status" : 200,
  "name" : "Medusa",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "1.5.0",
    "build_hash" : "544816042d40151d3ce4ba4f95399d7860dc2e92",
    "build_timestamp" : "2015-03-23T14:30:58Z",
    "build_snapshot" : false,
    "lucene_version" : "4.10.4"
  },
  "tagline" : "You Know, for Search"
}
6
prayagupd

$no_proxy env変数(小文字)を使用する必要があります。例については https://wiki.archlinux.org/index.php/proxy_settings を参照してください。

また、かなり前にcurlにバグがありました http://sourceforge.net/p/curl/bugs/185/ 、このバグを含む古いcurlバージョンを使用している可能性があります。

5
Dmitriusan

プロキシ設定を.curlrcに追加します

proxy = 1.2.3.4
noproxy = .dev,localhost,127.0.0.1

これにより、すべての開発ドメインとローカルマシンのリクエストでプロキシが無視されます。

5
Clemens Tolboom

私の場合(macos、curl 7.54.0)、~/.bash_profileで設定されたプロキシがあります

$ env |grep -i proxy |cut -d = -f1|sort
FTP_PROXY
HTTPS_PROXY
HTTP_PROXY
NO_PROXY
PROXY
ftp_proxy
http_proxy
https_proxy
no_proxy

理由は不明ですが、このバージョンのcurlは環境変数NO_PRXYおよびno_proxyで適切に動作できません。その後、プロキシ環境変数を1つずつ設定解除し、HTTPS_PROXYおよびhttps_proxy

unset HTTPS_PROXY
unset https_proxy

動作を開始し、内部URLに接続できます

環境に一時的な解決策がある場合は、すべてのプロキシ変数を設定解除することをお勧めします。

unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY
1
BMW

ラメな答えですが、プロキシが~/.curlrcファイル(...)に設定されていないことを忘れないでください。

0
jtlz2