icymind / VRouter
- четверг, 29 июня 2017 г. в 03:11:45
一个基于 Virtualbox 和 openwrt 构建的项目, 旨在实现 OSX (MacOS) 平台上的透明代理.
一个基于 Virtualbox 和 openwrt 构建的项目, 旨在实现 OSX (MacOS) 平台上的透明代理.
VRouter 在后台运行一个 openwrt 的虚拟机, 通过更改系统的默认路由, 将所有系统数据包转发到虚拟机上. 依托 openwrt 的 iptables 进行数据包的处理.
了解构造过程请点击: 构造过程
前提条件:
-u
参数; 如果是用配置文件, 请确保配置文件包含: "mode": "tcp_and_udp"
使用:
example.com
, 将会匹配该域下的所有子域名如 a.example.com
, b.example.com
等等a.example.com
, 如此不会匹配到 b.example.com
123.123.123.123
123.123.123.0/8
将会匹配 123.123.123.0~123.123.123.255
之间的IP地址. 123.123.0.0/16
将匹配 123.123.0.0 ~ 123.123.255.255
之间的IP地址如果出 bug 造成无法上网或者无法解析域名, 而 VRouter 又无法恢复系统默认网关.可以手动恢复:
# 查找你的路由器地址, 假设命令输出1.2.3.4
/usr/sbin/networksetup -getinfo Wi-Fi | grep Router
# 恢复网关, 1.2.3.4 换成第一条命令的输出
sudo /sbin/route change default 1.2.3.4
# 恢复DNS, 1.2.3.4 换成第一条命令的输出
sudo networksetup -setdnsservers Wi-Fi 1.2.3.4
# 确认网关已恢复
/usr/sbin/netstat -nr | grep default | awk '{print $2}'
# 确认DNS已恢复
/usr/sbin/networksetup -getdnsservers Wi-Fi
使用客户端很方便, 但是仍然有以下的不足
export http_proxy
的方式使用代理, 但有时并不管用. 需要进一步折腾 Proxifier 或者 Privoxy在路由器设置代理解决了客户端的不足, 但是也有局限性.
虽然是虚拟机, 但其实非常轻量. openwrt 官网提供的镜像不足 5MB, 转化为 virtualbox 虚拟机磁盘文件, 并在虚拟机上安装必要的软件后, 磁盘空间占用不足 30M. 全天候使用内存占用在 100MB 以内, CPU 占用率一般情况下为 5% 左右 (MacBook Pro Retina, 13-inch, Mid 2014), 开启 kcptun 看油管的 1080P 时, CPU 占用率波动性较大, 在 5%~30% 之间, 目测平均值在 15% 左右.
开源的 Specht 一直没有开发者签发, 所以在 OSX 上暂不能使用. VRouter对比 surge, 缺点是:
优点是:
优点:
缺点: