V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wangyucn
V2EX  ›  宽带症候群

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

  wangyucn · 2017-10-29 11:03:16 +08:00 · 31930 次点击
这是一个创建于 2584 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

image

之前发的 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 的来回的流量都会被加速。

效果

image

image (借用了 UDPspeeder 的图)

其他

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

第 1 条附言  ·  2017-10-29 13:12:14 +08:00

附上原理简介和性能测试

原理简介

主要原理是通过冗余数据来对抗网络的丢包,发送冗余数据的方式支持FEC(Forward Error Correction)和多倍发包,其中FEC算法是Reed-Solomon。

原理图:

细节请看UDPspeeder的repo,或者UDPspeeder在V2EX上的原帖,这里不再重复。

性能测试(吞吐量)

server 在 vulr 日本,CPU2.4GHz,内存 512mb。client 在搬瓦工美国,CPU 2.0GHZ,内存 96mb。在网路间额外模拟了10%的丢包(双向),用于加重FEC算法的负担。

测试命令
在server端:
./tinyvpn_amd64 -s -l 0.0.0.0:5533 --mode 0 --sub-net 10.22.22.0
iperf3 -s

在client端:
./tinyvpn_amd64 -c -r 45.76.100.53:5533 --mode 0 --sub-net 10.22.22.0
iperf3 -c 10.22.22.1 -P10
测试结果

image

其他

程序支持动态改变FEC的冗余度而不断线,具体可以看--fifo选项。

tinyFecVРN跟kcptun/finalspeed/BBR 等现有方案比,主要区别是可以加速 UDP 和 ICMP,现有方案几乎都只能加速 TCP。一般加速游戏必须用到UDP。

跟UDPspeeder比,主要是使用起来更简单。

116 条回复    2018-06-23 07:21:48 +08:00
1  2  
jhytxy
    1
jhytxy  
   2017-10-29 11:11:14 +08:00 via iPhone   ❤️ 8
搞了这种东西就别遮遮掩掩了
不是说你自己阉一刀老爷就不来找你麻烦了
Loyalsoldier
    2
Loyalsoldier  
   2017-10-29 11:23:49 +08:00
话说是否可以实现自动检测网络质量,由此自动调整多倍发包的比例?
wangyucn
    3
wangyucn  
OP
   2017-10-29 11:29:39 +08:00   ❤️ 1
>话说是否可以实现自动检测网络质量,由此自动调整多倍发包的比例?

这是个好主意,目前还没实现。 不过,我提供了在程序运行中动态改变码率的接口(见--fifo 选项),你可以自己用脚本统计丢包率,然后用 fifo 通知 tinyFecVРN 变换码率。
Bluef0x
    4
Bluef0x  
   2017-10-29 11:30:12 +08:00 via iPhone
怎么配合酸酸用?
wangyucn
    5
wangyucn  
OP
   2017-10-29 11:34:40 +08:00
@Bluef0x

不论是什么服务,你只要在本地用 10.22.22.1 这个 ip 去访问,就会被加速了。
0987363
    6
0987363  
   2017-10-29 11:35:00 +08:00 via iPhone
udp 真的要看墙心情, 几年前墙就支持屏蔽未知流量端口。
wangyucn
    7
wangyucn  
OP
   2017-10-29 11:36:04 +08:00
> udp 真的要看墙心情, 几年前墙就支持屏蔽未知流量端口。

搜一下 udp2raw,可以完美解决 udp 被限速的问题。
wangyucn
    8
wangyucn  
OP
   2017-10-29 11:38:25 +08:00   ❤️ 1
>udp 真的要看墙心情, 几年前墙就支持屏蔽未知流量端口

一般做 udp 限速的是本地运营商,墙只是背锅了。我这边到同一个服务器,本地的移动有问题,北京联通没问题。
luolufang
    9
luolufang  
   2017-10-29 11:56:39 +08:00 via Android
我也觉得没必要自己砍一刀,国内使用也没必要上 udp
wangyucn
    10
wangyucn  
OP
   2017-10-29 11:58:30 +08:00
>国内使用也没必要上 udp

加速游戏必须要用到 UDP。
work1949
    11
work1949  
   2017-10-29 12:07:14 +08:00 via Android
支持转发吗
Shura
    12
Shura  
   2017-10-29 12:09:47 +08:00
@jhytxy 去限制还是很容易的,在 tun_dev.cpp 里
paul1729
    13
paul1729  
   2017-10-29 12:10:30 +08:00
想问下这个 VPN 是不是多线程的?然后吞吐量怎么样?
wangyucn
    14
wangyucn  
OP
   2017-10-29 12:30:16 +08:00
>想问下这个 VPN 是不是多线程的

这个 VPN 是单线程+epoll 实现的。

>然后吞吐量怎么样?


附上在两个单核小鸡上的性能测试,server 在 vulr 日本,CPU2.4GHz,内存 512mb。client 在搬瓦工美国,CPU 2.0GHZ,内存 96mb。

在关闭 FEC 的情况下测 tinyFecVРN 本身的性能:

[SUM] 0.00-10.00 sec 125 MBytes 105 Mbits/sec 794 sender
[SUM] 0.00-10.00 sec 122 MBytes 102 Mbits/sec receiver

开启 FEC 后,性能受制于 Reed solomon 库,不同参数的性能有很大区别。

对于默认的 FEC 参数,每 20 个包额外发 10 个冗余包:

[ 4] 0.00-10.00 sec 66.2 MBytes 55.5 Mbits/sec 114 sender
[ 4] 0.00-10.00 sec 65.8 MBytes 55.2 Mbits/sec receiver
wangyucn
    15
wangyucn  
OP
   2017-10-29 12:35:18 +08:00
@paul1729

用 iperf3 -P10 去压,压榨出了更多的性能。

默认 FEC 参数下的性能:

[SUM] 0.00-10.00 sec 88.9 MBytes 74.6 Mbits/sec 0 sender
[SUM] 0.00-10.00 sec 85.5 MBytes 71.7 Mbits/sec receiver
bjhyyc
    16
bjhyyc  
   2017-10-29 12:42:48 +08:00
是钓鱼吗?
zlfzy
    17
zlfzy  
   2017-10-29 12:43:20 +08:00
不是很懂,先收藏一下
pisser
    18
pisser  
   2017-10-29 12:47:14 +08:00
nores 哈哈!
Pigbird
    19
Pigbird  
   2017-10-29 12:59:18 +08:00 via Android
大佬,对于联通广州出口这种大姨妈你这个能起到治疗效果么
nerozhu
    20
nerozhu  
   2017-10-29 13:01:31 +08:00
大佬。用这个加速游戏可以稳定不?
anyele
    21
anyele  
   2017-10-29 13:07:25 +08:00
之前就觉得 UDPspeeder 配置比较麻烦, 现在支持一下
wangyucn
    22
wangyucn  
OP
   2017-10-29 13:14:26 +08:00   ❤️ 2
>大佬。用这个加速游戏可以稳定不?

这个最初就是为了加速游戏设计的,最拿手的就是加速游戏了。我自己用来加速美服的 brawl stars 和亚服的 mobile legend,从卡得没法玩,到几乎不卡。
qiukun
    23
qiukun  
   2017-10-29 13:30:19 +08:00
@wangyucn 好人
Liqianyu
    24
Liqianyu  
   2017-10-29 13:33:15 +08:00
@wangyucn
是不是对不丢包的网络没用?
对于主机 P2P 游戏,加速现今有什么好思路吗(SS\VPN 对其都不甚友好)
myliyifei
    25
myliyifei  
   2017-10-29 13:45:19 +08:00
@wangyucn 不论是什么服务,你只要在本地用 10.22.22.1 这个 ip 去访问,就会被加速了。
那就是本地 windows 还要配一个 NAT 服务了?或者写路由指向这一条?
shaoshuang
    26
shaoshuang  
   2017-10-29 13:47:17 +08:00
实测了下,韩国的机房
只开启了 BBR,看 4K 可以在 30-40M
使用了 tinyFecVРN 的情况下( MAC 酸酸乳--本地 Ubuntu 虚拟机 tinyFecVPN 客户端--服务器 tinyFecVPN 服务端--酸酸乳),看 4K 只能在 4-5M
可能是我打开方式不对
wangyucn
    27
wangyucn  
OP
   2017-10-29 13:55:09 +08:00   ❤️ 1
@shaoshuang

youtube 那个只是带宽估计,实际上他并不会发送 30mbps 的数据来测试,不准确。

建议用 iperf3 或者 scp 用真实流量来测试

另外 bbr 已经很牛了,如果你只需要加速 tcp,又对延迟要求不高,只用 bbr 就够了
shaoshuang
    28
shaoshuang  
   2017-10-29 13:57:29 +08:00 via iPhone
@wangyucn 感谢回复明白了
wangyucn
    29
wangyucn  
OP
   2017-10-29 13:57:38 +08:00
@myliyifei

对于 tinyFecVPN 运行在虚拟机或路由器上的情况,我在 repo 里讲了一种免 nat 让 Windows 访问的方法。很简单,只需要两条命令。
wangyucn
    30
wangyucn  
OP
   2017-10-29 14:06:18 +08:00
@shaoshuang

还有个可能是你的 udp 被运营商限速了。你用了 tinyFecVPN 之后,所有流量都走 udp 了,而原来的流量是走 tcp。

搜一下 udp2raw,可以解决这个问题。
wangyucn
    31
wangyucn  
OP
   2017-10-29 14:28:34 +08:00
>是不是对不丢包的网络没用?
对于绝对不丢包的网络,除了用专线走一条延迟更短的线路以外,基本上任何加速器都没有用。

>对于主机 P2P 游戏,加速现今有什么好思路吗(SS\VPN 对其都不甚友好)

可以把 VPN 或者 S***搭载路由器上,在路由器上实现透明路由或透明代理。 我自己个人用的是 VPN 方法,然后在路由器上用 iptables、ip rule、ip route 来实现透明的路由策略。
mind3x
    32
mind3x  
   2017-10-29 14:43:16 +08:00 via Android
根据 Google 在 QUIC 协议上的实践,fec 基本上只有副作用,所以他们前两年就从 QUIC 里拿掉了 fec,供参考,并不是来挑刺的。
sublimevsatom
    33
sublimevsatom  
   2017-10-29 14:46:58 +08:00
感谢楼主的分享。
在 Linux 桌面进行网游的时候,有时候就缺这么一类跨平台的游戏加速器。
HaoyangWei
    34
HaoyangWei  
   2017-10-29 15:02:11 +08:00
活着难道不好吗?
sobigfish
    35
sobigfish  
   2017-10-29 15:08:59 +08:00
@HaoyangWei 只是加速你还想怎么样?

话说可以改个名字啊,VPN 关键字去了多好,只是少些不必要的麻烦
wangyucn
    36
wangyucn  
OP
   2017-10-29 15:39:45 +08:00
>根据 Google 在 QUIC 协议上的实践,fec 基本上只有副作用,所以他们前两年就从 QUIC 里拿掉了 fec,供参考,并不是来挑刺的。

具体情况不了解,可能他们的网络环境比较好。也许他们说的有副作用,是因为没法选择出一套对所有人都适用的参数,又难以做到完全自动调整参数,所以总体上造成了副作用。

这个 repo 针对的是自己的网路有丢包,又有一定动手能力的人; QUIC 从设计上是一个零门槛使用的协议。所以 QUIC 的结论并不能套用在这个 repo 上。

项目 repo 里面有性能测试,在高丢包环境下确实是有明显性能提升的,scp 从 30kb/s 提升到了 3.5mb/s。而且测试方法都公开,你自己也可以轻易复现。

>话说可以改个名字啊,VPN 关键字去了多好,只是少些不必要的麻烦

之前确实想过,想叫 tinyFecRelay。不过后来还是决定起一个最直观的名字了。
wtcoder
    37
wtcoder  
   2017-10-29 16:52:05 +08:00
牛逼!
wwqgtxx
    38
wwqgtxx  
   2017-10-29 17:09:31 +08:00
看了一下你的“透过 tinyFecVPN 免改 iptables 加速网络”这个节,感觉可以考虑写个小工具操作 iptables 自动实现端口重定向,socat 这个程序在 Tcp 转发上还好用,在 Udp 转发上大量的 fork,然后很容易爆内存,并不是个好选择
renothing
    39
renothing  
   2017-10-29 17:18:19 +08:00
测试了下,不稳定,不断的重链
wangyucn
    40
wangyucn  
OP
   2017-10-29 17:22:27 +08:00
@renothing

疑似是 udp 被掐断了,在前面套个 udp2raw 试试。

如果还不行的话,请开个 issue,描述一下细节。
wangyucn
    41
wangyucn  
OP
   2017-10-29 17:38:25 +08:00
>看了一下你的“透过 tinyFecVPN 免改 iptables 加速网络”这个节,感觉可以考虑写个小工具操作 iptables 自动实现端口重定向,socat 这个程序在 Tcp 转发上还好用,在 Udp 转发上大量的 fork,然后很容易爆内存,并不是个好选择

iptables 加了之后还得清理,有点麻烦,程序被 kill -9 后还要手动删。以后我可能会实现一个基于 epoll 的 tcp 和 udp 端口转发的小工具,集成在这个 repo 里。
myliyifei
    42
myliyifei  
   2017-10-29 19:12:55 +08:00
@wangyucn socks5 对所有的 UDP 包支持好吗?
sw0rd3n
    43
sw0rd3n  
   2017-10-29 19:28:21 +08:00 via iPhone
实现拥塞控制了嘛?
wangyucn
    44
wangyucn  
OP
   2017-10-29 19:34:46 +08:00
@sw0rd3n

tinyFecVPN 工作在 ip 层,在这一层面不应该有拥塞控制。

对于承载的 TCP 来说,拥塞控制由上层的 TCP 协议栈(在内核中)实现。
zhuzhi90
    45
zhuzhi90  
   2017-10-29 20:17:33 +08:00
大佬,你好,我是菜鸟。我按照你的教程一步步设置,udp2raw 有时候能脸上,有时候又会断掉。同样的,tinyvpn 也会出现 [FATAL]***exited 的情况。我是长城宽带,会不会和运营商有关系啊。 我试过成功 ssh 到 10.22.22.1 上,udp2raw 也成功握手,给出 id,但这两个都会隔一段时间自己断开了。
qyz0123321
    46
qyz0123321  
   2017-10-29 20:17:35 +08:00 via Android
就 FEC 而言,很像 QUIC..支持
ivdvef
    47
ivdvef  
   2017-10-29 20:23:20 +08:00
1024, 先收藏下来,明天试试看
wangyucn
    48
wangyucn  
OP
   2017-10-29 20:26:49 +08:00
@zhuzhi90

去 github 上发个 issue,贴出配置和 log,详细描述下环境吧。
renothing
    49
renothing  
   2017-10-29 20:33:49 +08:00   ❤️ 1
@wangyucn 一样的。环境是电信 adsl,server 是 usa vps。配置按照你的示例配置的。

貌似是你没有做心跳检测和自动重链。一段时间不发数据后,client 认为 server 已死,而 server 则把新的请求当成了新链接。
wangyucn
    50
wangyucn  
OP
   2017-10-29 20:58:28 +08:00
@renothing

如果很长时间没有发送数据的话,nat pipe 会被中间路由设备掐掉,确实会出现重连的情况。tinyFecVPN 里现在没有做 nat pipe 保活的功能,后续我做一下。暂时的解决办法是在后台开个 ping 保活 nat pipe。
findwho
    51
findwho  
   2017-10-29 21:24:26 +08:00
围观大神啊,既然名字都有了 vpn,还不如直接开放功能。。只是建议啊
wangyucn
    53
wangyucn  
OP
   2017-10-29 23:16:24 +08:00
@renothing

已经解决了,发布了一个的 release。多谢反馈。
skylancer
    54
skylancer  
   2017-10-30 00:00:58 +08:00
自己阉割一刀以为就不会被盯上么?
感觉你好天真...
kurtrossel
    55
kurtrossel  
   2017-10-30 00:24:24 +08:00
妙啊~

感谢分享!
artandlol
    56
artandlol  
   2017-10-30 09:49:20 +08:00
收藏
xxstop
    57
xxstop  
   2017-10-30 09:54:26 +08:00
不错。Mark
123s
    58
123s  
   2017-10-30 10:01:01 +08:00
大佬,安卓手机支持吗?
wangyucn
    59
wangyucn  
OP
   2017-10-30 11:22:01 +08:00
>大佬,安卓手机支持吗?

在安卓手机上有问题,可以运行但是发不出数据,以后会找时间解决一下。
zddewe
    60
zddewe  
   2017-10-30 11:32:47 +08:00
@wangyucn 谢谢,@wangyu 参考 cloudwindy 你一定要注意安全哇
wangyucn
    61
wangyucn  
OP
   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
    62
renothing  
   2017-10-30 13:36:18 +08:00
我看你加了地址校验。那基本上废掉了大部分伸手党了。哈哈
cq65617875
    63
cq65617875  
   2017-10-30 15:11:12 +08:00
@renothing
我感觉不久后就会出现所谓的解除限制版 TinyFecVPN 了
毕竟也就是注释几行代码的事儿……
hu6360567
    64
hu6360567  
   2017-10-30 17:40:32 +08:00
用了 socat 做了个 ipv6 地址的映射,一切都好,只是酸酸乳无法链接 Google 意外的网站,不理解为什么,看流量也一切正常……
wangyucn
    65
wangyucn  
OP
   2017-10-30 18:05:18 +08:00
@hu6360567

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

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

更新了一版,调整了默认参数,现在用默认的参数预计不会有任何 MTU 问题了。
hu6360567
    69
hu6360567  
   2017-10-31 10:42:25 +08:00
@wangyucn 试了一下,还是不行,只有 v6 流量能通过代理,v4 不通,不知道是什么原因了……如果直接使用,没有任何问题
renothing
    70
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
    71
wangyucn  
OP
   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
    72
wangyucn  
OP
   2017-10-31 16:45:41 +08:00
@renothing

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

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

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

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

确保你把 --mode 1 选项去掉
wangyucn
    75
wangyucn  
OP
   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
    76
kenshinji  
   2017-11-01 09:27:01 +08:00
@shaoshuang 韩国是哪里的 vps 提供商呢?我也去搞一个
renothing
    77
renothing  
   2017-11-02 03:18:19 +08:00
@wangyucn 感谢。已经搞明白了。昨天吞吐异常就是因为 mtu 设置过小。取消 mtu 自定义后速度正常了
apibits
    78
apibits  
   2017-11-02 11:15:24 +08:00 via Android
昨天尝试在自家 nas 群辉 DSM 上做客户端 直接尝试在 raw 下嵌套 tiny 在使用 g 参数手工执行了 iptable 后 稳定下来不再提醒 rst..... 直接软件启动时自动添加好像没起作用 虽然日志显示了执行了 iptable。。。。 使用 20:5 的参数
jayx
    79
jayx  
   2017-11-02 18:30:13 +08:00
README.zh-cn.md 里提示 2 好像写错了,"对于某些运营商,UDPspeeder 跟 tinyFecVPN 配合可以达到更好的速度",是 udp2raw 吧
wangyucn
    80
wangyucn  
OP
   2017-11-02 18:40:42 +08:00
@jayx 已修正 ,多谢反馈
xsd3169
    81
xsd3169  
   2017-11-04 22:30:49 +08:00
您好,Windows 上有客户端吗?
wangyucn
    82
wangyucn  
OP
   2017-11-05 13:57:09 +08:00
@wwqgtxx
socat 的问题已经解决了,用 epoll 写了个端口转发工具来代替 socat:
https://github.com/wangyu-/tinyPortMapper
wwqgtxx
    83
wwqgtxx  
   2017-11-05 15:21:47 +08:00 via iPhone
@wangyucn 已经 mark
我就很好奇,为什么这么长时间一直就没人做个类似的工具?
wangyucn
    84
wangyucn  
OP
   2017-11-05 20:06:47 +08:00
@wwqgtxx
ssh tunnel 可以转发 tcp,虽然难用一点。如果只需要 tcp,一般都拿 ssh tunnel 来凑合了。
关心性能的人也不多,转发 udp 一般都拿 socat 来凑合了。
wangyucn
    85
wangyucn  
OP
   2017-11-05 20:09:35 +08:00
@wwqgtxx
对于关心性能的人,还有 iptables 可以用
wwqgtxx
    86
wwqgtxx  
   2017-11-05 20:20:19 +08:00
@wangyucn socat 这种 fork 模式对于 UDP 实在是太不靠谱了,比如在 DNS 这种应用下,至于 iptables 的配置正如你说的,又麻烦又容易出错,实在是比较蛋疼,可能因为一般情况下 UDP 的应用没有 TCP 那么多吧
thj007
    87
thj007  
   2017-11-06 10:51:14 +08:00 via Smartisan T1
大佬,这个怎么跟 udp2raw 配合使用?
ecc
    88
ecc  
   2017-11-06 13:44:28 +08:00
路由器上 比如刷了梅林固件的可以用么
wangyucn
    89
wangyucn  
OP
   2017-11-06 14:05:46 +08:00
@ecc

可以,根据路由器的 CPU,拷贝 arm 版或 mips 版进去即可。需要用命令行启动。
jjllws
    90
jjllws  
   2017-11-07 11:08:21 +08:00 via Android
你好,感谢您的代码!看起来很棒!但是我对 Linux 不太熟悉,能否告诉我该如何使用?我是想要这样子做:
我的电脑 l2tp 连接 阿里云深圳 用你的 tinyvpn 转发数据到 阿里云香港


我该如何操作,请帮助我
carrionlee
    91
carrionlee  
   2017-11-07 20:18:37 +08:00
服务器运行后,出现 [WARN]de_cook(data,len)failed 的警告,代表什么意思?
wangyucn
    92
wangyucn  
OP
   2017-11-07 20:28:56 +08:00
@carrionlee 两端密码不一致,或者有未知的程序在访问 server 监听的端口。
wwwqq8254289
    93
wwwqq8254289  
   2017-11-10 17:12:38 +08:00
大佬带带我撒,现在这些加速器 ping 值看不出游戏内好坏,你这个能当加速器用,是否考虑嗯大家一起出钱用呢。
hgjian
    94
hgjian  
   2017-11-14 08:55:33 +08:00
@Shura 可以说一下注释掉哪些代码吗?看了半天源代码都不确定注释掉哪些东西。
Shura
    95
Shura  
   2017-11-14 11:52:17 +08:00
@hgjian tun_dev.cpp#L132
hgjian
    96
hgjian  
   2017-11-15 15:03:14 +08:00
@Shura 就是注释掉下面这段吗? 感谢回复指点,谢谢!
#ifndef NORES
........代码块...........
#endif
hgjian
    97
hgjian  
   2017-11-15 15:07:58 +08:00
@cq65617875 可以指点一下注释掉哪一些不?
brickman379
    98
brickman379  
   2017-11-15 23:30:10 +08:00
大佬,自己编译的能 ping 通百度,为什么访问百度失败。IP 10.22.22.2.34912 > 112.80.248.73.https: Flags [S], seq 2783734512, win 29200, options [mss 1200,sackOK,TS val 2495875737 ecr 0,nop,wscale 7], length 0
wangyucn
    99
wangyucn  
OP
   2017-11-16 00:41:13 +08:00
@brickman379
按下面链接里说的要点,详细描述一下环境。去 github 上开个 issue。
https://github.com/wangyu-/UDPspeeder/wiki/发 Issue 前请看
hgjian
    100
hgjian  
   2017-11-16 08:28:17 +08:00
@brickman379 请问注释哪些额?
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3400 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 38ms · UTC 11:57 · PVG 19:57 · LAX 03:57 · JFK 06:57
Developed with CodeLauncher
♥ Do have faith in what you're doing.