我无法通过某个特定的端口连接到 Amazon Elastic Compute Cloud(Amazon EC2)Windows 实例。如何确定该端口是否打开?
简短描述
以下问题可能会阻止通过特定的端口连接到 EC2 Windows 实例:
- 使用该端口的服务未在该实例上运行。
- Windows 防火墙阻止了到该端口的流量。
- 某个安全组正在阻止流量。
- 网络访问控制列表(NACL)正在阻止流量。
- 路由表中的路由或本地 Windows 路由不正确。
解决方法
要识别连接问题的源头,请执行以下步骤:
1. 验证应用程序运行正常并且在正确的网络端口上侦听。如果应用程序已停止,则启动它。
要接受某个端口上的流量,EC2 Windows 实例必须托管一个在指定端口侦听的应用程序或服务。从托管该服务的 EC2 Windows 实例上运行 netstat 命令,从而显示活动的连接和端口。
2. 在实例上使用 Telnet 或 Test-NetConnection 执行本地端口测试,从而确认该端口是否在本地连接。
使用命令提示符输入以下命令:
telnet <Private IP> <port number>
使用 Windows PowerShell 输入以下命令:
tnc <Private IP> -port <port number>
如果端口测试失败,请检查在该实例上运行的防病毒和安全软件。在防病毒或安全软件上,将使用此端口的应用程序或服务加入允许列表中,然后再次测试。
3. 使用其他实例重复第 2 步。如果可能,选择同一子网中的实例。如果在另一个实例上的端口测试也失败了,问题可能在操作系统 (OS) 或 EC2 实例配置上。
排查操作系统问题
验证 Windows 防火墙以及在实例上运行的任何其他安全软件允许所需的端口。
排查 EC2 实例配置问题
- 验证与该实例关联的安全组允许指定端口上的入站或出站流量。
- 验证网络 ACL的规则允许指定端口上的入站或出站流量。
- 检查路由表,确定是否存在来自源和目标 EC2 Windows 实例的路由。
相关信息
我在 EC2 实例上托管了一个网站。如何允许我的用户在 HTTP(80)或 HTTPS(443)上进行连接?