【轉】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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM