說明:為什么說是http代理,其實這個還不能說是全稱走代理,罪名寫的區別就是ICMP協議這個設置就無效,只能說是90%的應用都可以使用這個設置來實現代理訪問,只有個別不行,比如一些軟件根本不走http協議的,那么此種方法絕對不行;下面是講解http的代理配置,以后會講解全局級別的代理實現,其實也就是網關,配置網關絕對能100%,這里不做講解。全局代理配置主要在於環境變量的設置。
還有網上很多都說http配置代理不支持socks協議,其實是不對的。我測試的結果已經支持了。
個人理解:我談一下這個http_proxy的設置,首先,設置了這個變量不是說只會走http協議,上面我說的應該是普通認為會這樣說的說法,我后面覺得上面已經是錯誤了,比如curl,git這些軟件默認使用http_proxy這個環境變量來設置代理服務器,所以在linux下只要設置了這個環境變量就能被這些軟件識別,而對於代理服務器用什么協議都行,比如使用http協議或者socks協議等。
那么對於一些比如chrome和yum這些針對http_proxy可能不會生效,比如chrome用的是server_proxy這個變量,而且是在啟動時設置才生效。
下面是代理變量的配置:
環境變量 | 描述 | 值示例 |
---|---|---|
http_proxy | 為http變量設置代理;默認不填開頭以http協議傳輸 | 10.0.0.51:8080 user:pass@10.0.0.10:8080 socks4://10.0.0.51:1080 socks5://192.168.1.1:1080 |
https_proxy | 為https變量設置代理; | 同上 |
ftp_proxy | 為ftp變量設置代理; | 同上 |
all_proxy | 全部變量設置代理,設置了這個時候上面的不用設置 | 同上 |
no_proxy | 無需代理的主機或域名; 可以使用通配符; 多個時使用“,”號分隔; |
*.aiezu.com,10.*.*.*,192.168.*.*, *.local,localhost,127.0.0.1 |
針對上面變量的設置方法:
1、在/etc/profile文件
2、在~/.bashrc
3、在~/.zshrc
4、在/etc/profile.d/文件夾下新建一個文件xxx.sh
寫入如下配置:
export proxy="http://192.168.5.14:8118" export http_proxy=$proxy export https_proxy=$proxy export ftp_proxy=$proxy export no_proxy="localhost, 127.0.0.1, ::1"
而對於要取消設置可以使用如下命令,其實也就是取消環境變量的設置:
unset http_proxy
unset https_proxy
unset ftp_proxy
unset no_proxy
針對yum配置走代理:
經過測試其實只要設置上面的變量之后已經可以走代理了,但如果要單獨設置,可以設置如下文件的變量:
echo "proxy=http://127.0.0.1:8080/" >> /etc/yum.conf