You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS EC2 Ubuntu 18.04实例次日无法访问公网问题如何解决

AWS EC2 Ubuntu 18.04 实例公网出站间歇性故障解决方案

故障原因

结合报错信息和故障特征(初始化正常、运行1天左右复现、重做实例可临时恢复),故障大概率来自以下几个层面:

  • 实例系统IPv6优先级高于IPv4:如果你的VPC未开启IPv6支持,apt默认优先尝试IPv6地址连接软件源,长时间运行后IPv4 fallback逻辑失效,导致所有请求超时
  • 系统DNS服务异常:Ubuntu 18.04 默认使用systemd-resolved提供DNS解析服务,长时间运行后可能出现缓存污染、服务挂死的情况,导致域名解析异常无法连接公网资源
  • 系统路由表被篡改:实例内部运行的软件、定时任务或者未清理的恶意程序,可能定时删除公网默认路由,导致公网出口不通
  • 云侧网络规则异常:安全组、子网网络ACL的出站规则被动态修改,限制了80、443、53端口的公网访问权限

永久解决步骤

1. 系统层面配置修复

禁用IPv6(VPC未开IPv6必做)

临时生效执行:

sysctl -w net.ipv6.conf.all.disable_ipv6=1
sysctl -w net.ipv6.conf.default.disable_ipv6=1

永久生效需编辑/etc/sysctl.conf,添加以下两行后执行sysctl -p加载配置:

net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1

执行apt update验证是否恢复,如果正常可跳过后续排查,直接走第二步云侧检查。

修复DNS服务异常

如果禁用IPv6未解决问题,先修改/etc/resolv.conf临时替换公共DNS验证:

nameserver 8.8.8.8
nameserver 1.1.1.1

执行apt update验证恢复后,重置系统DNS服务:

systemctl restart systemd-resolved
systemctl enable systemd-resolved

修复路由表异常

执行ip route检查默认路由是否存在,正常默认路由指向VPC网段的第一个地址(如VPC为172.31.0.0/16,网关为172.31.0.1),如果缺失手动添加:

# 请替换为你实际的VPC网关地址
ip route add default via 172.31.0.1 dev eth0

路由恢复后检查所有定时任务(/etc/crontab、/var/spool/cron/crontabs/目录下所有文件),删除篡改路由的异常任务。

2. 云侧配置检查

  • 登录AWS控制台检查实例绑定的安全组出站规则,确认允许80、443、53端口的出站访问,目标地址为0.0.0.0/0
  • 检查实例所在子网的网络ACL配置,确认出站规则允许80、443、53端口访问,入站规则允许1024-65535端口的返回流量
  • 为实例绑定弹性公网IP(EIP),替代默认的动态公网IP,避免公网IP关联异常导致的网络故障

3. 防止复发配置

可以添加定时任务,每天自动重启DNS服务避免挂死,编辑crontab添加以下规则:

0 0 * * * /usr/bin/systemctl restart systemd-resolved

内容的提问来源于stack exchange,提问作者Simpelax

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 04:45:04