Text Mode Use Http Proxy On Linux
--19:33:52-- https://host.easylife.tw/pics/200802/0212/DSC02029.jpg
=> `DSC02029.jpg'
正在查找主機 pic.easylife.idv.tw... 211.76.137.37
正在連接 pic.easylife.idv.tw211.76.137.37:80... 連上了。
已送出 HTTP 要求,正在等候回應... 200 OK
長度: 81,898 (80K) [image/jpeg]100%[====================================>] 81,898 56.93K/s 19:33:55 (56.82 KB/s) -- 已儲存 ‘DSC02029.jpg’ [81898/81898])
這不用解釋太多,基本的 wget 指令下載一張圖片。
透過 http proxy 下載一張圖片
這部份是設定 http_proxy,如同我們想要做的一樣,指令很直接,只是沒用過怎會知道呢?
$ wget https://host.easylife.tw/pics/200802/0212/DSC02029.jpg
--19:39:11-- https://host.easylife.tw/pics/200802/0212/DSC02029.jpg
=> `DSC02029.jpg.1'
正在查找主機 proxy.hinet.net... 61.219.36.250, 61.219.36.120
正在連接 proxy.hinet.net61.219.36.250:80... 連上了。
已送出 Proxy 要求,正在等候回應... 200 OK
長度: 81,898 (80K) [image/jpeg]
100%[====================================>] 81,898 450.47K/s
19:39:11 (449.55 KB/s) -- 已儲存 ‘DSC02029.jpg.1’ [81898/81898])
在下載一次圖片,如同所設定的透過了 http_proxy。
其實簡易的設定就是如此
export http_proxy=http://代理伺服器:port
這樣方式的設定其實也是可以利用在 ftp 上面
export ftp_proxy=http://代理伺服器:port
若經過的代理伺服器是需要帳號密碼的,那麼也是最一般的方式就可以解決
export http_proxy=http://帳號:密碼@代理伺服器:port只是透過指令殘留下帳號密碼的資訊其實不是一個好作法,若有人查詢你的歷史紀錄密碼就曝光了,於是我們可以簡單的利用環境變數來建立一個 fuction
function useproxy(){
echo -n "username:"
read -e username
echo -n "password:"
read -es password
if [ $username ] && [ $password ]; then
export http_proxy="http://$username:[email protected]:80"
export ftp_proxy="http://$username:[email protected]:80"
else
export http_proxy="proxy.hinet.net:80"
export ftp_proxy="proxy.hinet.net:80"
fi
}
之後來測試一下囉,重新開一個視窗來讓 .bashrc 生效比較快
$ useproxy
username:
password:
$ set grep proxy
ftp_proxy=proxy.hinet.net:80
http_proxy=proxy.hinet.net:80
若沒有密碼狀況如上,若加上帳號密碼狀況如下
$ useproxy
username:wawa
password:
$ set grep proxy
ftp_proxy=http://wawa:[email protected]:80
http_proxy=http://wawa:[email protected]:80
當然看環境變數還是可以看到帳號密碼的,只是不會留在歷史紀錄裡。
一切就是這麼簡單而已,但是哪有多少然和我一樣習慣用 command 啊~既然都使用視窗介面當然也會有視窗的設定,但是我還是只告訴你 Ubuntu 裡的 command
$ kcmshell proxy
因為怎麼設定我也懶得去研究,若所有連線都得透過 proxy 那麼這環境還真是令人錯愕。