
发布之初只有 macOS 版本: https://www.v2ex.com/t/371583#reply108 , 现在开始支持 Windows 了.
原理很简单:
VRouter 在后台运行一个 openwrt 的虚拟机, 通过更改系统的默认路由, 将所有系统数据包转发到虚拟机上. 依托 openwrt 的 iptables 进行数据包的处理. 最终达到透明代理的目的.
为什么需要透明代理?
使用各代理的桌面客户端可以很方便地进行非透明代理, 但是仍然有以下的不足
- 每个需要代理的软件都要逐一设置
- 命令行软件虽然可以用
export http_proxy的方式使用代理, 但有时并不管用. 需要进一步折腾 Proxifier 或者 Privoxy - 有些软件并不支持设置代理, 如 macOS 系统自带的 Mail APP
- 鲜有支持 UDP 的软件
为什么不在路由器上设置透明代理?
强烈推荐在路由器设置透明代理. 但是, 在路由器透明代理虽然解决了客户端的不足, 仍然有其局限性.
- 如果路由器性能不足, 使用 kcptun 等软件时, 负载会非常高. 而且速度比在桌面端运行 kcptun 慢很多
- 路由器只能在固定地点使用
用虚拟机会不会有点杀鸡用牛刀?
大材小用确实有点委屈了虚拟机. 幸运的是 openwrt 非常轻量, 官网提供的镜像不足 5 MB, 转化为 virtualbox 虚拟机磁盘文件, 并在虚拟机上安装必要的软件后, 磁盘空间占用不足 30 MB. 虚拟机在 macOS 上的内存占用在 150MB 以内, 在 Windows 上的内存占用仅仅 20 MB 左右. CPU 占用率则跟网络流量正相关, 没有流量的情况下, Windows 版本 CPU 占用率接近 0% ( 2010 年的 Thinkpad ), macOS 则是在 5% 以下 ( 2014 年的中端 13 寸 Macbook).
缺点:
- 严重依赖 VirtualBox
- 无法像物理路由一样服务局域网内的其他设备
- [ Windows ] 因为 Windows 非常不尊重路由表, 只能"软禁用"物理网卡, 因此宿主会变成 VRouter 下的设备, 网络邻居将无法找到宿主. "软禁用" 也导致 Edge 浏览器和 UWP 应用无法连接网络
优点是:
- 可以实现 TCP / UDP 的透明代理
- 性能比物理路由强
- 可以弥补物理路由不便移动的缺点
- 切换方便
- 可配置性强
- 免费, 开源