歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> 為 Unix 和 Linux 配置上網代理

為 Unix 和 Linux 配置上網代理

日期:2017/3/3 17:00:51   编辑:關於Linux

公司的網絡環境有點復雜,該死的“保密策略”要求所有的外網連接都要通過HTTP代理來實現。在Win環境下只要通過域策略同步代理配置就可以了,但對於Linux下就相對比較麻煩了。研究了一下,分享給大家。

獲取代理服務器地址

一般代理的設置較常見的有幾種方式,比較簡單的是可以直接在IE的網絡配置中可以看到的,不管是不是可以修改,至少可以看到IP/主機名和端口號的配置,這就足夠了!

另一種則就像下圖一樣自動獲取,這個相對就需要動一番腦筋了。

Windows下的配置

提前開一個終端,鍵入netstat,不要回車,立即切換到IE訪問一個相對比較慢的網頁。切回終端,回車!然後……

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指向了同一個端口,這個ip和端口就是代理地址無疑。

桌面環境

這裡主要講的是Firefox的配置,跟Windows下的FF配置沒什麼兩樣,就截個圖吧。

Linux FireFox proxy configurations

Shell下的配置

想必正常情況下沒有幾個人僅僅通過shell就可以浏覽網頁了吧,大多數情況shell的互聯網連接僅僅只用於wget/curl或者更新管理器之類的用途吧。

shell下的互聯網代理設置主要是通過幾個環境變量的配置來實現的。格式如下:

export http_proxy=http://server-ip:port/ #HTTP代理的配置
export https_proxy=https://server-ip:port/ #https代理的配置
export ftp_proxy=ftp://server-ip:port/ #ftp代理(還能再古老一點嗎?)
export no_proxy=*.edu #不通過代理的地址特征

需要說明的是如果你的代理是有用戶認證的,那配置的格式就應該是這樣的:

export http_proxy=http://username:password@server-ip:port/

好吧,如果你的用戶名或密碼裡有”@””/”之類的符號的話——比如windows域帳戶的認證方式大多都有這個問題,你可以用””符號轉義掉。

如果不希望自己每次登錄都要輸入一遍代理配置的話,個人建議可以將export命令保存到~/.bashrc中(或其他的shellrc),每次啟動shell後系統會自動加載。

wget 其實本身是可以直接指定代理服務器認證方式的,也可以用–no_proxy參數強行繞過代理。

wget --proxy-user=USER --proxy-password=PASS http://www.abc.com/
wget --no_proxy http://www.abc.com/ #不用代理

Curl自然比wget更為靈活不是一點了。

curl --proxy http(s)://server-ip:port http://abc.com/ #指定單獨的代理
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/ #使用系統的代理服務器配置
curl --noproxy http://abc.com #繞開代理
Copyright © Linux教程網 All Rights Reserved