get apt-get 停止使用 ipv6

NaG*_*182 3 ipv6 apt networking

我正在尝试使用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)
Run Code Online (Sandbox Code Playgroud)

这很奇怪,因为那台机器不再有 IPv6 了。以前有过,但是一个路由器被删除了,它给了它,我通过 GUI 从网络配置中删除了 ipv6 关联。

我错过了什么?

oer*_*dnj 5

我想我找到了问题的根源,列出的 IPv6 地址无效。您是否有机会在您的系统中配置 IPv6 代理(http 代理或袜子代理)?因为它看起来像 IPv6 地址和端口(8049)。

您可以http_proxy通过执行以下操作来检查环境变量是否包含某些值:

echo $http_proxy
Run Code Online (Sandbox Code Playgroud)

或检查您的网络设置。

另一个可以定义代理的地方是位于/etc/apt/apt.conf文件或/etc/apt/apt.conf.d/目录中的 APT 配置中。你应该寻找Acquire::http::Proxy "<URI>";设置或写在块中:

Acquire
{
  http
  {
    Proxy "<URI>";
  };
};
Run Code Online (Sandbox Code Playgroud)

还要记住在使用原始 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.
Run Code Online (Sandbox Code Playgroud)

更一般的提示:

您可以使用以下ip命令从命令行检查 IPv6 配置:

地址:

# 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
Run Code Online (Sandbox Code Playgroud)

和路线:

# 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 
Run Code Online (Sandbox Code Playgroud)

无论如何,由于正常的操作方式是先尝试 IPv6 地址然后回退到 IPv4,而这不会发生,您还应该检查您的 APT 配置是否有任何写为 IPv6 地址的主机或仅解析为 IPv6 地址的主机(正如 dobey 已经建议的那样)。您可能还想检查您的 /etc/hosts 文件,您可以在其中手动编写从 .deb 存档主机名到 IPv6-only 地址的映射——您可以通过 ping APT 配置中的主机名来验证这一点(检查/etc/apt/sources.list文件和/etc/apt/sources.list.d/目录中的所有文件)。

还要检查您的代理(系统或只是 APT)配置,因为当您早已忘记此设置时,它可能会意外地蔓延。

  • 也试试`grep 2001:db8:dbb:1:1:1:1:221 -r /etc`。它可能会在某处找到一些东西。 (3认同)