[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)
(本頁面已被瀏覽過 753 次)