AWS EC2实例sudo apt update执行失败,请求技术排查建议
排查AWS EC2 Ubuntu实例
apt update连接错误的思路 问题现象
执行sudo apt update时返回以下错误:
Err:2 http://ca-central-1.ec2.archive.ubuntu.com/ubuntu focal InRelease
Could not connect to source.ca.lan:3142 (172.31.14.73). - connect (113: No route to host)
已知条件:实例此前更新正常,可正常SSH登录并ping通8.8.8.8,安全组允许所有出站流量,位于配置互联网网关的公有子网中。
排查步骤
检查APT代理配置
3142是apt-cacher-ng的默认端口,说明系统大概率配置了APT代理。执行以下命令查看代理相关配置:cat /etc/apt/apt.conf.d/*proxy* cat /etc/apt/apt.conf如果发现类似
Acquire::http::Proxy "http://source.ca.lan:3142";的配置,要么确认代理服务器状态,要么暂时注释该配置后重试更新。验证代理服务器的可达性
在EC2实例上直接测试与代理服务器的连通性:- 测试ICMP连通:
ping 172.31.14.73 - 测试端口连通:
telnet 172.31.14.73 3142或nc -zv 172.31.14.73 3142
如果连通失败,说明代理服务器可能已宕机、被终止,或者VPC内的安全组/路由限制了实例到代理的流量(需检查代理所在实例的安全组是否允许当前EC2实例访问3142端口)。
- 测试ICMP连通:
检查VPC路由表与网络ACL
- 查看实例所在子网的路由表,确认到172.31.14.73的内网路由是否正常(内网IP默认直连,除非有自定义路由规则干扰)。
- 检查子网的网络ACL,确保允许出站到172.31.14.73的3142端口,以及对应的入站响应流量。
临时绕过代理直接更新
如果代理问题暂时无法解决,可临时绕过代理执行更新:sudo apt update -o Acquire::http::Proxy="""或者替换APT源为官方源:
# 备份原有源列表 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak # 写入官方源 sudo bash -c 'echo "deb http://archive.ubuntu.com/ubuntu focal main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu focal-updates main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse deb http://security.ubuntu.com/ubuntu focal-security main restricted universe multiverse" > /etc/apt/sources.list' # 执行更新 sudo apt update检查本地网络规则
查看实例是否存在防火墙规则限制流量:sudo iptables -L -n sudo ufw status同时检查系统路由表,确认到目标子网的路由是否存在:
ip route
内容的提问来源于stack exchange,提问作者fwirtanen
相关产品推荐
相关产品推荐

