Linux配置http代理(原理)
我們可以在很多地方設置Proxy,生產環境中最常見的還是在應用中直接調用一些庫來為應用設置Proxy,但在測試Proxy的時候,就需要用到系統全局的Proxy設置以及部分應用的Proxy
常見的Proxy一般就兩種,Socks和HTTP,HTTP是一種七層代理,而Socks則是封裝過后的四層代理
顧名思義,HTTP只能代理HTTP協議的流量,Socks則只接受Socks封裝過的流量,對于大部分Web應用,我們會部署HTTP代理,因為如果經過了Socks封裝,前置在應用和代理服務器之間的防火墻就無法看到URL了(你可能會奇怪防火墻為什么不是在最外面,事實上這里的防火墻專用于URL過濾,放在代理服務器外側也可以,但如此一來,防火墻將看不到真正的源主機的地址,而只能看到代理服務器的地址了)
而對于無法通過HTTP代理的協議,比如SSH和SFTP,就需要用到Socks代理了
使用Socks代理,和使用的Socks Server有一定的相關性,日常大家用的最多的Socks代理是**************************,不過我們在一些環境中不會使用這么麻煩的,Dante Socks就是一個比較好的選擇
Windows以及部分瀏覽器(例如Firefox)可以設置Socks代理,Linux全局下似乎無法設置,但是一些其他方法可以在不安裝Socks客戶端的情況下使用Socks代理
全局代理
在/etc/profile下增加下列配置即可設置HTTP/HTTPS/FTP代理
如果要全局用戶使用應用于所有的Shell,就需要修改 /etc/profile 文件
代理服務開啟
設置全局代理,需要編輯profile文件
vi /etc/profile文末添加以下代理配置,參考代理是否需要用戶名密碼
#無用戶名密碼 export http_proxy=http://proxy_ip:prot export https_proxy=https://proxy_ip:prot#有用戶名密碼 export http_proxy=http://username:password@proxy_ip:prot export https_proxy=https://username:password@proxy_ip:port export ftp_proxy=http://username:password@proxyserver:port如
export http_proxy=http://192.168.64.1:1080 export https_proxy=http://192.168.64.1:1080# 或者建議這樣配置 http_proxy=proxy.abc.com:8080 https_proxy=$http_proxy ftp_proxy=user:password@proxy.abc.com:8080 no_proxy=*.abc.com,10.*.*.*,192.168.*.*,*.local,localhost,127.0.0.1 export http_proxy https_proxy ftp_proxy no_proxy其中:
- http_proxy:http協議使用代理服務器地址;
- https_proxy:https協議使用安全代理地址;
- ftp_proxy:ftp協議使用代理服務器地址;
- user:代理使用的用戶名;
- password:代理使用用戶名的密碼;
- proxy.abc.com:代理地址,可以是IP,也可以是域名;
- 8080:使用的端口;
- no_proxy:不使用代理的主機或IP。
備注:
| 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此方法只適合配置http代理,使用socket代理上網的另有其他配置方法。
生效配置文件
source /etc/profile . /etc/profile查看當前已設置代理
echo $http_proxy echo $https_proxy測試
因為
subversion的代理服務器配置
要配置subversion的代理服務器,需要修改$HOME/.subversion/servers文件,在此文件的[global]段加上:
http-proxy-host = 192.168.1.1 http-proxy-port = 8080 http-proxy-username = easwy http-proxy-password = 123456現在svn就可以使用代理服務器訪問版本庫了。
yum的代理服務器配置
針對yum配置走代理:
經過測試其實只要設置上面的變量之后已經可以走代理了,但如果要單獨設置,可以設置如下文件的變量:
如果想讓CentOS中的yum可以通過代理服務器更新程序,則需要修改文件/etc/yum.conf,在此文件中加上:
proxy=http://easwy:123456@192.168.1.1:8080https://blog.csdn.net/weixin_34378969/article/details/94684696
總結
以上是生活随笔為你收集整理的Linux配置http代理(原理)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DTOJ3026 geronimo
- 下一篇: java吸_结对编程(java)