【轉】linux設定http/https proxy及忽略proxy的方法
原文:https://www.cnblogs.com/marklove/p/10805432.html
. 設定代理:. ~/.proxyenv
1 #!/bin/sh 2 3 # for terminal 4 export proxyserveraddr=123.123.123.123 5 export proxyserverport=8087 6 export HTTP_PROXY="http://$proxyserveraddr:$proxyserverport/" 7 export HTTPS_PROXY="https://$proxyserveraddr:$proxyserverport/" 8 export FTP_PROXY="ftp://$proxyserveraddr:$proxyserverport/" 9 export SOCKS_PROXY="socks://$proxyserveraddr:$proxyserverport/" 10 export NO_PROXY="localhost,127.0.0.1,localaddress,.localdomain.com,200.200..;11.11.0.0;" 11 export http_proxy="http://$proxyserveraddr:$proxyserverport/" 12 export https_proxy="https://$proxyserveraddr:$proxyserverport/" 13 export ftp_proxy="ftp://$proxyserveraddr:$proxyserverport/" 14 export socks_proxy="socks://$proxyserveraddr:$proxyserverport/" 15 export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com,200.200..;11.11.0.0;" 16 17 # for chrome,firefox 18 gsettings set org.gnome.system.proxy ignore-hosts "['localhost', '11.11.0.0/16', '200.200.0.0/16', '*.localdomain.com' ]" 19 20 # for apt-get 21 cat <<-EOF| sudo tee /etc/apt/apt.conf 22 Acquire::http::proxy "http://$proxyserveraddr:$proxyserverport/"; 23 Acquire::https::proxy "https://$proxyserveraddr:$proxyserverport/"; 24 Acquire::ftp::proxy "ftp://$proxyserveraddr:$proxyserverport/"; 25 Acquire::socks::proxy "socks://$proxyserveraddr:$proxyserverport/"; 26 EOF
2. 取消代理:. ~/.unproxyenv
1 #!/bin/sh 2 unset proxyserveraddr 3 unset proxyserverport 4 unset HTTP_PROXY 5 unset HTTPS_PROXY 6 unset FTP_PROXY 7 unset SOCKS_PROXY 8 unset NO_PROXY 9 unset http_proxy 10 unset https_proxy 11 unset ftp_proxy 12 unset socks_proxy 13 unset no_proxy 14 gsettings reset org.gnome.system.proxy ignore-hosts 15 echo -n ""|sudo tee /etc/apt/apt.conf
https://www.cnblogs.com/scue/p/3891879.html
---------------------------------
msys2設定網路代理
在檔案 .bashrc 中新增
export http_proxy="proxy IP:port"
如
export http_proxy="192.168.0.1:8080"
export https_proxy="192.168.0.1:8080"
一,場景:
有些linux伺服器處於內網,並且沒有公網ip,故要想與外網進行http/https通訊只能通過nat或者加proxy的方式。nat伺服器有網段的限制,而http/https proxy代理則沒有,使用起來也方便。
linux系統設定http/https proxy的方法,在/etc/bashrc或者/etc/profile中新增如下環境變數:
export http_proxy=http://1.1.1.1:8082
export https_proxy=http://1.1.1.1:8082
二,問題
使用如上配置http/https proxy的時候遇見兩個問題:
1,本機去訪問一個沒有域名解析但是繫結hosts檔案的域名的時候,導致訪問失敗
2,php-fpm中跑的php程式碼訪問外網有域名解析的介面,訪問失敗
三,問題原因
1,應該是由於系統環境變數的優先級別高於/etc/hosts檔案,導致本機去訪問一個沒有域名解析但是繫結hosts檔案的域名的時候仍然走http/https代理,而代理server訪問不到域名所繫結的ip(例如這個ip是內網ip,但是加的代理是公網的代理)從而導致訪問失敗。
2,php-fpm預設沒有載入到系統的http/https proxy的環境變數設定,需要修改php-fpm的配置來解決問題。
四,問題解決
1,對那些沒有域名解析通過繫結hosts檔案來訪問的域名,不讓其走http/https代理
在/etc/bashrc或者/etc/profile中新增如下環境變數:
export no_proxy='a.test.com,127.0.0.1,2.2.2.2'
2,新增php-fpm關於env的如下配置,然後重啟php-fpm即可:
env[http_proxy] = "http_proxy=http://1.1.1.1:8082"
env[https_proxy] = "https_proxy=http://1.1.1.1:8082"
env[no_proxy] = "a.test.com,127.0.0.1,2.2.2.2"
五,擴充套件
1,用過的http/https正向proxy軟體:
nginx
tinyproxy(簡單好用,支援http/https協議)
squid(穩定簡單好用,支援http/https協議)
2,squid 3.x正向proxy配置:
# cat /etc/squid/squid.conf
http_access allow all
http_port 8443
cache deny all