【问题标题】:Ec2 instance on AWS apt- get not workingAWS apt-get 上的 Ec2 实例不起作用
【发布时间】:2014-05-22 05:59:46
【问题描述】:

我在 AWS 上使用 Amazon Ubuntu 有 Ec2 实例。

当我尝试下载任何东西时,我无法这样做。

例如:

~# apt-get update

0% [Connecting to ap-southeast-1.ec2.archive.ubuntu.com (103.246.148.161)] [Connecting to security.ubuntu.com (91.189.91.15)

另一个前任将是

~# wget https://s3.amazonaws.com/aws-cli/awscli-bundle.zip

--2014-04-09 07:27:17--  https://s3.amazonaws.com/aws-cli/awscli-bundle.zip
Resolving s3.amazonaws.com... 207.171.189.80
Connecting to s3.amazonaws.com|207.171.189.80|:443...

这将永远存在。

在为 AWS 控制台创建组和用户之前,我能够下载文件。

请在这里提出可能存在的问题。

【问题讨论】:

    标签: ubuntu amazon-web-services amazon-ec2 amazon-s3


    【解决方案1】:

    您的 EC2 实例的安全组未配置为使其访问 Internet。您需要为all traffic0.0.0.0/0 提供Outbound rule。在EC2-Classic 中,这已经到位,因此您不必担心。但是,如果这是在 VPC 中,则需要添加此规则。

    另外,除了上面所说的,你能检查一下是否有任何iptables 规则导致任何问题。

    【讨论】:

    • 还要确保你已经为实例分配了一个公共 ip,我只是浪费了一些时间,直到我意识到问题所在。
    • @NikoNyrh,您不需要为此目的的公共 IP。如果这就是你让它工作的方式,那么你做的事情是完全错误的。
    • 如果没有可公开访问的 ip,我的 EC2 实例甚至无法 ping google.com 或 8.8.8.8,这可能仅在成为公司 VPC 的一部分时才会发生。我可以通过 VPN 使用“内部”IP 进行 SSH 连接,但无法连接到开放的互联网。
    • 如果忘记可以进入现有子网,选择“自动分配公网IP”
    【解决方案2】:

    添加出站规则 HTTP TCP 80 0.0.0.0/0 对我有用。

    【讨论】:

      【解决方案3】:

      还要确保如果您想使用 HTTPS 链接使用 wget 下载任何内容。然后将 HTTPS 的出站规则(端口 443)添加到 0.0.0.0/0

      【讨论】:

        【解决方案4】:

        我想出了如何让 apt-get 再次工作。

        编辑gai.conf:

        sudo vim /etc/gai.conf

        更改 ~54 行以取消注释以下内容:

        优先顺序 ::ffff:0:0/96 100

        写入并退出:

        :wq

        注意

        注意第 50 行,它看起来几乎相同:

        优先级::ffff:0:0/96 10

        这是错误的行。往下走约 4 行,您会找到要取消注释的正确行,因为它以 100 而不是 10 结尾

        【讨论】:

          【解决方案5】:

          我遇到了同样的问题,因为我没有在 vpc 中为私有子网启用 nat 网关。

          如果您的机器在私有子网中,您必须在该子网的路由表中启用 nat 网关。

          启用后是这个样子

          【讨论】:

            【解决方案6】:

            如果问题不在您的安全组中,您可能忘记在 VPC/子网网络 ACL 中添加临时端口。

            在您的路由表中,允许入站规则 TCP 来自32768 - 65535 的流量在0.0.0.0/0

            如果您在出站仅启用了 80、443,则返回流量仍会通过上面列出的临时端口。只启用80、443出站不会让你的服务器完成一个curl google.com

            上面提到的临时端口列表是针对ubuntu的, 您可以通过运行检查您的 sysctl net.ipv4.ip_local_port_range

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-06-21
              • 1970-01-01
              • 1970-01-01
              • 2013-11-24
              • 1970-01-01
              相关资源
              最近更新 更多