1 telnet 确认网络端口
2 traceroute IP 或 traceroute IP -p 80
判断到哪个位置出现异常 time exceed in-transit
3 抓包
先ping www.qq.com 方便抓包
tcpdump -i ens33 host 10.53.249.80 -nn -v
访问外网异常抓包
tcpdump -i any host www.qq.com -nn -v
当 ICMP 或 IP 头中的 TTL 变为 1,意味着数据包要么到达目标,要么经过下一个路由器后被丢弃。
当数据包在宿主机和容器之间移动时,数据包可能需要经过一个或多个网络设备(网桥等),这可能会导致 TTL 的减少到 0,被网络设备丢弃。
检查是否系统当前环境设定
grep [01] /proc/sys/net/ipv4/conf/*/send_redirects|egrep "default|all"
vim /etc/sysctl.conf , 关闭重定向
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.default.send_redirects=0
防火墙层面设定
iptables -t mangle -A PREROUTING -p icmp --icmp-type echo-reply -m ttl --ttl-eq 1 -j TTL --ttl-set 64
将 IP 头的 ttl 设置为 64
iptables -t mangle -A PREROUTING -m ttl --ttl-eq 1 -j TTL --ttl-set 64