Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

使用反馈 #46

Closed
karlverik opened this issue Sep 7, 2017 · 12 comments
Closed

使用反馈 #46

karlverik opened this issue Sep 7, 2017 · 12 comments

Comments

@karlverik
Copy link

karlverik commented Sep 7, 2017

坐标:魔都电信 50M光纤
服务端: vultr 2.5刀的vps 架设ss+kcptun+udp2raw
客户端: win7 x64 virtualbox上运行udp2raw 主机上运行ss+kcptun

原始只在vps上跑ss加bbr,一个月前服务器丢包率和延迟暴增(美东的服务器比我朋友美西的还高),改用锐速优化参数后稍微有所改善,但速度仍不满意。改用kcptun,速度明显改善但很不稳定。
用iperf3测试了下udp丢包,丢包率基本在30以上,高峰时期甚至几乎全丢。
qq 20170908011251

前几天使用udp2raw后丢包情况明显改善,(想利用iperf3发udp包通过udp2raw-tunnel测试,发现连接不了,但iperf3->kcptun->udp2raw-tunnel->kcptun->iperf3 可以进行测试,- -技术小白弄不懂其中原因)。只能用youtube统计比较粗略的看
ss+锐速: 1500kbps,高峰时基本不能用。。。
ss+kcp:不稳定但峰值能到30000kbps 平均有30%丢包率且加载很不均匀
ss+kcp+udp2raw:20000kbps 与kcptun服务端:sndwnd和rcvwnd参数基本符合。用了3-4天目前仍旧稳定,。
kcptun的参数:
"client" -r -key "XXX" -crypt aes-192 -nocomp -datashard 30 -parityshard 15 -mtu 1300 -sndwnd 1024 -rcvwnd 1024 -dscp 46 -keepalive 10 -sockbuf 4194304 -mode fast2
"server" -r -key "XXX" -crypt aes-192 -nocomp -datashard 30 -parityshard 15 -mtu 1300 -sndwnd 2048 -rcvwnd 2048 -dscp 46 -keepalive 10 -sockbuf 4194304 -mode fast2 -nc 1 -resend 2 -
使用过程中发现几个问题:
1:kcp服务端的sndwnd rcvwnd在512 512 和 1024 1024时速度比只用kcptun慢很多。后直接调成2048 2048后速度和只用kcptun差不多。
2:udp2raw自动生产的iptables规则好像有点问题-a无法添加参数,-g导出后看了看,手动添加,报错有iptables不能识别的参数。
3:vultr控制面板cpu usage 用了kcptun+udp2raw后一直显示是100%。。。,但用top命令查看 kcp只有5%,udp2raw 10%,这是什么原因?

@wangyu-
Copy link
Owner

wangyu- commented Sep 8, 2017

想利用iperf3发udp包通过udp2raw-tunnel测试,发现连接不了.

iperf3同时监听在一个tcp端口和一个udp,端口。即使只测udp也需要连那个tcp端口。你这样只映射了udp端口,所以不能测。

另外iperf3测udp有严重bug ( esnet/iperf#296) .不建用iperf3的udp功能。测tcp没问题。

kcp服务端的sndwnd rcvwnd在512 512 和 1024 1024时速度比只用kcptun慢很多。后直接调成2048 2048后速度和只用kcptun差不多。

这个不清楚。

udp2raw自动生产的iptables规则好像有点问题-a无法添加参数,-g导出后看了看,手动添加,报错有iptables不能识别的参数。

麻烦你贴一下有问题的命令,再贴一下不能识别的iptables。还有vultr上面用的是什么linux发行版也说一下。

vultr控制面板cpu usage 用了kcptun+udp2raw后一直显示是100%。。。,但用top命令查看 kcp只有5%,udp2raw 10%,这是什么原因?

我也用的vultr2.5美元套餐,系统是debian8 x64,没有类似现象。可能是你Linux发行版的问题?

ss+kcp:不稳定但峰值能到30000kbps 平均有30%丢包率且加载很不均匀
ss+kcp+udp2raw:20000kbps 与kcptun服务端:sndwnd和rcvwnd参数基本符合。用了3-4天目前仍旧稳

你用的是哪个udp2raw binary,建议在server端换udp2raw_amd64_hw_aes测试一下,这个版本的AES有硬件加速。你这个带宽本身比较高,有可能(某一边的)CPU被占满了,所以速度峰值变低了。

Client端,如果你用的是最新版的虚拟机镜像,里面的udp2raw已经是加速版的了。

还有,既然你的kcptun本身已经aes加密了,在udp2raw你可以不用aes,用--cipher-mode xor,这样CPU占用率会低很多。

@karlverik
Copy link
Author

karlverik commented Sep 8, 2017

1.略略有点了解了。。。
2.

麻烦你贴一下有问题的命令,再贴一下不能识别的iptables。还有vultr上面用的是什么linux发行版也说一下。

发行版是centos6 x64 。操作了下应该是当时自己的问题,用-a部署服务端的时间估计是客户端没处理好回复了大量rst,-g导出命令后,由于是当场google的学习的iptables,自己输入修改后的命令应该有错误导致出现错误报告。
3.

你用的是哪个udp2raw binary,建议在server端换udp2raw_amd64_hw_aes测试一下,这个版本的AES有硬件加速。你这个带宽本身比较高,有可能(某一边的)CPU被占满了,所以速度峰值变低了。

原来用的是udp2raw_amd64。按照大大所说换成udp2raw_amd64_hw_aes测试了一下并添加了--cipher-mode xor,youtube速度有所提升,大约10%的幅度,稳定在23000kbps。top看了下占用率,发现kcptun和udp2raw占用率都很低,vultr控制台的cpu usage可能需要再用一会看看。

@PHCSJC
Copy link

PHCSJC commented Sep 8, 2017

@wangyu- vps是只有1 core,我的kcp服务器端用了--crypt salsa20,那udp2raw_amd64用--cipher-mode xor也可以吧?再就是xor要密码吗?

@wangyu-
Copy link
Owner

wangyu- commented Sep 8, 2017

那udp2raw_amd64用--cipher-mode xor也可以吧?再就是xor要密码吗?

可以。要密码。

@PHCSJC
Copy link

PHCSJC commented Sep 8, 2017

再请教,kcptun加密后,udp2raw_amd64不加密可以吗?有什么影响吗?

@wangyu-
Copy link
Owner

wangyu- commented Sep 8, 2017

kcptun加密后,udp2raw_amd64不加密可以吗。

不加密也可以。狭义的不加密,用--cipher-mode none

广义的不加密用--cipher-mode none --auth-mode none --disable-anti-replay,不加密同时关闭数据完整性校验和防重放攻击。如果用了 --auth-mode none,一定要把--disable-anti-replay一起用。

有什么影响吗?

只要你用了--cipher-mode none,那么密码认证的功能也没有了。任何人都能连接你的udp2raw server。如果有人想攻击你,他可以构造大量的连接,跟你的udp2raw握手,把你的连接资源耗光,让你连接不上。

--cipher-mode xor --auth-mode simple 已经非常轻量了,几乎不影响性能。没必要为了那一点点性能损失用none。

@PHCSJC
Copy link

PHCSJC commented Sep 8, 2017

@wangyu- 谢谢,那我就用xor了,再请教:
我用的是SSR,协议选的auth_aes128_md5,这个协议可以防重放攻击,那再加上kcptun和udp2raw-tunnel后,这个防重放攻击还有效吗?如果有效,是否就可以放心加--disable-anti-replay了?

@wangyu-
Copy link
Owner

wangyu- commented Sep 8, 2017

@PHCSJC

不熟悉SSR,不知道。如果它本身确实是防重放攻击的,那应该没问题。

但是,你用SSR的主要目的是把SS流量混淆成其他流量吧,比如http或者ssl。不用提udp2raw,只要你在前面加上了kcptun,那外界看到的就是kcp流量,混淆就意义不大了。不如用原版SS。

--disable-anti-replay,这个性能开销极低,你关了也没什么效果。除非是为了用--auth-mode none

@PHCSJC
Copy link

PHCSJC commented Sep 8, 2017

@wangyu- 好的,明白了,目前就加个--cipher-mode xor来减轻vps的压力,其它默认,谢谢。
主要是路由器还不支持udp2raw,所以要用ssr混淆一下。

@PHCSJC
Copy link

PHCSJC commented Sep 8, 2017

再次更新,改为xor后,测试了下变化不大,又改回默认的。
目前我的小鸡上看1080P,udp2raw的占用率是5%。

@wangyu-
Copy link
Owner

wangyu- commented Sep 10, 2017

如果用了 --auth-mode none,一定要把--disable-anti-replay一起用

更正一下

我看了下代码,如果用了--auth-mode none,那--disable-anti-replay会被自动加上。所以,不用手动加--disable-anti-replay。(这个逻辑很早以前就有了,上次回答的时候我忘了)

@PHCSJC
Copy link

PHCSJC commented Sep 10, 2017

好的,谢谢提醒,目前都是默认的了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants