为啥我不能远程登录我的 aws 实例?

Posted

技术标签:

【中文标题】为啥我不能远程登录我的 aws 实例?【英文标题】:Why can't i telnet my aws instance?为什么我不能远程登录我的 aws 实例? 【发布时间】:2017-09-27 17:41:21 【问题描述】:

创建了一个 AWS AMI 实例。 我可以从实例本身 telnet telnet [Pv4 公网 IP] 9200

但不是来自我的电脑。

这是我的安全组

我做错了什么?

【问题讨论】:

您能否从实例外部(本地计算机)远程登录任何其他端口,例如 80 或 22? 【参考方案1】:

您可以检查您的网络 ACL 配置。 您的 PC 和服务器之间似乎有其他防火墙阻止您访问 9200。

【讨论】:

【参考方案2】:

如果您可以通过 telnet 访问端口 80,或者您可以通过 SSH 访问,那么您很可能已经设置了 network ACL。如果您无法通过 telnet 访问端口 80,但您可以通过浏览器访问,这就像本地配置 - 可能是 AV 或防火墙。

EC2 实例为其firewall 使用安全组

另一个缩小问题范围的测试是查看您是否可以从同一可用区中同一子网中的其他实例远程登录。在同一个子网中,您不应受到网络 ACL 的影响。

【讨论】:

【参考方案3】:

你可以看看这个telnet-to a cloud instance from outside

问题的解决方案是“打开服务并制作telnet手册并右键单击它并选择开始”

同时确保实例驻留在公共 VPC 中

【讨论】:

【参考方案4】:

根据您所描述的情况,没有太多其他工作可以使用。您从实例远程登录公共 IP 的能力意味着服务器正在侦听外部接口,并且您的安全组已设置为让端口对所有传入连接开放。

除了忽略实际上没有在列出的安全组下的实例之外,我现在能想到的唯一可能性是实例上的活动防火墙。对于 iptablesufw(它是 iptables 的接口),验证它们是否确实妨碍了它们是微不足道的:

// List iptables access rules
sudo iptables -L -v

// List access rules via ufw
sudo ufw status

【讨论】:

【参考方案5】:

你说:“这是我的 SG”,但是……哪个方向?入境还是出境? 可能只是您的主机无法回复您的 PC。 尝试添加一个规则,添加从端口 32768 到 65535(临时端口)的 出站 TCP,以便 telnet 服务器响应数据包可以传回您的 PC。

否则,就像其他人所说的那样,请查看上一层,VPC 级别(网络 ACL)。

【讨论】:

【参考方案6】:

您的接受器进程可能在127.0.0.1:9000 上运行,这意味着只有本地客户端可以连接。这与您的安全组无关,可能是开放的。

如果在 unix 上运行 lsof -i:9000

如果您在NAME 下看到类似的内容,则用于启动接受器的主机 IP 需要从 127.0.0.1 更改为 0.0.0.0(并通过 SG/FW 保护)。

COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    2777 ubuntu  148u  IPv6  26856      0t0  TCP localhost:afs3-callback (LISTEN)

【讨论】:

问题是9000 而不是1234,截图显示它在0.0.0.0/0 @Quentin 这与 SG 无关,您可以打开 SG,但如果您在实例中打开的服务器:端口不在 0.0.0.0 上,则默认为仅环回访问.【参考方案7】:

默认情况下,Amazon Linux AMI 上未安装 Telnet 服务。

如果你想使用它,你需要自己安装它,例如:Install and Setup Telnet on EC2 Amazon Linux or CentOS。

但是,现在建议使用ssh 而不是telnet,因为它更安全。见:Telnet on wikipedia

【讨论】:

不过,您可以使用 telnet 检查端口是否响应。 telnet google.com 80,例如 正确。我有一个在端口 9200 上运行和侦听的服务。我可以从机器内部远程登录它。但不是来自外部。【参考方案8】:

只是想一想,检查你电脑的防火墙。

【讨论】:

【参考方案9】:

需要确保将您通过 IAM 生成并在启动时附加到 EC2 的 SSH 密钥添加到登录中:

ssh-add -K <yourkeyname>.pem

ssh ubuntu@<yourdns or ip>.com   == or ==  ssh ec2-user@<yourdns or ip>


【讨论】:

问题是 telnet,而不是 SSH。 对,我假设用户没有傻到打开 ACL 进行未加密连接,这样他们就可以通过 telnet 访问。这并没有错,因为您将通过 telnet 会话执行 SSH。该问题并未排除此选项,也没有具体说明“我想通过不安全的连接连接到我的实例”。这里有很多假设。

以上是关于为啥我不能远程登录我的 aws 实例?的主要内容,如果未能解决你的问题,请参考以下文章

为啥无法从阿里云服务器访问任何的redis

centos为啥远程登录需要我在本地登录进去才可以远程

能ping通服务器,但是不能ssh远程登录为啥?

AWS远程登录

为啥电脑输入开机密码后,显示远程桌面服务正忙,开不了机

如何限定使用远程桌面登录我的计算机的IP。