1
wangyucn 2017-11-13 23:34:40 +08:00
两端 tcpdump 看一下,排除是自己的 iptables 造成的问题。如果抓包显示确实是一边发出去了另一边收不到,套上个 udp2raw 可以解决。
|
2
XiaoxiaoPu 2017-11-13 23:55:54 +08:00 3
封 IP 是这样:
>>>>>>>>>🝙🝙🝙>>>>>>>>> XXXXXXXXX🝙🝙🝙<<<<<<<<< 丢 UDP 包是这样: >>>>>XXXX🝙🝙🝙.................... ....................🝙🝙🝙.................... 抓包看一下断在哪就行了 |
3
f2f2f OP @wangyucn 现在是本机有发出,kcptun 可以看到 stream opened 然后超时 closed。服务器端 kcptun 无任何日志,本机发出请求的时候,服务器端口也不是 connecting 而是 sleeping。lsof 看到 kcptun 并不在监听状态,但是也没报错
现在不知道是 vultr 机房的问题还是哪里,电信应该是没封 udp 的,因为我另一个 vps 上非常正常,相同配置搬到 vultr 就不行了,很诡异 |
4
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 没被限制。 |
6
wangyucn 2017-11-14 00:44:16 +08:00
@f2f2f 把 VPS 的所有 iptables 先备份一下,然后清空 iptables 重试。
另外用 netstat -nlp 检查一下 kcptun 是不是 bind 到了 0.0.0.0+你指定的端口。 |
7
f2f2f OP @wangyucn 谢谢! iptables 清空过无效。而且刚初始化的系统直接装 proxy 的
netstat 结果: udp6 0 0 :::443 :::* 8188/kcptun 看样子在在监听 ipv6 ?但是我已经在 sysctl 里禁用 ipv6,config 也是写死的 127.0.0.1 了…… |
8
wangyucn 2017-11-14 00:51:08 +08:00
@f2f2f 清空后用 iptables-save 确认一下,确保输出是干干净净的。如果还是不行,再测试一下 udp 模式的 nc 通不通吧。
|
9
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? |
10
msg7086 2017-11-14 07:16:54 +08:00
如果你是双栈网络的话,监听 v6 会同时接受 v4 连接。
禁用 ipv6 以后就不知道了…… |
11
yjzll 2017-11-14 09:00:01 +08:00
参数问题,先不用所有参数,然后,一个一个加
|
12
f2f2f OP @wangyucn github 上 issue 里有个类似情况的,给出的办法是 listen 项尝试分别用 0.0.0.0,127.0.0.1,server_ip 写死。但是我这边都不行。
我再看看参数吧,奇怪是这套参数我另外一台一模一样都没动过,反而 vultr 却不行了…… |
13
f2f2f OP @wangyucn iptables 里把 udp 443 (我用的端口)加了条白名单,然后把参数全都强制绑定 server ip。现在服务器端 kcptun 有连接了,但是 broken pipe。继续 tcpdump,发现服务器发出的 udp 非常少,基本 5 个传入的 udp 包才会有一个输出,而且就是那个输出了以后,我本机的 proxy 就提示 500 internal error 然后关闭连接了。这是不是意味着服务器端限制了什么?
|
14
mrcn 2017-11-14 13:18:26 +08:00 via Android
跟 Vultr 无关。应该是配置 /程序的问题。
|