Ubuntu 22.04以太网环境下Ping正常但网络连接超时(apt更新失败)
看起来你遇到了一个挺棘手的网络矛盾——能正常ping通服务器,但就是没法通过HTTP访问资源,连最基础的apt更新都失败了。结合你给出的报错信息(连接IPv6地址超时)和已做的尝试,我给你几个针对性的排查和解决思路:
先试试禁用IPv6,优先用IPv4连接
你的报错里明确提到了无法连接security.ubuntu.com的IPv6地址2001:67c:1562::18,很可能是系统优先使用IPv6但你的网络环境并不支持IPv6连通。- 临时禁用IPv6:执行以下命令
之后再运行sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1 sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1sudo apt-get update测试是否正常。 - 如果临时生效,想永久禁用的话:编辑
/etc/sysctl.conf文件,添加以下两行内容
保存后执行net.ipv6.conf.all.disable_ipv6=1 net.ipv6.conf.default.disable_ipv6=1sudo sysctl -p让配置生效。
- 临时禁用IPv6:执行以下命令
强制apt使用IPv4更新
不用全局禁用IPv6,也可以单独让apt强制走IPv4:sudo apt-get -o Acquire::ForceIPv4=true update检查并更换apt源
可能是官方源的IPv6节点不通,换成国内镜像源试试:
编辑/etc/apt/sources.list文件,把所有security.ubuntu.com替换成国内镜像地址(比如mirrors.aliyun.com),保存后再执行sudo apt-get update。排查代理配置问题
有时候无意中设置的HTTP代理会导致这类问题:- 先检查当前终端的代理环境变量:
如果输出了代理地址但你并未配置过,执行echo $http_proxy echo $https_proxyunset http_proxy和unset https_proxy临时取消,再测试apt更新。 - 检查系统级apt代理:查看
/etc/apt/apt.conf.d/目录下是否有带Proxy字样的文件(比如90proxy),如果有,注释掉里面的代理配置再试。
- 先检查当前终端的代理环境变量:
检查防火墙规则
Ubuntu默认用ufw防火墙,可能是规则阻止了80端口的出站请求:- 查看防火墙状态:
sudo ufw status - 如果防火墙处于active状态,不确定规则的话,可以临时禁用防火墙测试:
sudo ufw disable,如果此时apt能正常更新,再重新配置允许80端口出站的规则。
- 查看防火墙状态:
替代ifconfig查看网卡信息
你提到ifconfig没装没法用,其实Ubuntu 22.04默认自带ip命令,执行ip addr就能查看所有网卡的IP、子网等配置,完全可以替代ifconfig的功能。
如果以上方法都试过还是没解决,可以提供ip addr的输出结果、ping security.ubuntu.com -4的测试结果,这样能帮你进一步定位问题。
备注:内容来源于stack exchange,提问作者Anonymous Magic

