我在私有子网上有一个 EC2,带有 IPv6 仅出口网关。VPC、子网和 EC2 都支持 IPv6,并且 EC2 已分配 IPv6 IP 地址。
我可以 ping 并运行 curl 从互联网上下载内容。
但是,当我运行时apt-get update
超时:
root@ip-10-0-20-20:~# apt-get update
Hit:1 http://security.ubuntu.com/ubuntu bionic-security InRelease
Err:2 http://us-west-2.ec2.archive.ubuntu.com/ubuntu bionic InRelease Could not connect to us-west-2.ec2.archive.ubuntu.com:80 (54.191.70.203), connection timed out
我假设这是因为它有一个私有 IPv4 地址 (10.0.0.0/16) 并尝试使用它进行更新?如何让 apt 在 IPv6 下运行?为什么它不尝试通过 IPv6 地址连接 archive.ubuntu.com?
如果我尝试强制使用 IPv6 No address associated with hostname
,这是否意味着 Ubuntu EC2 包不支持 IPv6?!!
root@ip-10-0-20-20:/var/snap/amazon-ssm-agent/1566# sudo apt-get -o Acquire::ForceIPv6=true update
Err:1 http://us-west-2.ec2.archive.ubuntu.com/ubuntu bionic InRelease
Something wicked happened resolving 'us-west-2.ec2.archive.ubuntu.com:http' (-5 - No address associated with hostname)
答案1
看起来 ec2 包存储库镜像不支持 IPv6。
运行以下命令更新/etc/apt/sources.list
以使用 archive.ubuntu.com 后,它可以在 IPv6 上正常运行。
sudo sed -i 's/us-west-2\.ec2\.//g' /etc/apt/sources.list
您需要将命令更改为您的特定区域(us-east-1 等)