客户端如何使用EC2连接到服务器

How does the client connect to the server with EC2

我刚刚将我的套接字服务器放在 Amazon EC2 上,服务器已启动并且 运行。服务器套接字的端口是 ss = new ServerSocket(30001);。我如何将客户端 class 中的套接字端口设置为什么?它目前在本地主机上。 socket = new Socket("localhost", 30001);亚马逊EC2地址是
ec2-user@ec2-34-253-76-28.eu-west-1.compute.amazonaws.com 我只是用这个替换 localhost 吗?

如果客户端是远程的(与服务器不在同一主机上),那么,是的,使用主机的 DNS 名称或 public IP 地址。

您还必须允许入站连接到托管您的服务器应用程序的 EC2 实例。确保端口 30001 已打开,以便进入您客户端的 public IP 地址(或通过将 0.0.0.0/0 指定为源 CIDR 来进入世界)。您可以通过 Security Groups.

在 AWS 中执行此操作

如果您向全世界公开您的服务器,那么您应该(至少)为您的客户端实施某种形式的身份验证。

如果您的客户端无法连接,需要检查一些事项:

  • 您的服务器套接字是否绑定到 0.0.0.0(或与 EC2 实例关联的 public IP)?
  • 你的服务器应用 运行 吗?
  • netstat 是否显示您的服务器应用侦听端口 30001?
  • 您是否向 EC2 实例添加了安全组并添加了允许从您的客户端 IP(或世界)到端口 30001 的入站流量的入口规则
  • 客户端 运行 是否位于阻止出站端口 30001 的网络(例如公司)