-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
udp2raw如何在Docker 中使用? #54
Comments
跟不用docker比,没有明显区别。除了docker中一般不支持iptables,不能用 #41 里有人用过,可以正常用。 |
如果对宿主机有控制权,iptables在宿主机上加。 如果对宿主机没控制权(比如docker的vps),那就只能尝试不加iptables规则直接用了,有的网络环境下不加iptables规则也可以稳定使用。 |
去掉 -a 就正常了 多谢 |
补充一点,网络模式要设成host,用 |
测试发现 --net=host 参数 不再需要 |
建议用
nice |
是用 iperf3 测试? |
iperf3可以,用 iperf3的udp有bug,我自己都是用udp2raw+openvpn+iperf3用tcp模式来测。用udp2raw+kcptun+iperf3应该也可以。 |
iperf3 udp是正常的呀 只是默认一个线程限制1M带宽所以-P小了就跑不满 加个 -b 0 就行 help里讲UDP 带宽不重要看 jitter |
不是这个原因。 你看这个Issue,用iperf2和iperf3测出的结果千差万别。 |
为什么结果会这么大,这个测的不是udp2raw中转后的速度吧。 |
用udp2raw中转后 iperf3 连不上 docker run -it --rm --name=iperf3-server --net=host networkstatic/iperf3 -s Server listening on 5201 docker run -it --rm --cap-add=NET_ADMIN --net=host daocloud.io/rheinmetal/udp2raw ./udp2raw_dynamic -s -l 0.0.0.0:10999 -r 127.0.0.1:5201 --cipher-mode xor --auth-mode simple -a -k "passwd" --lower-level auto changed state to server_ready iperf3 -c 127.0.0.1 -P30 -p 3333 -u -b 0 iperf3: error - unable to connect to server: Connection refused |
iperf3同时监听在一个tcp端口和一个udp,端口。即使只测udp也需要连那个tcp端口。你这样只映射了udp端口,所以不能测。 这个issue里跟你一样的问题,https://github.com/wangyu-/udp2raw-tunnel/issues/46 另外,即使你解决了这个问题,也不建议用iperf3的udp模式,结果完全不可靠。你看下我给你的连接,同样的网络,用Iperf2测出来丢包0.3%,用iperf3测出来丢包99%. |
用udp2raw+kcptun+iperf3 host mode 和本机直接运行都在 10 Mbits/sec左右 host模式: |
birdge 模式直接连不上 iperf3 -c |
有多不稳定,能不能发下log。现在你的CPU是瓶颈还是带宽是瓶颈?另外 如果你对这个不稳定的原因有兴趣,可以试下不通过udp2raw,只用kcptun+iperf3测下是否有类似不稳定现象。我觉得不稳定有可能是kcptun的fec造成的,fec会带来cliff effect,可以尝试看一下开启和关闭FEC是否造成了明显区别。 我这边udp2raw+udpspeeder+vpn的测试结果:
还算稳定,如果用-P30会更稳定一些,基本都是10Mbit/Sec左右 |
iperf3 -c 127.0.0.1 -P30 -p 8388 -b 5M -t 240 |
@jiangtiandao
我怀疑是CPU被打满了,或者是FEC造成的。 |
client server 都是在阿里云2c4g的vps上 测试的时候cpu 5% |
只用kcptun 关闭fec的话 -P 增加之后 一样不稳定 |
也许你kcptun的参数没调好, |
iperf3 的 -b 调小之后还挺稳定的 |
这样只是掩盖了问题;现在的问题是,如果你不限制每个连接的带宽,上层的tcp会错误地估计了带宽,瞬时发送了过多的数据,导致连接不稳定。 |
docker bridge 模式吞吐量在 5 Mbits/sec左右 是 host模式的一半 |
我猜主要和kcp的send windows size有关。 |
docker run -d --rm --name=iperf3-server -p 5201:5201 networkstatic/iperf3 -s 改了window 好多了 可以到 10 M 两种模式性能差不多 |
macos上的docker不是原生的,是用虚拟机虚拟了个Linux,然后在linux上运行的docker。为了能正常使用,需要把docker带的虚拟机的网卡设成桥接的,然后在docker里把网络模式设成host。这样理论上可以,不过我没有在mac上实机测试过。 既然mac上的docker底层都是运行在虚拟机里的,还不如直接用虚拟机。release里的那个7.5mb的虚拟机镜像里已经自带了udp2raw,开机即用,是最简单的方法。 |
非常感谢您的回复。
我用虚拟机已经能够正常连接vpn。
以我有限的认识,我认为一旦通过facktcp伪造了udp数据包之后,即使没有通过加速工具加速,理论上也能够提升连接速度的吧? 怎么我感觉速度并没有任何起色呢?
是否我的认识有误!
恳请赐教,多谢!
顺颂安祺,
--------------------------------------------------------------
daoye
E-Mail:[email protected]<mailto:[email protected]>
在 2017年10月18日,23:07,wangyu- <[email protected]<mailto:[email protected]>> 写道:
我也同问这个问题, 我本机macOS,在docker中运行了udp2raw,客户端和服务端建立的通道看起来没毛病,然鹅,openvpn就是不通。 不过我直接连接vpn是没有问题的。
macos上的docker不是原生的,是用虚拟机虚拟了个Linux,然后在linux上运行的docker。为了能正常使用,需要把docker带的虚拟机的网卡设成桥接的,然后在docker里把网络模式设成host。这样理论上可以,不过我没有在mac上实机测试过。
既然mac上的docker底层都是运行在虚拟机里的,还不如直接用虚拟机。release里的那个7.5mb的虚拟机镜像里已经自带了udp2raw,开机即用,是最简单的方法。
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub<https://github.com/wangyu-/udp2raw-tunnel/issues/54#issuecomment-337623068>, or mute the thread<https://github.com/notifications/unsubscribe-auth/AFG9zH6n-804q747471TkmrhczMvA7buks5sthQjgaJpZM4PaJA7>.
|
如果你的运营商对udp做了限制,那么伪装成tcp以后相当于绕过了限制,才会有提升。如果运营商没做限制,那么就不会提升了。 |
谢谢您的回复。
我默认运营商限制了UDP的速度,因为ss+bbr在fast测速能达到7.6Mb,而通过openvpn连接却只在1.x~3.xMb之间,且波动较大。
所以我以为通过udp2raw facktcp之后能有提升,但目前看来并非如此。
我再做一些其它方面的尝试。
多谢!
顺颂安祺,
--------------------------------------------------------------
E-Mail:[email protected]
在 2017年10月19日,22:49,wangyu- <[email protected]<mailto:[email protected]>> 写道:
以我有限的认识,我认为一旦通过facktcp伪造了udp数据包之后,即使没有通过加速工具加速,理论上也能够提升连接速度的吧? 怎么我感觉速度并没有任何起色呢?
如果你的运营商对udp做了限制,那么伪装成tcp以后相当于绕过了限制,才会有提升。如果运营商没做限制,那么就不会提升了。
—
|
测试发现 --net=host 参数 不再需要 只需要开放tcp 监听端口 即可
镜像内安装 iptables 后 -a 也可用 需要 --cap-add=NET_ADMIN 以便添加 iptables
The text was updated successfully, but these errors were encountered: