已停止开发.
推荐关注其他透明代理的开源项目, 如 mellow
一个基于 Virtualbox 和 openwrt 构建的项目, 旨在实现 macOS / Windows 平台上的透明代理.
VRouter 在后台运行一个 openwrt 的虚拟机, 通过更改系统的默认路由, 将所有系统数据包转发到虚拟机上. 依托 openwrt 的 iptables 进行数据包的处理.
了解构造过程
前提条件:
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地址使用 Shadowsocks 桌面客户端可以很方便地进行非透明代理, 但是仍然有以下的不足
export http_proxy
的方式使用代理, 但有时并不管用. 需要进一步折腾 Proxifier 或者 Privoxy强烈推荐在路由器设置透明代理. 但是, 在路由器透明代理虽然解决了客户端的不足, 仍然有其局限性.
TUN/TAP 是一个很优雅的方案, 不需要依赖 VirtualBox. Windows 上有很好的 TAP 透明代理方案 SSTap, Linux 上也有诸如 kone 这样的项目. 遗憾的是 kone 的上游项目 water 目前对 macOS 的支持有限. 因此:
大材小用确实有点委屈了虚拟机. 幸运的是 openwrt 非常轻量, 官网提供的镜像不足 5 MB, 转化为 virtualbox 虚拟机磁盘文件, 并在虚拟机上安装必要的软件后, 磁盘空间占用不足 30 MB. 虚拟机在 macOS 上的内存占用在 150MB 以内, 在 Windows 上的内存占用仅仅 20 MB 左右. CPU 占用率则跟网络流量正相关, 没有流量的情况下, Windows 版本 CPU 占用率接近 0% ( 2010 年的 Thinkpad ), macOS则是在 5% 以下 ( 2014 年的中端 13 寸 Macbook ).
优点:
缺点: