我将amazon VPC通过向导设置为“仅公共网络”,因此我的所有实例都在公共子网中。
VPC中分配了弹性IP的实例可以毫无困难地连接到互联网。
但没有弹性IP的实例无法连接到任何地方。
存在互联网网关。 aws控制台中的路由表类似于
Destination Target
10.0.0.0/16 local
0.0.0.0/0 igw-nnnnn
和实例内部的路线显示
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 * 255.255.255.0 U 0 0 0 eth0
default 10.0.0.1 0.0.0.0 UG 100 0 0 eth0
我尝试将所有入站和出站流量打开到实例所属的安全组中的0.0.0.0/0。仍然没有成功。
~$ ping google.com
PING google.com (74.125.224.36) 56(84) bytes of data.
^C
--- google.com ping statistics ---
6 packets transmitted, 0 received, 100% packet loss, time 5017ms
我还能做什么?
答案 0 :(得分:54)
似乎从没有弹性IP的实例进入外部的唯一方法是:
所以,仅添加NAT是不够的。应停止实例并将其移动到另一个子网中的另一个IP。
答案 1 :(得分:11)
文档告诉您应该添加NAT Instance
答案 2 :(得分:9)
问。没有EIP的实例如何访问互联网?
没有EIP的实例可以通过两种方式之一访问Internet 没有EIP的实例可以通过NAT实例路由其流量 访问互联网。这些实例使用NAT的EIP 实例来遍历互联网。 NAT实例允许出站 通信,但不启用Internet上的计算机启动 使用NAT连接到私人寻址的计算机,
http://aws.amazon.com/vpc/faqs/
您可以在此处找到有关如何设置nat实例的详细说明:http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html
答案 3 :(得分:4)
或者在公共VPC中创建NAT实例,并向该NAT实例添加静态路由
route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.0.0.5 eth0
其中10.0.0.5是您的nat实例,只需确保包含NAT实例的安全组可以接受您需要访问Internet的框中的内部流量
答案 4 :(得分:2)
您可以在您的VPC中具有EIP的任何实例上执行此操作。我所描述的here指令很少能为您提供帮助。 BTW:不要忘记禁用source / dest。检查
答案 5 :(得分:1)
没有EIP的实例可以通过以下两种方式之一访问Internet:没有EIP的实例可以通过NAT实例路由其流量以访问Internet。这些实例使用NAT实例的EIP遍历Internet。 NAT实例允许进行出站通信,但不能使Internet上的计算机使用NAT发起到私有寻址计算机的连接。
https://docs.aws.amazon.com/vpc/latest/userguide/VPC_NAT_Instance.html
答案 6 :(得分:0)
您是否检查了子网上的网络ACL?
交叉检查安全组的规则。
路线表看起来很好。它应该工作。
答案 7 :(得分:0)
解决此问题需要做的就是为已配置为执行NAT的实例禁用“源/目标检查”。这可以在AWS控制台的“实例操作”下完成。
答案 8 :(得分:0)
这对我有用:
待办事项:
root @ gw:〜#sysctl -q -w net.ipv4.ip_forward = 1 net.ipv4.conf.eth0.send_redirects = 0
root @ gw:〜#iptables -t nat -C POSTROUTING -o eth0 -s 172.20.222.0/24 -j MASQUERADE 2> / dev / null || iptables -t nat -A POSTROUTING -o eth0 -s 172.20.222.0/24 -j MASQUERADE
如果有效,请在/etc/rc.local
中添加这两行答案 9 :(得分:0)
安全组 - >外向强>
* ALL Traffic ALL ALL 0.0.0.0/0 Allow
如果您想连接到google.com等外部服务器,请允许外拨 甚至想要更新 - sudo apt-get update
您可以允许使用AWS前端转出安全组 - >外向
确保为AWS实例选择正确的组
答案 10 :(得分:0)
他们有一个名为NAT网关的相对较新的产品就是这样,在您的酒吧/私人子网的边缘创建一个托管的NAT实例。