ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Connect timed out排查

Connect timed out排查 问题描述linux 服务器请求报错Connect to http://101.179.156.34:8889是该linux 服务拦截了吗具体是什么原因问题排查1、其他机器请求通只有这台Linux服务器请求不通2、本机防火墙出站规则拦截# 检查 iptables 的 OUTPUT 链出站规则 sudo iptables -L OUTPUT -n -v --line-numbers # 输出 Chain OUTPUT (policy ACCEPT 42M packets, 7182M bytes) num pkts bytes target prot opt in out source destination 1 56705 10M ACCEPT all -- * lo 0.0.0.0/0 0.0.0.0/0 2 280M 113G OUTPUT_direct all -- * * 0.0.0.0/0 0.0.0.0/0OUTPUT链的默认策略是ACCEPTpolicy ACCEPT而且没有任何限制性的规则只有两条放行规则loopback和OUTPUT_direct。这明确排除了本机iptables防火墙拦截出站流量的可能性。3、检查网络连通性排除基础网络问题# 测试能否ping通目标IP注意云服务器可能禁ping ping -c 4 101.179.156.34 #路由 ip route show default default via 192.132.156.1 dev enp3s0 proto dhcp src 192.129.154.84 metric 100 #显示路由正常via 192.132.156.1 ip route get 101.179.156.34 101.179.156.34 via 192.132.156.1 dev enp3s0 src 192.129.154.84 uid 0 cache # 测试路由是否可达 traceroute -n -T -p 8889 101.179.156.34 # 或使用更快的mtr需要安装 mtr -n --tcp -P 8889 101.179.156.34 # 3. 公网连通性测试 ping -c 4 223.5.5.5 #输出结果 PING 223.5.5.5 (223.5.5.5) 56(84) bytes of data. --- 223.5.5.5 ping statistics --- 4 packets transmitted, 0 received, 100% packet loss, time 3157mscurl -v -m 5 http://101.179.156.34:8889 * Trying http://101.179.156.34:8889.. * Connection timed out after 5001 milliseconds * Closing connection 0 curl: (28) Connection timed out after 5001 milliseconds这台Linux服务器完全无法访问公网不仅101.179.156.34不通所有公网IP都不通。问题出在本机到网关或网关到公网这一段。4、本机ping网关是否可达结论可达则服务器的公网出口EIP/NAT有问题或者云平台的上游网关没有正确转发流量#网关是否可达 ping -c 4 192.132.156.1 PING 192.132.156.1 (192.132.156.1) 56(84) bytes of data. 64 bytes from 192.132.156.1: icmp_seq1 ttl64 time0.206 ms 64 bytes from 192.132.156.1: icmp_seq2 ttl64 time0.171 ms 64 bytes from 192.132.156.1: icmp_seq3 ttl64 time0.180 ms 64 bytes from 192.132.156.1: icmp_seq4 ttl64 time0.177 ms --- 192.132.156.1 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3100ms rtt min/avg/max/mdev 0.171/0.183/0.206/0.013 ms5、抓包确认流量走向结论tcpdump还在监听等待数据包# 终端1抓包看ICMP请求和回复 sudo tcpdump -i enp3s0 -n host 223.5.5.5 -v #输出,tcpdump没有任何输出这说明ping的ICMP包根本没有进入网卡驱动系统在更上层就把包丢弃 #网关可达但公网不通的情况问题指向路由策略或策略路由 dropped privs to tcpdump tcpdump: listening on enp3s0, link-type EN10MB (Ethernet), capture size 262144 bytes #检查网关的转发和NAT配置 #查看本机是否开启了IP转发通常是关闭的但确认一下 sysctl net.ipv4.ip_forward #输出ip_forward 0是正常的本机不需要转发 net.ipv4.ip_forward 0 # 查看本机NAT规则确认是否有SNAT/MASQUERADE sudo iptables -t nat -L -n -v6、检查网卡是否启用了反向路径过滤RP Filterrp_filter配置net.ipv4.conf.all.rp_filter 1全局开启严格模式net.ipv4.conf.enp3s0.rp_filter 2网卡开启严格模式rp_filter的工作原理当系统发送一个包时它会检查包的源IP192.129.154.84和目标IP223.5.5.5。系统会反向查询路由表如果要回复223.5.5.5应该走哪个网卡因为你的默认路由走enp3s0源IP也是enp3s0的IP理论上应该一致但rp_filter2是严格模式会进行更严格的检查。关键问题169.254.169.254 via 192.129.154.104这条路由可能干扰了检查逻辑导致系统认为从192.129.154.84发出的包不应该走enp3s0从而在协议栈层面丢弃了包。服务器防火墙放开端口firewall-cmd --add-port8080/tcp --permanentfirewall-cmd --reload# 验证 firewall-cmd --list-all
返回列表