zoukankan      html  css  js  c++  java
  • Linux服务器可以ping,但是telnet端口超时,网站wget超时,访问超时的解决办法

    最近无法通过SSH连接Linux服务器,访问该服务器上的HTTP服务也出现异常。可以ping,但是telnet端口超时,网站wget超时,访问超时。

    最后排查是内核配置问题

    原来是 net.ipv4.tcp_timestamps 设置了为 1 ,即启用时间戳

    cat /proc/sys/net/ipv4/tcp_timestamps

    这时将其关闭

    修改 /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三次握手的情况

    netstat -s | grep timestamp

    在同一个内网环境下,多人使用同一个公网IP进行上网,这样NAT之后是大大增加了端口的重复使用的概率,Centos7默认开起了TCP/IP建立的timestamp,所有导致TCP三次握手失败。

    cat /proc/sys/net/ipv4/tcp_tw_recycle
    cat /proc/sys/net/ipv4/tcp_timestamps

    net.ipv4.tcp_tw_recycle=0
    net.ipv4.tcp_timestamps=0

  • 相关阅读:
    PHP 包含文件路径问题
    PHP显示今天、今月、上月、今年的起点/终点时间戳
    PHP Web基础教程
    php如何生成随机密码的几种方法
    You don't have permission to access /~whpc on this server.
    linux 网络 PING IP可以通,ping域名ping不通
    CPU : 二级缓存容量
    简单建立个人WEB网站
    MKL程序编译与连接:Lapack篇
    ldd命令原理与使用
  • 原文地址:https://www.cnblogs.com/liucx/p/11936071.html
Copyright © 2011-2022 走看看