有些時候我們需要通過不同的代理訪問不同資源,比如某些ip或域名走本地網絡,某些ip或域名走不可描述的代理等。當然這只是舉個栗子!
我要解決的問題是:我的內網機器沒有internet訪問權限,但是我的應用程序有部分請求是要訪問intranet網絡,而部分請求要訪問internet網絡。所以我必須得有一個軟件或工具來做這個區分或者說是請求的轉發。那么privoxy就閃亮登場了。
網絡環境是這樣子的
1.安裝privoxy
這個就不說了
2.修改配置
主配置文件 /etc/privoxy/config 增加一條配置:
actionsfile usr.proxy
例如:
actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on.
actionsfile default.action # Main actions file
actionsfile user.action # User customizations
actionsfile usr.proxy
3.編輯usr.proxy文件
在/etc/privoxy/目錄下創建usr.proxy文件
{{alias}}
#直連方式,也就是說讓請求走本地網絡
direct = +forward-override{forward .}
#請求轉發到代理機器,請求可以走到internet網絡
proxy = +forward-override{forward 10.0.5.10:8118}
#請求轉發到代理機器,請求可以走到不可描述的地方去
#1080端口代表的是什么不可描述的東西,就不多說了。
#值得注意的是1080走的socks5代理,所以是forward-socks5 10.0.5.10:1080 .(后面的這個點可不能丟哦)
over_wall_proxy = +forward-override{forward-socks5 10.0.5.10:1080 .}
default = proxy
#==========默認代理==========
{default}
/
#==========直接連接==========
{direct}
10.0.5.10
127.0.0.1
localhost
.api.com
{proxy}
#==========不可描述的代理==========
{over_wall_proxy}
.google.
.github.com
.githubusercontent.
.github.cnpmjs.org