VRouter: 一个虚拟路由器, 旨在实现 macOS / Windows 上的透明代理

2017-09-06 15:53:32 +08:00
 Chingim

VRouter

发布之初只有 macOS 版本: https://www.v2ex.com/t/371583#reply108 , 现在开始支持 Windows 了.

原理很简单:

VRouter 在后台运行一个 openwrt 的虚拟机, 通过更改系统的默认路由, 将所有系统数据包转发到虚拟机上. 依托 openwrt 的 iptables 进行数据包的处理. 最终达到透明代理的目的.

为什么需要透明代理?

使用各代理的桌面客户端可以很方便地进行非透明代理, 但是仍然有以下的不足

为什么不在路由器上设置透明代理?

强烈推荐在路由器设置透明代理. 但是, 在路由器透明代理虽然解决了客户端的不足, 仍然有其局限性.

用虚拟机会不会有点杀鸡用牛刀?

大材小用确实有点委屈了虚拟机. 幸运的是 openwrt 非常轻量, 官网提供的镜像不足 5 MB, 转化为 virtualbox 虚拟机磁盘文件, 并在虚拟机上安装必要的软件后, 磁盘空间占用不足 30 MB. 虚拟机在 macOS 上的内存占用在 150MB 以内, 在 Windows 上的内存占用仅仅 20 MB 左右. CPU 占用率则跟网络流量正相关, 没有流量的情况下, Windows 版本 CPU 占用率接近 0% ( 2010 年的 Thinkpad ), macOS 则是在 5% 以下 ( 2014 年的中端 13 寸 Macbook).

缺点:

优点是:

23168 次点击
所在节点    分享创造
65 条回复
TangMonk
2017-09-06 19:15:48 +08:00
我用 network extension
Pudge1337
2017-09-06 19:29:10 +08:00
这个有什么用?
gdtv
2017-09-06 19:34:57 +08:00
弱弱问一下,windows 里怎么用,没看到 windows 的安装包
Chingim
2017-09-06 19:49:34 +08:00
@gdtv release 里有 exe 文件的.

@Kilerd macOS 开始支持转发 UDP
@TangMonk network extension 那是极好的, 有什么成品推荐下吗?
TangMonk
2017-09-06 19:51:32 +08:00
@Chingim 我用的 Buff
Yien
2017-09-06 19:58:13 +08:00
感謝,測試一下。
Chingim
2017-09-06 20:22:23 +08:00
@TangMonk 可惜 buff 不知为何不支持 Terminal
TangMonk
2017-09-06 20:32:46 +08:00
@Chingim 支持 terminal 干嘛呢? gui 挺好用的
Chingim
2017-09-06 20:48:24 +08:00
@KentY 如果不是透明代理的话, 工具很多的.

但是有的软件根本就没有设置代理的地方, 就算你设置了系统级的代理, 终端的一些软件都不一定会走. 还需要进一步折腾 proxier 等东西才行. 还是在路由器上设置代理最安逸.

后来用了 kcptun, youtube 的效果非常好, 就放到路由器上跑, 虽然能跑起来, 但是速度跟桌面端差太多了, 而且占满了路由器的 cpu/内存, 不(mei)想(qian)买土豪的路由器, 就鼓捣虚拟机了.

再加上我也是各地跑, 带着路由器终归不方便, 即使是很小的如 720N 之类巴掌大的路由.

虚拟机用了半年觉得不错就封装一个 GUI 出来了. 上次在 Apple 节点分享, 炸出了很多优秀的方案, 但是从透明代理这一点上, 我觉得虚拟机还是有优势的. 虽然 network extension 更优雅, 但是楼上提到的 buff , 还不支持终端使用代理, 也还不支持 kcptun. 还有其他一些优秀的如 flora-kit 之类的 go 隧道, 我觉得配置太复杂了(主要是自己对 surge 规则不熟悉), 所以还是一直在用自己的方案.

本来只是适配 macOS 的, 因为这个平台上使用终端的机会比较多, 透明代理的需求比较强. issue 里有人希望能做 windows 版本的, 借助跨平台的 electron 和 Virtualbox, 就适配了放出来. 但是我去看了 SSTap, 感觉它更自然一些, 应该会更好用.
Chingim
2017-09-06 20:48:57 +08:00
@TangMonk 我的意思是很多 terminal 的软件也需要代理
lxml
2017-09-06 21:24:15 +08:00
我是在路由器上使用 cow,开个 http/https/sock 的端口,效果还不错,由于是接管所有通信,目前还没发现不长眼不走代理的软件。
exoticknight
2017-09-06 21:27:47 +08:00
虽然用不着,但是看着像是用 electron 写的,支持一个
DesignerSkyline
2017-09-06 21:41:16 +08:00
严重支持!
shiny
2017-09-06 21:45:04 +08:00
这个思路好!
Chingim
2017-09-06 22:15:25 +08:00
@lxml 是的, 路由器上开代理最安逸了. 就是不方便携带, 而且性能不强的的话跑 kcptun 之类的软件很勉强
lxml
2017-09-06 22:17:24 +08:00
@Chingim #35 撸羊毛搞的斐讯 K3,512M 内存,我丧心病狂在里面还跑了个 Docker。
gdtv
2017-09-07 09:54:19 +08:00
安装了,启动了,没有提示任何错误,但就是上不了网,请问如何 debug ?
Chingim
2017-09-07 10:15:22 +08:00
@gdtv 麻烦去 github 提交 issue 吧,这里不好追踪 bug。谢谢
digimoon
2017-09-07 10:17:44 +08:00
win 的来个 hyperV 版吧,装了 hyperV 的应该用不了这个吧?
torbrowserbridge
2017-09-07 12:21:39 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/388649

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX