centos机器可以ping,但是telnet端口超时,网站wget超时,访问超时

同一个网站,有同事反映说打不开,他们用的有windows,mac,ubantu系统的,后面自己在虚机上装了个ubantu 16.04 LTS,发现访问这个网站也是不成功,用telnet 端口的方式测试也是超时,还以为是ubantu的系统设置的问题,改了网卡MTU,内核参数,DNS啥的,异常还是存在,此时是陷入了迷惑之中:
疑惑一:​我物理本机可以正常访问,而虚拟机却不可以,也用centos(公网上的)测试过,没问题
疑惑二:我们周围几个都是可以的,其他的都是不行的
疑惑三:对网站的IP可以ping通,但是telnet,wget,curl等方式却超时
对于疑惑一,这让我感觉是不是ubantu的系统有问题,还是谷歌了好久,一无所获,直到我发现我一台centos的虚机也是访问不了​,此时我从ubantu系统的方向转向了可以ping通但是telnet超时这个方向上,找到了这个帖子
https://2sitebbs.com/thread-1544-1-1.html​

改了一下服务端的内核参数
​在文件/etc/sysctl.conf增加
​net.ipv4.tcp_timestamps = 0​
sysctl -p


​让内核参数立即生效!
问题马上解决了

原理:​
​问题出在了 tcp 三次握手,ping 的通 icmp ok ,http ssh mysql 都不 ok
经过nat之后,如果前面相同的端口被使用过,且时间戳大于这个链接发出的syn中的时间戳,服务器上就会忽略掉这个syn,不返会syn-ack消息,表现为用户无法正常完成tcp3次握手,从而不能打开 web页面。在业务闲时,如果用户nat的端口没有被使用过时,就可以正常打开;业务忙时,nat端口重复使用的频率高,很难分到没有被使用的端口,从而产生这种问题。​
只有客户端和服务端都开启时间戳的情况下,才会出现能ping通不能建立tcp三次握手的情况
在同一个内网的环境下,多人使用同一个公网IP进行上网,这样nat之后是大大增加了端口重复使用的概率,centos默认是开启了TCP/IP建立的timestamps,所以忽略syn导致TCP三次握手失败。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值