tinyFecVРN,集成了 UDPspeeder 功能的 VРN,可以加速全流量(TCP/UDP/ICMP),开源项目

2017-10-29 11:03:16 +08:00
 wangyucn

tinyFecVРN,集成了 UDPspeeder 功能的 VРN,可以加速全流量(TCP/UDP/ICMP),开源项目

之前发的 UDPspeeder 加速全流量比较麻烦(需要配合 OpenVРN),现在我把 UDPspeeder 的功能做成 VРN 了,一个程序就可以加速全流量,使用起来更简单。

链接

repo: https://github.com/wangyu-/tinyFecVPN

中文主页: https://github.com/wangyu-/tinyFecVPN/blob/master/doc/README.zh-cn.md

编译好的 binary 下载: https://github.com/wangyu-/tinyFecVPN/releases

使用说明

只要两行命令:

# 在 server 端运行:
./tinyvpn -s -l0.0.0.0:5533 -f20:10 -k "passwd" --sub-net 10.22.22.0

# 在 client 端运行:
./tinyvpn -c r44.55.66.77:5533 -f20:10 -k "passwd" --sub-net 10.22.22.0

然后在 client 端ping 10.22.22.1,直接就可以 ping 通了。用 10.22.22.1 就可以直接访问到 server 上的所有服务了,所有经过 tinyFecVРN 的来回的流量都会被加速。

效果

(借用了 UDPspeeder 的图)

其他

目前在 release 版的代码里故意引入了一点限制,只可以当加速器用,不能直接用来“翻出去”。

31901 次点击
所在节点    宽带症候群
116 条回复
wangyucn
2017-10-30 12:15:18 +08:00
>参考 cloudwindy 你一定要注意安全哇
这个软件只是加速器,不能直接用来科学上网。我知道你是好心提醒,但是把这个和 cloudwindy 的比较,反而可能给我带来麻烦。

>既然名字都有了 vpn,还不如直接开放功能
>话说可以改个名字啊,VPN 关键字去了多好

VPN 全名是 Virtual Private Network,虚拟专用网络。很多大学都有 VPN 系统,比如:
https://vpn.pku.edu.cn/
https://sslvpn.tsinghua.edu.cn/
VPN≠科学上网,也并不一定允许你把数据包路由到外网去。VPN 只是泛指一种网络连接方式,可能很多人接触 VPN 是因为科学上网,先入为主的认为 VPN=科学上网,这个说法有一些误导性。

请各位不要把话题歪到科学上网上去。
renothing
2017-10-30 13:36:18 +08:00
我看你加了地址校验。那基本上废掉了大部分伸手党了。哈哈
cq65617875
2017-10-30 15:11:12 +08:00
@renothing
我感觉不久后就会出现所谓的解除限制版 TinyFecVPN 了
毕竟也就是注释几行代码的事儿……
hu6360567
2017-10-30 17:40:32 +08:00
用了 socat 做了个 ipv6 地址的映射,一切都好,只是酸酸乳无法链接 Google 意外的网站,不理解为什么,看流量也一切正常……
wangyucn
2017-10-30 18:05:18 +08:00
@hu6360567

我没测试过 ipv6,这个软件默认也只会分配 ipv4 地址;能不能说下你是怎么弄的 ipv6 映射?
hu6360567
2017-10-31 00:15:03 +08:00
@wangyucn 在服务器端使用 socat 将 v4 端口 fork 但一个 v6 端口,在客户端,用 socat 将服务器端的 v6 端口映射到本地 v4 端口。启动客户端时 r 选项添本地 v4 端口即可。ping,ssh 一切正常。不知道是不是 mtu 设置的不合理
wangyucn
2017-10-31 00:18:02 +08:00
@hu6360567

尝试一下两端加上 --mode 0 --mtu 1200
wangyucn
2017-10-31 09:47:56 +08:00
@hu6360567

更新了一版,调整了默认参数,现在用默认的参数预计不会有任何 MTU 问题了。
hu6360567
2017-10-31 10:42:25 +08:00
@wangyucn 试了一下,还是不行,只有 v6 流量能通过代理,v4 不通,不知道是什么原因了……如果直接使用,没有任何问题
renothing
2017-10-31 15:44:19 +08:00
@wangyucn 更新后反而废了,指定 mtu 也不行
[2017-10-31 07:42:30][WARN]message too long len=1388 fec_mtu=1200,ignored
[2017-10-31 07:42:32][WARN]message too long len=1388 fec_mtu=1200,ignored
[2017-10-31 07:42:33][WARN]message too long len=1388 fec_mtu=1200,ignored
[2017-10-31 07:42:37][WARN]message too long len=1388 fec_mtu=1200,ignored
[2017-10-31 07:42:43][WARN]message too long len=1388 fec_mtu=1200,ignored
wangyucn
2017-10-31 16:35:37 +08:00
@renothing

你这个应该是自己改了参数的,这个 WARN 只有在--mode 1 时候才会报,更新后默认参数是--mode 0 --mtu 1250。你去掉--mode 1 参数就好了。

--mode 1 得配合 iptables 的 TCPMSS 选项,等我接下来在 readme 里说一下怎么用(也有可能我会在代码里实现个 mss fix 功能),暂时先用 mode 0。
wangyucn
2017-10-31 16:45:41 +08:00
@renothing

今天更新的版本为了能让设置了 DF 标志的 ip packet 通过,tun 设备的默认 MTU 调大了,对--mode 1 模式产生了一些影响,所以你之前能用的参数现在不适用了。现在用默认参数就不会有 MTU 问题了。
renothing
2017-10-31 21:28:43 +08:00
@wangyucn
我大概看了下。应该是你写死了 mtu 为 1500 的缘故。而且今天的版本,传输速度神奇不在。
wangyucn
2017-10-31 21:37:22 +08:00
@renothing

1500 的那个只是 tun 设备的 mtu。

OpenVPN 里面 tun 设备的 mtu 一般都是固定为 1500 的,不论是你改 mssfix 还是 fragment 都不影响这个。

>而且今天的版本,传输速度神奇不在。

确保你把 --mode 1 选项去掉
wangyucn
2017-10-31 21:45:26 +08:00
@renothing
想要理解为什么 tun 设备的 MTU 为什么一般应该固定为 1500,你可以从 OpenVPN 的 4 个 MTU 选项入手(这个能查到的资料比较多):
--tun-mtu --link-mtu --mssfix --fragment ;另外再了解一下 DF 标志。

tinyFecVPN 里面现在有 2 个 MTU,一个是 tun 设备的 mtu,仿照 OpenVPN 推荐的方式固定为 1500 ;另一个是 FEC 编码器的 MTU,mode 0 模式下影响数据的切分。
kenshinji
2017-11-01 09:27:01 +08:00
@shaoshuang 韩国是哪里的 vps 提供商呢?我也去搞一个
renothing
2017-11-02 03:18:19 +08:00
@wangyucn 感谢。已经搞明白了。昨天吞吐异常就是因为 mtu 设置过小。取消 mtu 自定义后速度正常了
apibits
2017-11-02 11:15:24 +08:00
昨天尝试在自家 nas 群辉 DSM 上做客户端 直接尝试在 raw 下嵌套 tiny 在使用 g 参数手工执行了 iptable 后 稳定下来不再提醒 rst..... 直接软件启动时自动添加好像没起作用 虽然日志显示了执行了 iptable。。。。 使用 20:5 的参数
jayx
2017-11-02 18:30:13 +08:00
README.zh-cn.md 里提示 2 好像写错了,"对于某些运营商,UDPspeeder 跟 tinyFecVPN 配合可以达到更好的速度",是 udp2raw 吧
wangyucn
2017-11-02 18:40:42 +08:00
@jayx 已修正 ,多谢反馈

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

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

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

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

© 2021 V2EX