网络可以ping通三次握手失败

从抓包分析,发现三次握手请求端发送了syn之后,接收端没有相应ack,而接收端对应的端口是listening状态,而且netstat看没有什么连接,系统可用连接肯定是足够的。

猜测是时间戳问题导致,三次握手失败。

分析如果将出现问题的机器的时间戳去掉会不会解决问题。针对带有时间戳的tcp syn包不响应的问题,查阅了相关资料得知产生问题的原因是出问题系统中的注册表中有Tcp1323opts这个选项,会导致其在发包时加入时间戳,经过nat之后,如果前面相同的端口被使用过,且时间戳大于这个链接发出的syn中的时间戳,服务器上就会忽略掉这个syn,不返会syn-ack消息,表现为用户无法正常完成tcp3次握手。

目前看有两种方法解决:

(1)    是在服务器上修改变量

首先我们先查看一下我们服务器net.ipv4.tcp_timestamps的默认值,如果该值为0测说名不是该问题导致,如果是1我们需要将该值设置为1。

查看默认值的方法:[root@localhost ~]# cat /proc/sys/net/ipv4/tcp_timestamps

修改该值的方法:vim /etc/sysctl.conf  添加 net.ipv4.tcp_timestamps=0

sysctl-p马上生效

(2)修改客户端的注册表Tcp1323Opts设置为0。

 

如果您可以ping服务器,但是连接服务器时出现"TCP报文重复"的错误,可能是以下原因导致的: 1. 服务器负载过高:如果服务器的负载过高,可能会导致 TCP 报文重复。您可以尝试等待一段时间,然后再次尝试连接。 2. 网络连接问题:虽然您可以ping服务器,但是仍然可能存在网络连接问题。请检查您的网络连接,确保其正常工作。 3. 防火墙设置阻止连接:请检查防火墙设置,确保允许连接目标端口。 4. 网络设备故障:如果网络设备(例如路由器或交换机)出现故障,可能会导致 TCP 报文重复。请检查您的网络设备并确保其正常工作。 解决此问题的方法包括: 1. 等待一段时间:如果服务器的负载过高,可能会导致 TCP 报文重复。您可以尝试等待一段时间,然后再次尝试连接。 2. 检查网络连接:请检查您的网络连接,确保其正常工作。您可以尝试使用其他设备进行连接,以确定问题是否出现在您的计算机上。 3. 检查防火墙设置:请检查防火墙设置,确保允许连接目标端口。您可以按照以下步骤检查防火墙设置: a. 打开 Windows 防火墙设置。 b. 单击“高级设置”。 c. 单击“入站规则”。 d. 查找与服务器端口相对应的规则,并确保已启用该规则。 4. 检查网络设备:请检查您的网络设备并确保其正常工作。您可以尝试重启网络设备,以解决问题。 希望这些解决方案能够帮助您解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值