T. *_*nes 7 http https subnet amazon-web-services amazon-vpc
我使用 AWS Docs 中的场景 2 设置了一个 VPC:http : //docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Scenario2.html
我已将弹性 IP 分配给在公共子网中运行的 EC2 实例。SSH 工作正常,我可以访问在其上运行的网站。但是,我不能发出传出的 HTTP 或 HTTPS 请求(我在尝试运行时注意到了这一点yum update
)。
我相信我所有的安全设置都是正确的。我无法通过 Internet 网关发出传出 HTTP/HTTPS 请求吗?我特别要求在创建时不要将公共 IP 分配给此实例,因为我知道我将分配一个让网站 DNS 喜欢的弹性 IP。我在私有子网中为实例设置了 NAT,但我目前只有 RDS 实例在那里运行,所以我没有测试从那里发出的请求。
该 EC2 实例的安全组具有以下出站规则:
该子网的路由表具有以下设置:
网络 ACL 具有以下设置:
默认 DHCP 选项集具有以下设置:
domain-name = ec2.internal
domain-name-servers = AmazonProvidedDNS
Run Code Online (Sandbox Code Playgroud)
默认/etc/resolv.conf
设置为:
search ec2.internal
nameserver 10.0.0.2
Run Code Online (Sandbox Code Playgroud)
VPC 和子网的 CIDR 块如下:
VPC: 10.0.0.0/16
Public Subnet: 10.0.0.0/24
Private DB Subnet in US East 1A: 10.0.1.0/24
Private DB Subnet in US East 1C: 10.0.2.0/24
Run Code Online (Sandbox Code Playgroud)
还在想
为什么提供的 AWS DNS 服务器在这种情况下不起作用?
问题
问题是 DNS 名称没有通过本地 DNS 服务器解析,而不是 Amazon 在最初创建 VPC 时提供的。我发现我可以建立到 IP 地址的传出 HTTP/HTTPS 连接,而无需联系 DNS 服务器来解析。
解决方案
我必须在 Amazon VPC AWS 控制台中创建一个自定义 DHCP 选项集,并将 Google 的公共 DNS IP 设置为domain-name-servers = 8.8.8.8, 8.8.4.4
.
然后我不得不更新/etc/resolv.conf
设置相同的东西:
nameserver 8.8.8.8
nameserver 8.8.4.4
归档时间: |
|
查看次数: |
10487 次 |
最近记录: |