Text Mode Use Http Proxy On Linux

2008-02-14 19:19:00 哇哇 0 0

Linux 上沒有用過的東西實在太多太多,過年期間裝了 Ubuntu 後要開始慢慢玩了,因為我選擇先安裝在我的 x60 上面,而 x60 又有需求上班時使用,所以對於連線方式要開始一些設定,當然這裡只是說一些基本的設定,太高深的技巧我也不會啦!

若只是透過瀏覽器上網,那麼瀏覽器上的設定填一填就好,這個設定我想大家應該都會吧!要介紹給大家怎樣設定嗎?應該是不用吧!對我來說第一次研究的是該如何在 text mode 上透過 http proxy 連上線。

先示範一般狀況下載一張圖片
$ wget http://pic.easylife.idv.tw/files/1/200802/0212/DSC02029.jpg
--19:33:52--  http://pic.easylife.idv.tw/files/1/200802/0212/DSC02029.jpg
           => `DSC02029.jpg'
正在查找主機 pic.easylife.idv.tw... 211.76.137.37
正在連接 pic.easylife.idv.tw|211.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 下載一張圖片
$ export http_proxy=http://proxy.hinet.net:80
這部份是設定 http_proxy,如同我們想要做的一樣,指令很直接,只是沒用過怎會知道呢?
$ wget http://pic.easylife.idv.tw/files/1/200802/0212/DSC02029.jpg
--19:39:11--  http://pic.easylife.idv.tw/files/1/200802/0212/DSC02029.jpg
           => `DSC02029.jpg.1'
正在查找主機 proxy.hinet.net... 61.219.36.250, 61.219.36.120
正在連接 proxy.hinet.net|61.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
增加下列的內容到個人家目錄裡的 .bashrc
function useproxy(){
        echo -n "username:"
        read -e username
        echo -n "password:"
        read -es password
        if [ $username ] && [ $password ]; then
                export http_proxy="http://$username:$password@proxy.hinet.net:80"
                export ftp_proxy="http://$username:$password@proxy.hinet.net: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:1234@proxy.hinet.net:80
http_proxy=http://wawa:1234@proxy.hinet.net:80
當然看環境變數還是可以看到帳號密碼的,只是不會留在歷史紀錄裡。

一切就是這麼簡單而已,但是哪有多少然和我一樣習慣用 command 啊~既然都使用視窗介面當然也會有視窗的設定,但是我還是只告訴你 Ubuntu 裡的 command
$ kcmshell proxy
因為怎麼設定我也懶得去研究,若所有連線都得透過 proxy 那麼這環境還真是令人錯愕。

更多資訊請參考:
最新超值旗艦機開箱
比螺旋燈泡還省電的迷你 NAS
26800mAh筆電行動電源