privoxy-socks转http代理 ####################### * 官网: http://www.privoxy.org/ 安装:: apt install privoxy 配置文件目录: /etc/privoxy 配置文件 ``/etc/privoxy`` 关键内容 :: listen-address [ADDRESS]:[PORT] 默认值是 listen-address 127.0.0.1:8118 forward-socks5t / 118.193.225.166:9150 . forward-socks5t / 127.0.0.1:9050 . // 失败转发重试 forwarded-connect-retries 1 // 配置最大客户端的连接(默认128) max-client-connections 256 // HTTP 代理转发: Privoxy 把自己收到的 HTTP 请求转给另一个 HTTP 代理 forward target_pattern http_proxy:port // 示例: 把所有的 HTTP 请求都转发给本机8080端口 forward / 127.0.0.1:8080 // 示例: 如果 HTTP 请求是发送给 .google.com 这个域名的下级域名,就把该 HTTP 请求转发给本机8080 forward .google.com/ 127.0.0.1:8080 forward-socks5 .onion localhost:9050 . // 把顶级域名为 .onion 的 HTTP 请求都转发给本机的 TOR SOCKS 端口 示意图1(先转发到 SOCKS 代理,然后转到目标站):: |    |====>|       |====>|       |====>| | 浏览器|     |Privoxy|     |SOCKS代理|     |目标网站 |    |<====|       |<====|       |<====| | |此阶段是 |       |此阶段是 |       |此阶段是 | | |HTTP |       |SOCKS|       |HTTP | 示意图2(先转发到 SOCKS 代理,再转发到某个 HTTP 代理,最后才转到目标站):: |    |====>|       |====>|       |====>|      |====>| | 浏览器|     |Privoxy|     |SOCKS代理|     |HTTP代理|     |目标网站 |    |<====|       |<====|       |<====|      |<====| | |此阶段是 |       |此阶段是 |       |此阶段是 |      |此阶段是 | | |HTTP |       |SOCKS|       |HTTP |      |HTTP | SOCKS 代理转发,包括如下几种语法:: forward-socks4 target_pattern socks_proxy:port http_proxy:port forward-socks4a target_pattern socks_proxy:port http_proxy:port forward-socks5 target_pattern socks_proxy:port http_proxy:port forward-socks5t target_pattern socks_proxy:port http_proxy:port 第1列是以 forward 开头的,表示 SOCKS 转发的类型。目前支持 4 种类型: 前面3种(forward-socks4 forward-socks4a forward-socks5)分别对应不同版本的 SOCKS 协议。 最后一种 forward-socks5t 比较特殊,是基于 SOCKS5 协议版本,但是加入针对 TOR 的扩展支持(优化了性能)。 只有转发给 TOR 的 SOCKS 代理,才需要用这个类型。 第2列的 target_pattern 是个变量,表示:这次转发只针对特定模式的 HTTP 访问目标 第3列的 socks_proxy:port 也是变量,表示:要转发给某个 SOCKS 代理(IP 冒号 端口) 第4列的 http_proxy:port 也是变量,表示:在经由前面的 SOCKS 代理之后,再转发给某个 HTTP 代理(IP 冒号 端口) 示例-根据“访问的网站”分流到不同的FQ通道:: forward / . forward .youtube.com 127.0.0.1:8000 forward-socks5 program-think.blogspot.com 127.0.0.1:9150 . 第1行表示:因为匹配的目标是 / 表示匹配“所有的网址”。所以这条可以看成是“默认规则”。 (在 Privoxy 里面,“后面的规则”会覆盖“前面的规则”,所以“默认规则”总是写在开头)。 第2行表示:凡是 .youtube.com 的下级域名都走 127.0.0.1:8000 的 HTTP 代理。 第3行表示:访问 program-think.blogspot.com 站点都走 127.0.0.1:9150 的 SOCKS 代理 代理切换 ======== :: 如果想把不同的网址切换到不同的代理,就使用action功能,可以使用: user.action文件 或者自定义一个文件,在config中添加下文,这表示添加一个动作文件,文件名是pac.action actionsfile pac.action 示例:: {{alias}} direct = +forward-override{forward .} ssh = +forward-override{forward-socks5 127.0.0.1:7000 .} gae = +forward-override{forward 127.0.0.1:8000} default = direct #==========默认代理========== {default} / #==========直接连接========== {direct} .edu.cn 202.117.255. 222.24.211.70 #==========SSH代理========== {ssh} .launchpad.net #==========GAE代理========== {gae} .webupd8.org 222.24.211.70