tcp 三次握手的奇葩问题

2014 年 8 月 22 日
 huaiyinhou
现象:服务端应用部署在rhl 6.4上,监听端口为8112 、8114 、8116 、8118。由另一台机器发请求后,发现监听一会就没了,客户端链接超时或拒绝连接。通过tcpdump监控到问题出现在tcp三次握手中的第二次一直无法成功。但把服务端换了其他端口就没问题(上述端口肯定未被占用)。后来没有办法,把apache 的服务端口更改为上述端口,测试一直没出现问题,tcp我手成功,业务测试正常。
最后只得在这台服务器上再模拟客户端请求,问题依旧出现在三次握手,只要换了端口肯定没问题,至今未能解决(selinux iptables全是关的)。
希望大家帮我分析一下。
6373 次点击
所在节点    Linux
15 条回复
tftk
2014 年 8 月 22 日
第二次握手为什么失败?
huaiyinhou
2014 年 8 月 22 日
@tftk 没找到原因
tftk
2014 年 8 月 22 日
确定抓包也看不到为什么失败?
cloveryume
2014 年 8 月 22 日
bind这几个端口,向外连,看看会怎么样?
zeayes
2014 年 8 月 23 日
第二次握手失败,返回的是什么错误信息呢?
huaiyinhou
2014 年 8 月 23 日
@tftk
hslx111
2014 年 8 月 23 日
无法成功,那失败的信息有吗?
cloudzhou
2014 年 8 月 23 日
考虑一下防火墙和路由
jedihy
2014 年 8 月 23 日
@zeayes TCP除了能发RST包之外还能返回错误信息?
huaiyinhou
2014 年 8 月 23 日
@jedihy rst都没有
huaiyinhou
2014 年 8 月 23 日
@tftk 由于在本机服务器测试,tcpdump 没有看到
jedihy
2014 年 8 月 23 日
@huaiyinhou 就是你发了SYN之后,没有SYN的ACK回来?
zeayes
2014 年 8 月 23 日
@jedihy 我的意思没表述清楚。


@huaiyinhou 楼主的意思是:client SYN后,server ACK/SYN后,client没有ACK?
tywtyw2002
2014 年 8 月 24 日
楼主把tcpdump -vvv的结果发来。
huaiyinhou
2014 年 8 月 25 日
@tywtyw2002 稍后

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

https://study.congcong.us/t/129380

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

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

© 2021 V2EX