Vultr 上的 kcptun 部署问题,似乎 udp 包直接被丢了

2017-11-13 21:57:04 +08:00
 f2f2f
kcptun 服务器端没有任何建立连接的日志,连监听的端口都是 sleeping 状态。

kcptun 配置应该是没问题的,之前在另外一个 vps 上正常的很。IP 也没被 Qiang,直连和酸酸都是可以的。

感觉像是 udp 包被丢弃的问题,这样的话如何定位跟踪呢?
2411 次点击
所在节点    宽带症候群
14 条回复
wangyucn
2017-11-13 23:34:40 +08:00
两端 tcpdump 看一下,排除是自己的 iptables 造成的问题。如果抓包显示确实是一边发出去了另一边收不到,套上个 udp2raw 可以解决。
XiaoxiaoPu
2017-11-13 23:55:54 +08:00
封 IP 是这样:
>>>>>>>>>🝙🝙🝙>>>>>>>>>
XXXXXXXXX🝙🝙🝙<<<<<<<<<

丢 UDP 包是这样:
>>>>>XXXX🝙🝙🝙....................
....................🝙🝙🝙....................

抓包看一下断在哪就行了
f2f2f
2017-11-14 00:25:39 +08:00
@wangyucn 现在是本机有发出,kcptun 可以看到 stream opened 然后超时 closed。服务器端 kcptun 无任何日志,本机发出请求的时候,服务器端口也不是 connecting 而是 sleeping。lsof 看到 kcptun 并不在监听状态,但是也没报错

现在不知道是 vultr 机房的问题还是哪里,电信应该是没封 udp 的,因为我另一个 vps 上非常正常,相同配置搬到 vultr 就不行了,很诡异
wangyucn
2017-11-14 00:39:34 +08:00
@f2f2f
你看 kcptun 的 log 去猜,倒不如直接抓包看一下。tcpdump -i any udp and port 8855。8855 换成你 server 监听的端口。

我用辽宁移动测试到 vultr 日本有段时间 udp 确实是不通的,到搬瓦工洛杉矶却没有问题。然而用北京联通到两个 VPS 一直都没有问题。所以连另一个 VPS 正常,并不能证明 udp 没被限制。
f2f2f
2017-11-14 00:39:57 +08:00
@wangyucn 刚刚 tcpdump 了一下,服务器有收到包,但是奇怪的是此时查询端口状态依旧是 sleeping
wangyucn
2017-11-14 00:44:16 +08:00
@f2f2f 把 VPS 的所有 iptables 先备份一下,然后清空 iptables 重试。
另外用 netstat -nlp 检查一下 kcptun 是不是 bind 到了 0.0.0.0+你指定的端口。
f2f2f
2017-11-14 00:47:24 +08:00
@wangyucn 谢谢! iptables 清空过无效。而且刚初始化的系统直接装 proxy 的

netstat 结果:
udp6 0 0 :::443 :::* 8188/kcptun

看样子在在监听 ipv6 ?但是我已经在 sysctl 里禁用 ipv6,config 也是写死的 127.0.0.1 了……
wangyucn
2017-11-14 00:51:08 +08:00
@f2f2f 清空后用 iptables-save 确认一下,确保输出是干干净净的。如果还是不行,再测试一下 udp 模式的 nc 通不通吧。
wangyucn
2017-11-14 00:56:56 +08:00
>udp6 0 0 :::443 :::* 8188/kcptun
ipv6 的我看不懂,不确定这样是否表示也同时监听在了 ipv4 上。

>config 也是写死的 127.0.0.1 了
kcptun 的 config?为什是 127.0.0.1 不是 0.0.0.0?
msg7086
2017-11-14 07:16:54 +08:00
如果你是双栈网络的话,监听 v6 会同时接受 v4 连接。
禁用 ipv6 以后就不知道了……
yjzll
2017-11-14 09:00:01 +08:00
参数问题,先不用所有参数,然后,一个一个加
f2f2f
2017-11-14 09:04:05 +08:00
@wangyucn github 上 issue 里有个类似情况的,给出的办法是 listen 项尝试分别用 0.0.0.0,127.0.0.1,server_ip 写死。但是我这边都不行。

我再看看参数吧,奇怪是这套参数我另外一台一模一样都没动过,反而 vultr 却不行了……
f2f2f
2017-11-14 10:22:25 +08:00
@wangyucn iptables 里把 udp 443 (我用的端口)加了条白名单,然后把参数全都强制绑定 server ip。现在服务器端 kcptun 有连接了,但是 broken pipe。继续 tcpdump,发现服务器发出的 udp 非常少,基本 5 个传入的 udp 包才会有一个输出,而且就是那个输出了以后,我本机的 proxy 就提示 500 internal error 然后关闭连接了。这是不是意味着服务器端限制了什么?
mrcn
2017-11-14 13:18:26 +08:00
跟 Vultr 无关。应该是配置 /程序的问题。

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

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

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

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

© 2021 V2EX