Anolis OS网络配置正确但上不了网如何排查?

在阿里云 Anolis OS(龙蜥操作系统)环境下,网络配置显示正确但无法上网,通常属于“链路层/网络层连通性”与“应用层/路由策略”之间的断层问题。作为长期深耕云计算底层运维的从业者,我习惯按照从物理到逻辑、从本地到远程、从系统到云平台的层级进行排查。

以下是标准化的排查路径和具体命令:

1. 确认基础连通性(Ping 测试)

首先判断是 DNS 解析问题还是路由/网关问题。

# 测试 DNS 解析是否正常
nslookup www.baidu.com
# 如果返回 IP 地址,说明 DNS 正常;如果超时或 NXDOMAIN,则是 DNS 问题。

# 测试公网 IP 连通性(绕过 DNS)
ping 8.8.8.8
ping 223.5.5.5  # 阿里公共 DNS
  • 情况 A:ping 8.8.8.8 通,但 ping www.baidu.com 不通

    • 原因:DNS 配置错误或解析服务故障。
    • 解决:检查 /etc/resolv.conf,确保 nameserver 指向正确的 DNS(如 223.5.5.5114.114.114.114)。Anolis OS 默认可能使用 NetworkManager 管理,建议通过 nmcli 或编辑该文件修复。
  • 情况 B:ping 8.8.8.8 不通

    • 原因:路由、网关、防火墙或云平台安全组问题。进入下一步。

2. 检查路由表与网关

确认数据包是否能到达默认网关。

ip route show
# 或
route -n
  • 关键点
    • 是否存在一条 default via <网关IP> 的路由?
    • 网关 IP 是否与你的云主机所在子网一致?
    • 如果缺失默认路由,需手动添加:
      ip route add default via <网关IP> dev <网卡名>

3. 检查本地防火墙(iptables/firewalld/nftables)

Anolis OS 默认可能启用 firewalld 或 iptables,虽不影响出站,但某些严格配置可能误杀。

# 查看 firewalld 状态
systemctl status firewalld

# 临时关闭防火墙测试(生产环境谨慎操作)
systemctl stop firewalld
# 然后再次 ping 8.8.8.8

# 如果使用 iptables
iptables -L -n -v

注意:大多数情况下,本地防火墙不会阻止出站 ICMP,但如果启用了严格的 OUTPUT 链规则,可能会影响。


4. 检查云平台安全组(Security Group)—— 最常见原因

在公有云环境中,安全组是第一道防线。即使系统内部网络配置完美,安全组规则未放行也会导致“上不了网”。

  • 入方向(Inbound):虽然你问的是“上网”(出站),但某些云厂商的安全组默认策略是“拒绝所有入站”,而出站默认允许。但如果你的业务需要主动连接外部服务(如 API 调用),需确保:

    • 出方向(Outbound):是否放行了 0.0.0.0/0 的所有端口或特定协议?
    • 部分云厂商:默认出站可能受限,需在控制台检查“出方向规则”。
  • 操作:登录云控制台,找到实例所属的安全组,确认出方向规则是否包含 Allow All 或至少放行 TCP/UDP 80/443。


5. 检查网络接口状态与 MTU 值

有时网卡 UP 了,但实际链路有问题。

ip link show
# 确保网卡状态是 UP 且没有 DOWN

# 检查 MTU 是否过大导致分片失败
ip addr show <网卡名>
  • MTU 问题:如果云服务器使用了 VXLAN 等overlay 网络,MTU 通常为 1500。如果宿主机或物理网络限制更严,可能导致大包丢弃。尝试降低 MTU 测试:
    ip link set dev <网卡名> mtu 1400
    ping -M do -s 1472 8.8.8.8  # 测试能否发送大包

6. 检查 NAPT / SNAT 规则(针对 NAT 网关场景)

如果你的服务器位于私有子网,通过 NAT 网关访问互联网:

  • 确认 ECS/轻量应用服务器是否绑定了弹性公网 IP(EIP)或通过 NAT 网关映射。
  • 检查 NAT 网关实例是否正常运行。
  • 检查路由表是否正确指向 NAT 网关。

7. 检查 DHCP 与静态 IP 冲突

如果是动态获取 IP 的场景:

cat /etc/sysconfig/network-scripts/ifcfg-<网卡名>
# 或查看 NetworkManager 配置
nmcli connection show
  • 确保 BOOTPROTO=dhcpONBOOT=yes
  • 如果改为静态 IP,确保 IP、子网掩码、网关、DNS 完全匹配云控制台提供的信息。

8. 高级排查:tcpdump 抓包

如果以上都正常,仍无法上网,使用 tcpdump 定位数据包流向。

# 监听网卡,捕获 ICMP 请求和响应
tcpdump -i <网卡名> icmp -nn

# 然后执行 ping
ping 8.8.8.8
  • 现象分析
    • 如果看到 ICMP echo request 发出,但没有 ICMP echo reply 回来 → 问题在网络路径或对端不可达(可能是云厂商侧问题或安全组拦截)。
    • 如果连 request 都没发出去 → 本地路由或防火墙丢弃。
    • 如果收到大量 Fragmentation needed → MTU 问题。

9. 检查 SELinux 与 AppArmor

虽然极少影响网络连通性,但在极端定制环境下可能干扰。

getenforce
# 如果是 Enforcing,可临时设为 Permissive 测试
setenforce 0

总结排查清单(快速对照)

步骤 检查项 命令/位置
1 DNS 解析 nslookup www.baidu.com
2 公网 Ping ping 8.8.8.8
3 默认路由 ip route show | grep default
4 本地防火墙 systemctl status firewalld
5 云平台安全组 控制台 → 安全组 → 出方向规则
6 网卡 MTU ip addr show <eth0>
7 抓包诊断 tcpdump -i eth0 icmp

特别提示(国内云环境)

  • Anolis OS 兼容性:Anolis OS 与 CentOS/RHEL 高度兼容,大多数 CentOS 7/8 的网络排错方法均适用。
  • 云厂商差异:阿里云、腾讯云、华为云等在安全组命名和默认策略上略有不同,务必以控制台为准。
  • IPv6:如果仅 IPv4 不通而 IPv6 通,检查 /etc/gai.conf 中的 precedence ::ffff:0:0/96 100 行,确保 IPv4 优先。

通过以上步骤,95% 以上的“配置正确但上不了网”问题都能被定位。核心重点永远是:先排除云平台安全组,再查系统路由,最后看 DNS 和防火墙。

未经允许不得转载:CLOUD云枢 » Anolis OS网络配置正确但上不了网如何排查?