1 min read

Privoxy 转发 SSH

前一阵子,有人在我博客留言,对我没有 Privoxy 转发需求表示“大吃一惊”。我倒是淡然地说,因为一直都在用 VPN,至今还算稳定,所以就没去想备用方案。

后来想到我以前曾写过 SSH Firefox SOCKS 代理切换一文,其实雏形已经有了,所以本文再略为修饰增补。

搭建 socks 代理服务器

ssh -D 9999 -C zfanw@zfanw.com

D 参数表示在本机 9999 端口创建一个 SOCKS 代理服务器,并且通过 SSH 通道建立与远程服务器(zfanw.com 的主机)的安全连接。C 用于压缩传送数据,为可选参数。

配置 Privoxy 转发

于是我们现在在本机上有两个代理服务器:

  1. SOCKS 代理服务器,端口为 9999
  2. Privoxy 的 HTTP 代理服务器,端口为 8118

接下来要做的,就是把 Privoxy 代理服务器的流量转发到 SOCKS 代理上。打开 Privoxy 的 config 文件,添加如下代码:

forward-socks5 / 127.0.0.1:9999 .

其中 forward-socks5 表示转发目标是 SOCKS 服务器,5 是协议版本,/ 表示转发所有 HTTP 请求,127.0.0.1:9999 即第一步中搭建的 SOCKS 代理服务器,最末的 . 表示经过 SOCKS 代理的请求不再过 HTTP 代理服务器。

Privoxy 支持多个版本 SOCKS 转发协议。其中 forward-socks4 与 forward-socks4a 的区别是,后者 DNS 解析发生在 SOCKS 服务器上,前者则是在本地,forward-socks5 同样是在 SOCKS 服务器上。

报告问题 修订

如果你有自建 https 代理的需求,欢迎尝试 Phantom,一键搭建,方便快捷。查看 demo