我有两个亚马逊 AWS 账户,一个是托管公共网络服务器的付费账户(下面称为“付费”),另一个是免费等级账户(下面称为“免费”)。每个都有几个在自己的 VPC 中运行 Amazon Linux 的 EC2 实例,每个实例都有一个子网,它们之间没有重叠。我希望能够在帐户之间轻松传输文件,包括从免费访问付费的 git 裸存储库。所以我阅读了 VPC 对等连接,我相信我正确地遵循了指南,在 VPC 之间创建和接受对等连接,然后修改安全组,并在每个 VPC 中设置路由以访问另一个 VPC 中的子网。
这是付费帐户的基本设置:
以下是免费帐户的相同信息:
我发现,从付费账户中的一个实例,我可以成功 ping 免费账户中的一个实例:
$ ip -f inet addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP qlen 1000
inet 10.0.0.12/24 brd 10.0.0.255 scope global eth0
valid_lft forever preferred_lft forever
$ ping 172.31.30.44
PING 172.31.30.44 (172.31.30.44) 56(84) bytes of data.
64 bytes from 172.31.30.44: icmp_seq=1 ttl=255 time=0.722 ms
但我无法从免费帐户 ping 到付费帐户:
$ ip -f inet addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP group default qlen 1000
inet 172.31.30.44/20 brd 172.31.31.255 scope global dynamic eth0
valid_lft 3259sec preferred_lft 3259sec
$ ping 10.0.0.12
PING 10.0.0.12 (10.0.0.12) 56(84) bytes of data.
^C
--- 10.0.0.12 ping statistics ---
14 packets transmitted, 0 received, 100% packet loss, time 13308ms
谁能解释为什么此配置不允许我从免费帐户中的主机 ping付费帐户中的主机?
我是否需要提供更多信息(如果需要,是什么)?
在对这个关于付费账户 VPC上的网络 ACL 的无关问题的回答的评论中,我提到我已经用 linux iptables 命令替换了 AWS 网络 ACL 的使用。当我十年前设置它时,我没想到会想要与我自己的子网之外的任何私有地址进行通信。所以我从 172.16.0.0/12 中删除了入站连接。所以这就是为什么我能够免费获得付费,但不能反过来。删除该 iptables 块可以解决问题。
多么尴尬!