[Linux] 使用 http_proxy 變數,讓應用程式透過 proxy 連上網!

[Linux] 使用 http_proxy 變數,讓應用程式透過 proxy 連上網!

今天在操作一台別人的 Linux 機器時,發現一個奇怪的事情,

就是我用 curl 去連像 http://tw.yahoo.com,

但 curl 卻顯示出它透過另外一個 IP 連過去…

 

下面是一個例子,我執行了 curl,

但它是連上了 170.79.75.40 port 52587 這個 proxy,

再透過 proxy 去取得 http://tw.yahoo.com 的回應:

testuser@localhost ~ $ curl -v http://tw.yahoo.com
* Rebuilt URL to: http://tw.yahoo.com/
*   Trying 170.79.75.40...
* TCP_NODELAY set
* Connected to 170.79.75.40 (170.79.75.40) port 52587 (#0)
> GET http://tw.yahoo.com/ HTTP/1.1
> Host: tw.yahoo.com
> User-Agent: curl/7.54.0
> Accept: */*
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 301 Moved Permanently
< Date: Thu, 16 May 2019 15:29:14 GMT

 

為什麼會這樣呢?

它看起來很像是用了 -x 這個指定 proxy 的參數,

但我明明就沒有打 -x 參數呀?

 

查了一下,原來 Linux 系統有個 http_proxy 和 https_proxy 的環境變數,

部分的程式會參考這個環境變數的值,

來決定是否要透過這個 proxy 連出去~

像 curl 就會在 http_proxy 環境變數下,

表現出類同於用 -x 參數指定 proxy 的行為~

 

不過要注意的是,這個環境變數並不是所有的程式都會使用,

像是 Chrome 是不會管這個變數的值喔~

 

參考資料:Linux 使用全域 Proxy 上網 (with only apt/yum)

(本頁面已被瀏覽過 746 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料