自从Mac用上了VPN,科学的上网让我的小Mac充满了活力。巴特,也带来了一个大问题,开启VPN的时候访问国内网站有时候特别慢。难道要我每次访问国内都要断开,访问国外再连上,接受无能啊!!!实际上,大部分windows的VPN客户端软件,都集成国内外分流的功能,非常便捷,而Mac上目前还没有类似的软件有此功能,好吧,只能自己动手,丰衣足食了。
Mac下国内外访问分流有啥好处?
- 连上VPN以后,不会影响访问国内网站的速度
- 有些VPN提供的是流量套餐,如果不分流,一个月流量伤不起啊
如何实现Mac下VPN的国内外分流?
Mac下的分流方法来源于chnroute这个项目,对作者表示衷心的感谢
项目地址:https://github.com/jimmyxu/chnroutes
此项目不仅仅是针对Mac,而且同时支持windows/linux,以及基于linux的路由器。
项目地址:https://github.com/jimmyxu/chnroutes
此项目不仅仅是针对Mac,而且同时支持windows/linux,以及基于linux的路由器。
下面就说下Mac下的使用步骤:
1. 首先,你要弄一个VPN并且设置好PPTP,免费VPN之前我介绍过一个合集,可以看这里;
2. 下载chnroutes.py这个文件,比如保存到下载里面,下载地址
3. 打开终端进入下载文件所在的目录,执行python chnroutes.py -p mac,在该目录下会生成2个文件,ip-up和ip-down;
macbookair:~ Peter$
macbookair:Downloads Peter$
Fetching data from apnic.net, it might take a few minutes, please wait...
For pptp on mac only, please copy ip-up and ip-down to the /etc/ppp folder,don't forget to make them executable with the chmod command.
4. 打开Finder进入下载,可以找到刚刚生成的2个文件,选中并复制这2个文件;按下快捷键command+shift+g,弹出的地方输入/etc/ppp,进入此目录,粘贴;
5. 回到终端,进入目录(/etc/ppp)执行:sudo chmod a+x ip-up ip-down
macbookair:Downloads Peter$
macbookair:ppp Peter$
(这一步可能会提示输入系统密码)
好了,Done!连上VPN测试一下吧。
1. 首先,你要弄一个VPN并且设置好PPTP,免费VPN之前我介绍过一个合集,可以看这里;
2. 下载chnroutes.py这个文件,比如保存到下载里面,下载地址
3. 打开终端进入下载文件所在的目录,执行python chnroutes.py -p mac,在该目录下会生成2个文件,ip-up和ip-down;
macbookair:~ Peter$
cd Downloads
macbookair:Downloads Peter$
python chnroutes.py -p mac
Fetching data from apnic.net, it might take a few minutes, please wait...
For pptp on mac only, please copy ip-up and ip-down to the /etc/ppp folder,don't forget to make them executable with the chmod command.
4. 打开Finder进入下载,可以找到刚刚生成的2个文件,选中并复制这2个文件;按下快捷键command+shift+g,弹出的地方输入/etc/ppp,进入此目录,粘贴;
5. 回到终端,进入目录(/etc/ppp)执行:sudo chmod a+x ip-up ip-down
macbookair:Downloads Peter$
cd /etc/ppp
macbookair:ppp Peter$
sudo chmod a+x ip-up ip-down
(这一步可能会提示输入系统密码)
好了,Done!连上VPN测试一下吧。
如何测试是否成功?
高端一点的,可以在终端输入traceroute www.baidu.com以及traceroute www.youtube.com,看看访问国内网站和国外网站的路由情况。
如果我不想要分流了,怎么破?
直接把/etc/ppp下面那2个文件删了就行了。
-----------
chnroutes
Forked from https://chnroutes.googlecode.com/ https://chnroutes.googlecode.com/
利用来自APNIC的数据生成路由命令脚本,让VPN客户端在连接时自动执行。通过这些路由脚本,可以让用户在使用VPN作为默认网关时,不使用VPN访问中国国内IP,从而减轻VPN负担,并提高访问国内网站的速度。基本约定
在使用这些脚本之前,请确保你在自己的电脑上已经成功配置好一个VPN(PPTP或OpenVPN),并且让之以默认网关的方式运行(通常是默认配置),即VPN连接之后所有网络流量都通过VPN。注意事项
- 因为这些IP数据不是固定不变的,建议每隔一个月更新一次;
- 使用此法之后,可能导致Google Music等服务无法访问,因为连上VPN之后,使用的DNS也是国外的,因此google.cn解析出的是国外的IP。
OpenVPN
如安装有iproute2
软件包,请尽量使用此方式。自带方式在路由表条目较多时执行极慢。iproute2
-
执行
python chnroutes.py
,这将生成vpn-up.sh
和vpn-down.sh
两个文件;
-
将这两个文件移入
/etc/openvpn/
;
-
在OpenVPN配置文件中加入:
script-security 2 up vpn-up.sh down vpn-down.sh
-
重新连接VPN,观察日志测试。
自带方式
- 执行
python chnroutes.py -p old
, 这将生成routes.txt
文本文件; - 将该文件内容加在OpenVPN配置文件的尾部;
- 重新连接VPN,观察日志测试。
PPTP
Mac OS X
- 在终端中执行
python chnroutes.py -p mac
,这将生成ip-up
和ip-down
两个文件; - 将这两个文件移入
/etc/ppp/
; - 重新连接VPN,观察测试。
Linux
- 执行
python chnroutes.py -p linux
,这将生成ip-pre-up
和ip-down
两个文件; - 将
ip-pre-up
移入/etc/ppp/
,ip-down
移入/etc/ppp/ip-down.d/
; - 重新连接VPN,观察测试。
Windows
- 在命令提示符中执行
python chnroutes.py -p win
,这将生成vpnup.bat
和vpndown.bat
两个文件; - 在拨号前手动执行
vpnup.bat
文件设置路由表;在断开VPN后,可运行vpndown.bat
清理路由表。
基于Linux的第三方系统的路由器
一些基于Linux系统的第三方路由器系统如OpenWRT、DD-WRT、Tomato都带有VPN(PPTP/OpenVPN)客户端的,也就是说,我们只需要在路由器进行VPN拨号,并利用本项目提供的路由表脚本就可以把VPN针对性翻墙扩展到整个局域网。当然,使用这个方式也是会带来副作用,即局域网的任何机器都不适合使用Emule或者BT等P2P下载软件。但对于那些不使用P2P,希望在路由器上设置针对性翻墙的用户,这方法十分有用,因为只需要一个VPN帐号,局域网内的所有机器,包括使用Wi-Fi的手机都能自动翻墙。详细配置方式请参考Autoddvpn项目。信息反馈
本项目的脚本都是在使用路由器进行拨号的情况下测试通过的,如果在其它拨号方式下,脚本不能运作,请添加新的Issue。另外,在配合OpenVPN使用的时候,可能会出现因为网络质量不好,OpenVPN非主动断开,这时候vpn-down.sh
脚本也会被自动调用,但重新连上之后,可能会找不到默认路由而添加失败,这时候你可以通过停止OpenVPN,并手动设置好原来的默认路由再重新进行OpenVPN拨号。from https://github.com/jimmyxu/chnroutes
---------
用chnroutes替vpn流量分流
VPN 是好用,挂上之后国外的网站是能访问了,但原来国内正常访问嘻唰唰的网站立刻变得慢吞吞了,怎么破?这是个问题。如果连了 VPN 没做任何设置的话,会导致所有网络都是通过 VPN 访问,缺点有二:
1、VPN 的流量问题,严重的话还可能导致被 VPN 提供商封杀(比如没事就去下载动作片)。
2、嘻唰唰变慢吞吞的问题。
我当时的回复是设置一下路由表即可。估计很多朋友没明白是肿么回事,这事就过去了。
今天小道君在朋友圈碎碎念:「使用 VPN 翻越长城的问题在于,启用 VPN 的时候国内网站速度巨慢,而绝大多数人要同时访问国内和国外的服务,这个时候很纠结啊,就好比一个人一会儿脱裤衩,一会儿再穿上,这能舒服么?」
我看到之后,陷入了深深的思考,这个 VPN 已经上升到了裤衩的高度,问题似乎变得有些严重了,所以我决定今天写点什么……
下面就给大家介绍一下如何通过修改路由的方式,让用户在使用 VPN 作为默认网关时,不用 VPN 访问国内网站,减少 VPN 的网络流量消耗,增加国内网站的访问速度,促进人民群众的安定团结,推动社会的长治久安。
为了简单起见,我只讲步骤不讲原理,并只针对 Mac 用户(Windows 用户请找 WinTalk,谢谢)。
1、自行搭建 VPN 服务器或购买 VPN 提供商的服务。
2、打开系统偏好设置—>网络,增加 VPN 设置,VPN 类型选择PPTP,根据提示设置用户名密码等信息即可。
3、下载 chnroutes.py,相关网址:https://code.google.com/p/chnroutes/downloads/list
4、打开终端进入下载文件的目录,执行:python chnroutes.py -p mac,该目录下会生成两个文件「ip-up」和「ip-down」。
5、把这两个文件复制到 /etc/ppp 下,然后进入该目录执行:sudo chmod a+x ip-up ip-down
6、没有5了,已经全搞定了。
测试一下,在终端执行:netstat -nr,检查路由表的输出信息。连接 VPN,然后再次执行:netstat -nr,你会发现路由表已经发生了变化。这时再去访问国内的网站,你发现他们又变得嘻唰唰了,同时还能访问 Twitter 和 Facebook!