為 Unix 和 Linux 配置上網(wǎng)代理
公司的網(wǎng)絡(luò)環(huán)境有點(diǎn)復(fù)雜,該死的“保密策略”要求所有的外網(wǎng)連接都要通過(guò)HTTP代理來(lái)實(shí)現(xiàn)。在Win環(huán)境下只要通過(guò)域策略同步代理配置就可以了,但對(duì)于Linux下就相對(duì)比較麻煩了。研究了一下,分享給大家。
獲取代理服務(wù)器地址
一般代理的設(shè)置較常見(jiàn)的有幾種方式,比較簡(jiǎn)單的是可以直接在IE的網(wǎng)絡(luò)配置中可以看到的,不管是不是可以修改,至少可以看到IP/主機(jī)名和端口號(hào)的配置,這就足夠了!
另一種則就像下圖一樣自動(dòng)獲取,這個(gè)相對(duì)就需要?jiǎng)右环X筋了。
提前開(kāi)一個(gè)終端,鍵入netstat,不要回車,立即切換到IE訪問(wèn)一個(gè)相對(duì)比較慢的網(wǎng)頁(yè)。切回終端,回車!然后……
C:Usersliqunjia>netstat Active Connections Proto Local Address Foreign Address State TCP 10.239.204.38:5357 GUANQUNW-MOBL:60787 TIME_WAIT TCP 10.239.204.38:54912 outlooksh:59532 ESTABLISHED TCP 10.239.204.38:59490 fmscsp1fe04:5061 ESTABLISHED TCP 10.239.204.38:59678 outlooksh:59532 ESTABLISHED TCP 10.239.204.38:59842 litrin-test:http TIME_WAIT TCP 10.239.204.38:59844 litrin-test:http TIME_WAIT TCP 10.239.204.38:59847 litrin-test:http TIME_WAIT TCP 10.239.204.38:59848 litrin-test:http TIME_WAIT TCP 10.239.204.38:59850 litrin-test:http TIME_WAIT TCP 10.239.204.38:59851 litrin-test:http TIME_WAIT TCP 10.239.204.38:59857 litrin-test:http TIME_WAIT TCP 10.239.204.38:59858 litrin-test:http TIME_WAIT TCP 10.239.204.38:59862 litrin-test:http TIME_WAIT TCP 10.239.204.38:59867 shzdmzpr02_int:911 ESTABLISHED TCP 10.239.204.38:59869 shmdmzpr02_int:911 CLOSE_WAIT TCP 10.239.204.38:59870 shmdmzpr02_int:911 ESTABLISHED TCP 10.239.204.38:59871 shmdmzpr02_int:911 ESTABLISHED TCP 10.239.204.38:59872 shmdmzpr02_int:911 ESTABLISHED TCP 10.239.204.38:59873 shmdmzpr02_int:911 ESTABLISHED TCP 10.239.204.38:59874 shmdmzpr02_int:911 ESTABLISHED TCP 10.239.204.38:59875 shmdmzpr02_int:911 ESTABLISHED TCP 10.239.204.38:59876 shmdmzpr02_int:911 ESTABLISHED TCP 10.239.204.38:59877 shmdmzpr02_int:911 ESTABLISHED TCP 10.239.204.38:59878 shmdmzpr02_int:911 ESTABLISHED TCP 10.239.204.38:59879 shmdmzpr02_int:911 ESTABLISHED TCP 10.239.204.38:59880 shmdmzpr02_int:911 ESTABLISHED TCP 127.0.0.1:50035 LIQUNJIA-MOBL:62522 ESTABLISHED TCP 127.0.0.1:62522 LIQUNJIA-MOBL:50035 ESTABLISHED TCP [::1]:59671 LIQUNJIA-MOBL:59673 ESTABLISHED TCP [::1]:59673 LIQUNJIA-MOBL:59671 ESTABLISHED
大量的established指向了同一個(gè)端口,這個(gè)ip和端口就是代理地址無(wú)疑。
桌面環(huán)境
這里主要講的是Firefox的配置,跟Windows下的FF配置沒(méi)什么兩樣,就截個(gè)圖吧。
Shell下的配置
想必正常情況下沒(méi)有幾個(gè)人僅僅通過(guò)shell就可以瀏覽網(wǎng)頁(yè)了吧,大多數(shù)情況shell的互聯(lián)網(wǎng)連接僅僅只用于wget/curl或者更新管理器之類的用途吧。
shell下的互聯(lián)網(wǎng)代理設(shè)置主要是通過(guò)幾個(gè)環(huán)境變量的配置來(lái)實(shí)現(xiàn)的。格式如下:
export http_proxy=http://server-ip:port/ #HTTP代理的配置 export https_proxy=https://server-ip:port/ #https代理的配置 export ftp_proxy=ftp://server-ip:port/ #ftp代理(還能再古老一點(diǎn)嗎?) export no_proxy=*.edu #不通過(guò)代理的地址特征
需要說(shuō)明的是如果你的代理是有用戶認(rèn)證的,那配置的格式就應(yīng)該是這樣的:
export http_proxy=http://username:password@server-ip:port/
好吧,如果你的用戶名或密碼里有”@””/”之類的符號(hào)的話——比如windows域帳戶的認(rèn)證方式大多都有這個(gè)問(wèn)題,你可以用””符號(hào)轉(zhuǎn)義掉。
如果不希望自己每次登錄都要輸入一遍代理配置的話,個(gè)人建議可以將export命令保存到~/.bashrc中(或其他的shellrc),每次啟動(dòng)shell后系統(tǒng)會(huì)自動(dòng)加載。
wget 其實(shí)本身是可以直接指定代理服務(wù)器認(rèn)證方式的,也可以用–no_proxy參數(shù)強(qiáng)行繞過(guò)代理。
wget --proxy-user=USER --proxy-password=PASS http://www.abc.com/ wget --no_proxy http://www.abc.com/ #不用代理
Curl自然比wget更為靈活不是一點(diǎn)了。
curl --proxy http(s)://server-ip:port http://abc.com/ #指定單獨(dú)的代理 curl --socket4 server-ip:port http://abc.com/ #指定socket4代理 curl --socket5 server-ip:port http://abc.com/ #指定socket5代理 curl --proxy-user username:password http://abc.com/ #使用系統(tǒng)的代理服務(wù)器配置 curl --noproxy http://abc.com #繞開(kāi)代理