我有两个运行 Windows Server 2003 和 IIS 6.0 的 Amazon EC2 实例。这两个实例都创建在同一区域,并具有相同的安全组。我为所有端口和连接方法启用了 icmp,并且能够成功地在两个实例之间进行 ping 操作。但是,当我尝试使用以下命令访问一个 EC2 实例与另一个 EC2 实例的共享位置时:
\\<elastic-ip>
或者
\\<internal-private-ip>
我无法看到共享位置,并收到一条错误消息:
没有网络提供商接受给定的网络路径
我能够使用 tracert 命令从两个 EC2 实例进行跟踪。
请告诉我访问两个 EC2 实例之间共享位置的方法。
谢谢
PS:我知道也可以使用 S3 来实现,但由于其他原因,我不希望使用它。
答案1
我找到了我自己问题的答案,它如下:
理论:
可以在以下网址找到此 Microsoft 知识库文章介绍了如何启用 Microsoft 文件共享 SMB。以下事项与之相关:
以下端口与文件共享和服务器消息块 (SMB) 通信相关:
- Microsoft 文件共享 SMB:用户数据报协议 (UDP) 端口 135 至 139 和传输控制协议 (TCP) 端口 135 至 139。
- 没有网络基本输入/输出系统 (NetBIOS) 的直接托管 SMB 流量:端口 445(TCP 和 UPD)。
怎么做:
在与您的 EC2 实例关联的安全组中启用上述端口。完成此操作后,您的安全组权限应如下图所示:
在两个实例的 Windows 防火墙中启用端口。详细方法可参见这里. 对于 Windows Server,跳过步骤 7。
这解决了这个问题,但是可能需要重新启动实例。
答案2
以下是我检查的顺序:
- 网络适配器上已启用文件和打印机共享
- 所有关键服务均正在运行
- 两个防火墙上的所有必要端口均已打开
- 检查应用程序和系统事件日志以获取其他线索
- 确保网络适配器上没有设置 TCP 过滤。
答案3
如果您使用的是 Sonicwall,请确保您的 VPN 接口上启用了 Netbios。否则,您将看到共享,但无法访问它,等等。
答案4
我刚刚在安全组中为所有用户(例如 0.0.0.0/0 或我的 CIDR 块)启用了 TCP 和 UDP 的端口 135-139 以及 TCP 和 UDP 的端口 445,这有效。然后我可以通过 IP 访问共享驱动器,但不能通过实例 ID 或 Windows 计算机名称访问。在 Windows 防火墙中启用或禁用上述端口没有影响。