把VPN变成一个本地http代理

你如果有一个http、socks、ssh之类的代理可以借助SocksCap、FreeCap、Proxifier PE、ProxyCap、e-Border Driver、Perineo Security Driver…让他们变成全局代理或者指定程序使用代理。那如果你有一个vpn呢,有时候是不是也想把它变成一个本地的http、socks甚至ssh代理呢,是不是也想只让指定的程序通过vpn呢。本文就来帮你解决这个问题。

指定程序通过vpn——这样可以很好的利用vpn,既能节省vpn流量又能提高速度。具体方法可以参考:http://igfw.net/archives/2241http://igfw.net/archives/1723 (ProcessVPN我一直没成功过,LoveVPN还是很好用的。)

把VPN变成一个本地http代理——有了上面的基础这一步就比较好设置了。这里还要用到solipo(是一个Polipo的图形化控制器,当然你也可以直接使用Polipo)或者3proxy(强大的代理软件啊,太强大了不会用呢)。

以LoveVPN和3proxy为例说明

下载LoveVPN(点击下载)和3proxy(点击下载),下载安装好LoveVPN以后在LoveVPN里点击“增加”,在打开的窗口里输入你的vpn服务器地址、用户名和密码,点击确定;再点击“设置”,在弹出的窗口里选中“只代理选择的程序…”然后点击“增加”,找到你的3proxy解压的位置选择3proxy.exe文件,点击“open(打开)”然后再点击“确定”(选中3proxy.exe前面的复选框)再点击“确定”完成设置。双击3proxy.exe运行3proxy软件(默认在后台运行),然后在LoveVPN上选中你的VPN地址,点击“连接”等待vpn连接成功后,你的VPN就变成了一个本地http代理,代理地址 127.0.0.1 端口 8123 。(solipo设置方法类似,只是要设置solipo文件夹下的Polipo.exe通过vpn即可;若要socks代理自行配置3proxy软件即可;此步骤的更详细设置可以参看http://igfw.net/archives/2241

下面都会用了吧,配合firefox+autoproxy或者chrome +Proxy Switchy!或者各类.pac智能翻墙吧。

(注意:LoveVPN是一个国内VPN商制作的,安全性我不知道;有时可能导致VPN全局代理生效,如果VPN全局代理已经生效只需断开重连VPN即可;我打包的3proxy有些杀软会误报,你可以去3proxysolipo的官方网站下载然后按下文配置。)

VPN智能翻墙的其他方法可以参考

VPN智能翻墙:http://igfw.net/archives/2205

使用OpenVPN的route命令实现选择性翻墙:http://igfw.net/archives/241

chnroutes——VPN 路由助手,自动区分国内国外线路,实现VPN智能翻墙:http://igfw.net/archives/970

autoddvpn—DD-WRT自動翻牆解決方案:http://igfw.net/archives/1299

下面贴出我的3proxy和Polipo配置,仅供参考

3proxy配置

nserver 8.8.8.8
nserver 8.8.4.4
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
daemon
#service
#external ip
internal 127.0.0.1
proxy -n -a -p8123
#pidfile pid.log

Polipo配置

proxyAddress = “127.0.0.1”
proxyPort = 8123
allowedClients = 127.0.0.1
allowedPorts = 1-65535

chunkHighMark = 67108864

diskCacheRoot = “”
localDocumentRoot = “”

disableLocalInterface = true
disableConfiguration = no

dnsUseNameServerbyname = no
dnsNameServer = 8.8.8.8

disableVia = true
censoredHeaders = from,accept-language,x-pad,link
censorReferer = maybe

maxConnectionAge = 5m
maxConnectionRequests = 120
serverMaxSlots = 8
serverSlots = 2
tunnelAllowedPorts = 1-65535

(当然除了本文的方法还可以在虚拟机里挂vpn开代理,及软路由等各种方法……,如果您有更好的方法也希望能分享出来。)

  1. luanqi0423
    2012年9月9日14:15

    是个很好的方法,尝试一下。

  2. 本初秋子
    2012年7月19日21:18

    转成http就是方便多了
    但linux没有这类工具

  3. 不知道怎麼用
    2012年2月27日21:45

    用這個:ProcessRouter怎麼使的可以指定程序通過openvpn?
    http://www.ck16.com/pr

  4. ming
    2011年4月21日00:20

    若要socks代理自行配置3proxy软件即可…
    请问: 配置文件应怎么写?

    • iGFW
      2011年4月21日10:01

      3proxy的用法,我也不太懂,你可以网上搜索下,或者看看它官方的配置说明。
      我试了试 在配置中加一行
      socks -n -a -p9050
      就可以开启本地socks代理端口9050了。

      • ming
        2011年4月29日17:14

        ProcessVPN我也一直没成功过 o_0 也不知道到底是什么回事…
        LoveVPN指定程序后速度都大幅下降,测试好几个VPN都这样,全局时很正常.…不知道其他朋友是否有这样情况!

        • iGFW
          2011年4月30日10:41

          LoveVPN指定程序后速度都大幅下降的确是这样而且还不能解决DNS污染问题,不过你使用文中方法转换成http代理后速度就不会下降。

  5. こんばんは~
    2011年4月20日19:05

    請問可不可以反過來:把一个本地http代理变成VPN?

    • iGFW
      2011年4月20日20:18

      可以变成全局代理,不能变成VPN

  6. ilikeigfw.tk
    2011年4月19日22:14

    很新颖