udp2raw占用cpu过高,运行一段时间后会丢包非常严重
在互联网上跑openvpn,正常情况下会丢1-4%的包,这应该是运营商对udp的qos导致,想通过udp2raw混淆解决丢包问题,加上udp2raw后ping 1000个包可以实现丢0-1个包,但是发现运行一段时间后会出现严重丢包,丢在50%以上,可以通过重启udp2raw进程恢复,但是过一段时间后又会丢包,如此反复。
udp2raw配置如下:
udp2raw -c -lip1:port1 -rip2:port2 -a -k "passwd" --raw-mode faketcp --seq-mode 1
这个可能是什么原因呢?
后面发现udp2raw占用CPU过高,正常udp2raw应该和OPENVPN的CPU占用率相同,环境是客户端openwrt,服务端centos,这里的丢包和CPU没有关系,CPU占用过高是后面发现的异常现象,之前测试丢包时,udp2raw占用CPU没有异常

运行一段时间以后丢包上升,很可能是因为运营商对连接时间长的连接的劣化,我自己也遇到过类似现象。除了手动处理以外没什么好办法。 可以在client端用--fifo功能重连,重连的同时保持上层不断线。
https://github.com/wangyu-/udp2raw-tunnel#--fifo
CPU占用率高在别的issue里也见过,典型情况是在openwrt系统上设置了自动启动以后CPU占满一个核。可能是bug,但是目前没有人给出复现的方法,所以没有解决。
fifo参数有点没看懂,可以往程序中发送命令,我发送什么命令呢?怎么在连接恶化时重连呢
运行client的时候,增加fifo参数:
udp2raw -c -lip1:port1 -rip2:port2 -a -k "passwd" --raw-mode faketcp --seq-mode 1 --fifo fifo.file
要重连的时候, 执行:
echo reconnect >fifo.file
借这个贴再问下udp2raw是单线程的吗,我想通过他和wireguard配合使用,但是udp2raw限制了他的速率,udp2raw只能占满一个核。
mark一下