网络连接超时问题可能由多种因素引起,以下是一套系统的排查和解决方法:
# 检查网络连通性
ping -c 4 8.8.8.8 # 测试基础网络连通性
ping -c 4 google.com # 测试DNS解析
# 检查路由
traceroute 8.8.8.8 # 或使用mtr替代
ip route show # 查看路由表
# 检查DNS解析
nslookup google.com
dig google.com
# 查看当前TCP参数
sysctl -a | grep net.ipv4.tcp
# 可能需要调整的参数(临时修改)
sudo sysctl -w net.ipv4.tcp_keepalive_time=300
sudo sysctl -w net.ipv4.tcp_keepalive_intvl=60
sudo sysctl -w net.ipv4.tcp_keepalive_probes=5
# 永久修改需编辑/etc/sysctl.conf
# 查看文件描述符限制
ulimit -n
# 查看当前连接数
ss -s
netstat -ant | wc -l
# 检查iptables/nftables规则
sudo iptables -L -n -v
sudo nft list ruleset
# 检查firewalld状态
sudo firewall-cmd --list-all
sudo tcpdump -i any -w network.pcap host 目标IP地址
# 添加延迟和丢包(测试后记得删除)
sudo tc qdisc add dev eth0 root netem delay 100ms loss 5%
# 删除规则
sudo tc qdisc del dev eth0 root
DNS问题:
MTU问题:
# 测试最佳MTU
ping -M do -s 1472 8.8.8.8 # 1472+28=1500
# 临时修改MTU
sudo ip link set dev eth0 mtu 1400
TCP参数优化:
# 增加TCP连接队列
sudo sysctl -w net.core.somaxconn=4096
sudo sysctl -w net.ipv4.tcp_max_syn_backlog=4096
连接复用:
# 安装网络监控工具
sudo apt install nload iftop bmon # Debian/Ubuntu
sudo yum install nload iftop bmon # RHEL/CentOS
# 使用mtr进行持续路由跟踪
mtr -n 目标地址
如果问题仍然存在,建议: 1. 收集完整的网络日志 2. 在不同时间段进行测试 3. 联系网络服务提供商检查链路质量 4. 考虑使用VPN或专线绕过问题网络段
希望这些方法能帮助您解决网络连接超时问题!