![获取 apt-get 停止使用 ipv6](https://linux22.com/image/833164/%E8%8E%B7%E5%8F%96%20apt-get%20%E5%81%9C%E6%AD%A2%E4%BD%BF%E7%94%A8%20ipv6.png)
我正在尝试使用apt-get update
或任何其他apt-get
命令,但出现了此错误:
Hiba történt „2001:db8:dbb:1:1:1:1:221:8049” feloldásakor
(-9 - A címcsalád a gépnévhez nem támogatott)
(google translate)
There was an error "2001: db8: DBB: 1:1:1:1:221:8049" resolving
(-9 - Address family for hostname not supported)
这很奇怪,因为该机器不再有 Ipv6。之前有,但是移除了路由器,将 Ipv6 分配给了该机器,然后我通过 GUI 从网络配置中删除了 ipv6 关联。
我错过了什么?
答案1
我想我找到了问题的根源,列出的 IPv6 地址无效。您是否有可能在系统中配置了 IPv6 代理(http 代理或 socks 代理)?因为它看起来像 IPv6 地址和端口 (8049)。
您可以通过执行以下操作来检查环境变量http_proxy
是否包含某些值:
echo $http_proxy
或检查您的网络设置。
另一个可以定义代理的地方是 APT 配置,它位于/etc/apt/apt.conf
文件或/etc/apt/apt.conf.d/
目录中。您应该查找Acquire::http::Proxy "<URI>";
块中的设置或写入内容:
Acquire
{
http
{
Proxy "<URI>";
};
};
另外,使用原始 IPv6 地址和 URI 时,请记住将 IPv6 地址括在括号中,例如 http://[2001:db8:dbb:1:1:1:1:221]:8049/
这可能看起来类似:
# http_proxy=2001:db8:dbb:1:1:1:1:221:8049 apt-get update
Err http://ftp.cz.debian.org wheezy InRelease
Err http://security.debian.org wheezy/updates InRelease
Err http://ftp.cz.debian.org wheezy Release.gpg
Could not resolve 'db8:dbb:1:1:1:1:221'
Err http://security.debian.org wheezy/updates Release.gpg
Could not resolve 'db8:dbb:1:1:1:1:221'
Reading package lists... Done
W: Failed to fetch http://ftp.cz.debian.org/debian/dists/wheezy/InRelease
W: Failed to fetch http://security.debian.org/dists/wheezy/updates/InRelease
W: Failed to fetch http://ftp.cz.debian.org/debian/dists/wheezy/Release.gpg Could not resolve 'db8:dbb:1:1:1:1:221'
W: Failed to fetch http://security.debian.org/dists/wheezy/updates/Release.gpg Could not resolve 'db8:dbb:1:1:1:1:221'
W: Some index files failed to download. They have been ignored, or old ones used instead.
更一般的提示:
您可以使用以下命令从命令行检查 IPv6 配置ip
:
地址:
# ip -6 a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 2a01:5f0:1006::59bb:820d/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fe6a:a954/64 scope link
valid_lft forever preferred_lft forever
和路线:
# ip -6 r s
2a01:5f0:1006::/64 dev eth0 proto kernel metric 256
fe80::/64 dev eth0 proto kernel metric 256
default via 2a01:5f0:1006::1 dev eth0 metric 1024
无论如何,由于正常的操作模式是先尝试 IPv6 地址,然后回退到 IPv4,而这种情况并没有发生,您还应该检查 APT 配置中是否有任何主机写为 IPv6 地址或仅解析为 IPv6 地址(正如 dobey 所建议的那样)。您可能还想检查您的 /etc/hosts 文件,您可能已经手动编写了从 .deb 存档主机名到仅 IPv6 地址的映射 - 您可以通过从 APT 配置中 ping 主机名来验证这一点(检查/etc/apt/sources.list
文件和/etc/apt/sources.list.d/
目录中的所有文件)。
还要检查您的代理(系统或仅 APT)配置,因为当您早已忘记此设置时,它可能会意外地出现。
答案2
尝试使用 ipv4 :
sudo apt-get -o Acquire::ForceIPv4=true update
如果您想使其持久,只需在您的 bash 文件中添加“apt-get”的别名。