根据您所描述的,实际上没有太多其他可用的信息。从该实例中Telnet到公共IP地址的能力表明服务器正在侦听外部接口,并且您的安全组已经设置为对所有传入连接打开该端口。
除了微不足道地忽略了实际上未将该实例放置在所列出的安全组之下,现在我唯一能想到的可能性是实例上有一个活动的防火墙。在iptables或者(作为iptables接口的)ufw的情况下,验证它们是否确实妨碍了进程非常简单:
// List iptables access rules
sudo iptables -L -v
// List access rules via ufw
sudo ufw status
你可能已经在运行 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只是一个想法,检查一下你的电脑防火墙。
Amazon Linux AMI 默认未安装 Telnet 服务。
如果您想使用它,您需要自己安装,例如:在 EC2 Amazon Linux 或 CentOS 上安装和设置 Telnet。
然而,现在建议使用 ssh
而不是 telnet
,因为它更加安全。请参见:wikipedia 上的 Telnet
telnet google.com 80
。 - ceejayoz需要确保你通过 IAM 生成并在 EC2 实例启动时附加的 SSH 密钥已添加到登录中:
ssh-add -K <yourkeyname>.pem
ssh ubuntu@<yourdns or ip>.com == or == ssh ec2-user@<yourdns or ip>