2012-02-25 90 views

回答

287

一般方法:

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

然後你就可以通過代理服務器連接距離(許多)應用程序。

而且,按照下面的評論,對於HTTPS:

export https_proxy=https://your.proxy.server:port/ 
+63

當您需要代理HTTPS通信時,環境變量是大寫:HTTPS_PROXY – phatblat 2012-11-14 16:38:12

+0

如果我需要指定港口一次? – orlybg 2013-06-17 16:21:43

+9

從[手冊頁](http://curl.haxx.se/docs/manpage.html) 環境變量可以指定爲小寫或大寫。小寫版本優先。 http_proxy是一個例外,因爲它只能以小寫形式提供。 使用環境變量設置代理與使用--proxy選項具有相同的效果。 – 2013-06-19 14:23:11

429

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. 
+0

捲曲:(7)無法連接到主機 捲曲:(7)無法連接到主機 – user873286 2012-02-27 22:50:25

+0

我得到上面的錯誤,當我運行此命令:捲曲-x,--proxy 122.72.2.200 :80 http://www.mysite.com/test.php?id=1 – user873286 2012-02-27 22:52:00

+42

「-x,--proxy」表示可以使用任何一個。該命令應該是「curl -x 122.72.2.200:80 http://mysite.com/test.php?id=1」或「curl --proxy 122.72.2.200:80 http://mysite.com/test .php?id = 1「 – IBBoard 2012-12-04 11:39:32

81

上述解決方案可能會與某些版本的捲曲我想他們對自己(捲曲7.22.0)工作。但是對我來說有效的是:

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

希望它能更好地解決問題!

+0

遇到同樣的問題,Debian Wheezy發佈的curl仍然不支持env技巧 – zsero 2014-08-19 15:41:46

+0

在交換不同的網絡時,取而代之的是'[1] 4812' – 2017-02-19 21:07:17

34

爲ADITION到airween,另一個好辦法是添加到這一點你的.bashrc,這樣你就可以從轉非代理到代理的環境:

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

WHERE YOURPROXY:YOURPORT正是那你的IP和端口代理:-)。

然後,只需做

proxyon 

你的系統將開始使用代理,並與正好相反:

proxyoff 
+0

非常方便。謝謝 – albanx 2016-04-08 12:49:12

26

喲ü可以使用:

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

由卡爾

+11

「Karl解釋說」,這意味着這個答案不比該答案的副本更好。 – Raedwald 2017-02-14 11:53:02

25

解釋使用以下

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

192.168.X.X:XX把你的代理服務器的IP和端口。

-v詳細模式它會給出更多詳細信息,包括標題和響應。

+1

這應該是答案。不是每個人都想爲主機上的每個HTTP客戶端執行的每個HTTP請求指定一個全局變量(導出)。這個選項給予更多的靈活性,恕我直言。 – ivanleoncz 2017-08-22 15:44:57

11

curl您可以通過添加proxy值在~/.curlrc文件配置代理服務器,語法是:

proxy = http://username:[email protected]:port 
2

你並不需要導出http[s]_proxy shell變量如果你只是設置爲代理一個一個的命令。例如

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

也就是說,如果我知道我總是要使用代理,我寧願curl -x

5

與驗證的代理我用:

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

,因爲,我不知道爲什麼捲曲不使用/捕獲HTTP [S] _proxy環境變量。

0

如果代理與PAC文件一起使用自動代理。我們可以從PAC網址的javascript中找到實際的代理。

如果代理需要驗證,我們可以先使用普通的網頁瀏覽器訪問網站,這將促進驗證對話框。認證通過後,我們就可以使用Wireshark捕獲的HTTP包發送到代理服務器,從HTTP包,我們可以從HTTP報頭中的身份驗證令牌:代理授權

然後,我們可以設置環境變量http_proxy並且還包括在HTTP報頭的身份驗證令牌:代理授權

出口HTTP_PROXY = http://proxyserver:port

捲曲-H 「代理授權:XXXX」 http://targetURL

7

我喜歡,以獲得其下,我看到

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

希望這可以幫助別人的IP使用此。

2

根據您的工作場所,您可能還需要指定-k--insecure選項進行卷曲,以避開潛在的CA證書問題。

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