|
本帖最后由 aboutblank 于 2012-6-12 23:18 编辑
推荐 RouterBoard 系列的, 因为 ROS 实在是足够强大到能满足你任何能够想到的需求. 最便宜的千兆有线产品RB750GL只要不到400块钱, 带无线的RB751G也只要500多.
下面说说我的实现吧. 我是采取了黑名单的方式, 把所有的中国IP设定为不需要走VPN, 而到国外的所有流量全走VPN, 这样就保证了不管GFW怎么抽风, 我也能永不撞墙.
第一步是在 Interfaces 中建立VPN的连接, 也就是最后的那个PPTP Client. 建立后, 一旦PPPoE拨上了, 这个PPTP就会自行连接上.
第二步是在火墙策略中定义地址列表, 把所有中国的IP全定义进去...这个列表很好找, 网上随便一搜就有, 准确性据我一年的时间用下来还是不错的, 一旦定义后也不怎么需要经常改动他.
第三步是在 Mangle 中为数据包打标记. 这个因为在图形界面中分了很多页面, 不好展示, 我就直接放命令行上来吧. 其实很直观: 所有去往非中国地址的, 访问端口为80(HTTP)和443(HTTPS)的流量, 都打上vpn的标记. 当然我这里的命令还涉及了一个no_vpn的地址, 是一些我不希望它走vpn的设备, LZ估计用不到这条, 直接无视即可.
之所以只定义80和443, 是因为考虑到很多VPN是禁止用BT和电驴等P2P软件的. 如果所有国外流量都走VPN, 很可能会被查到用P2P导致VPN账户被ban...所以限制成只有网页流量走VPN即可. 如果有PS3联机需求, 为PS3单建一条策略, 规定源地址为PS3的所有流量都走VPN就行了.
第四步, 定义一条默认路由, 让所有打了vpn标记的数据包全从vpn的端口(也就是第一步中在Interfaces建立的PPTP虚拟端口)出去.
后面我还写了一条所有到8.0.0.0/8的流量都走VPN, 这个主要是为了方便使用Google的8.8.8.8和8.8.4.4的DNS解析, 保证地址解析的正确性.
第五步, 很容易忽略的一步. 由于同时存在两条默认路由, 一条是直接出一条是走VPN出, 所以可能会出问题. 所以要在路由规则里面加上一条, 凡是打了vpn标记的数据包, 要去找vpn路由表. 这样就能保证数据流按我们的需求走了.
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|