Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS VPC-无法从专用子网中的堡垒主机SSH到不同子网中同一VPC中的EC2实例_Amazon Web Services_Ssh_Routing_Amazon Vpc_Subnet - Fatal编程技术网

Amazon web services AWS VPC-无法从专用子网中的堡垒主机SSH到不同子网中同一VPC中的EC2实例

Amazon web services AWS VPC-无法从专用子网中的堡垒主机SSH到不同子网中同一VPC中的EC2实例,amazon-web-services,ssh,routing,amazon-vpc,subnet,Amazon Web Services,Ssh,Routing,Amazon Vpc,Subnet,我希望有人能帮我解决以下问题。我试着四处寻找,但找不到解决问题的好办法 我有VPC 10.0.0.0/16 在专有网络中,我将其分为私有子网和公共子网。我每个AZ有一个专用子网和一个公用子网 因此,我的子网如下所示: AZ us-east-2a 10.0.1.0/24-私人 10.0.2.0/24-公共 AZ美国东部-2b 10.0.3.0/24-私人 10.0.4.0/24-公共 AZ美国东部-2c 10.0.5.0/24-私人 10.0.6.0/24-公共 所有这些都是为了冗余。但是现在我正

我希望有人能帮我解决以下问题。我试着四处寻找,但找不到解决问题的好办法

我有VPC 10.0.0.0/16

在专有网络中,我将其分为私有子网和公共子网。我每个AZ有一个专用子网和一个公用子网

因此,我的子网如下所示: AZ us-east-2a 10.0.1.0/24-私人 10.0.2.0/24-公共

AZ美国东部-2b 10.0.3.0/24-私人 10.0.4.0/24-公共

AZ美国东部-2c 10.0.5.0/24-私人 10.0.6.0/24-公共

所有这些都是为了冗余。但是现在我正在做一个测试,在us-east-2a中有一个堡垒,我希望它能够通过ssh连接到该VPC中的所有其他ec2实例,但是这并没有发生,这就是我面临的问题

我的堡垒主机位于我创建的公共子网中的us-east-2a中。我能够从我的本地机器成功地ssh到它

如果我试图通过ssh将ec2实例与我的堡垒主机连接到同一子网中,那么它可以工作,但对于不同子网中的任何其他主机,它都不能工作,即使这都在一个VPC内

出于测试目的,我正试图从bastion ssh进入的ec2实例的安全组是完全开放的(一旦我发现问题,我将锁定它):

基本上,我允许所有tcp流量从世界上的任何端口

就我的NACL而言,我的公共网络有一个NACL(并将我的公共子网与之关联),而我的私有网络有一个NACL(并将我的私有子网与之关联)

来自my public的传出流量允许所有tcp流量为0-65535

此时的入站私有网络允许所有流量和相同的出站流量。再次强调,我会加强这一点,但在解决这个问题时,我放宽了这些规则,以确保没有问题

我的公用和专用子网分别附有公用和专用路由表

公共路由表有一个到my IG的目标路由0.0.0.0/0,还有一个10.0.0.0/16本地路由,该路由应允许访问子网中的任何主机

专用路由表具有到本地接口的10.0.0.0/16路由,以及到NAT网关的所有其他流量(0.0.0.0/0)

It just hangs here and eventually there is a timeout.
[root@ip-10-0-2-177 ec2-user]# ssh ec2-user@10.0.1.242
ssh: connect to host 10.0.1.242 port 22: Connection timed out
[root@ip-10-0-2-177 ec2-user]# ssh -vvvv ec2-user@10.0.1.242
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 58: Applying options for *
debug2: resolving "10.0.1.242" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to 10.0.1.242 [10.0.1.242] port 22.
debug1: connect to address 10.0.1.242 port 22: Connection timed out
ssh: connect to host 10.0.1.242 port 22: Connection timed out

I can ping this server though:
[root@ip-10-0-2-177 ec2-user]# ping 10.0.1.242
PING 10.0.1.242 (10.0.1.242) 56(84) bytes of data.
64 bytes from 10.0.1.242: icmp_seq=1 ttl=255 time=0.403 ms
64 bytes from 10.0.1.242: icmp_seq=2 ttl=255 time=0.461 ms
64 bytes from 10.0.1.242: icmp_seq=3 ttl=255 time=0.479 ms
64 bytes from 10.0.1.242: icmp_seq=4 ttl=255 time=0.439 ms
^C
--- 10.0.1.242 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3061ms
rtt min/avg/max/mdev = 0.403/0.445/0.479/0.035 ms

任何帮助都将不胜感激,因为我已经查看了我所能想到的一切,我不确定问题在哪里。

您可以ping实例,但不能SSH到它,这意味着您的路由表和常规网络设置正确

剩下的是:

  • 安全组
  • 氯化钠
因为您的安全组是“完全开放的”,所以它不会区分不同类型的流量(例如SSH和Ping)。因此,这不太可能是问题所在

一般来说,除非您有非常特殊的需要(例如创建DMZ),否则应将NACL保留为默认值“allow all”(允许所有)

此外,NACL仅适用于进出子网的流量。鉴于同一子网中的目标实例正在工作,但其他子网中的实例不工作,它再次指出问题的原因是您的NACL


建议:将NACL恢复为正常默认设置。

我会将您的NACL更改恢复为默认设置,并再次检查您的私有EC2实例是否具有安全组入口规则,允许tcp/22从堡垒所在的安全组入站。谢谢!看起来是我的公共网络规则太严格了。谢谢!你是对的,是NACL。事实证明,我的公共子网的入站规则是限制性的,因为它们不允许临时端口打开,所以似乎这导致了连接问题。