java - 客户端如何使用 EC2 连接到服务器
问题描述
我刚刚将我的套接字服务器放在 Amazon EC2 上,服务器已启动并正在运行。服务器套接字的端口是ss = new ServerSocket(30001);
. 我将客户端类中的套接字端口设置为什么?它目前在本地主机上。socket = new Socket("localhost", 30001);
amazon EC2 地址是
ec2-user@ec2-34-253-76-28.eu-west-1.compute.amazonaws.com
Do I just replace localhost with this?
解决方案
如果客户端是远程的(与服务器不在同一主机上),那么可以,使用主机的 DNS 名称或公共 IP 地址。
您还必须允许与托管您的服务器应用程序的 EC2 实例的入站连接。确保端口 30001 对您的客户端公共 IP 地址的入口开放(或通过将 0.0.0.0/0 指示为源 CIDR 向世界开放)。您可以通过Security Groups在 AWS 中执行此操作。
如果您将您的服务器暴露给世界,那么您应该(至少)为您的客户端实施某种形式的身份验证。
如果您的客户端无法连接,请检查几件事:
- 您的服务器套接字是否绑定到 0.0.0.0(或与 EC2 实例关联的公共 IP)?
- 您的服务器应用程序正在运行吗?
- netstat 是否显示您的服务器应用程序正在侦听端口 30001?
- 您是否向 EC2 实例添加了一个安全组并添加了一个入口规则,允许从您的客户端 IP(或世界)到端口 30001 的入站流量
- 客户端是否在阻止出站端口 30001 的网络(例如公司)上运行
推荐阅读
- android-studio - 单击 ImageButton 时如何将图像添加/插入数据库
- php - Laravel 在与 Git 的共享主机中未显示图标
- python-3.x - 使用 Seaborn 的箱线图融合并显示多个类
- python - 我无法通过 USB 连接树莓派和传感器
- python-3.x - 无法执行“gcc”:在 IBM i 7.3 上安装 apache 超集时没有这样的文件或目录
- ssl - 在负载均衡器和 Web 服务器上解密数据的目的是什么?
- python - 键返回“无”而不是 sqlite3dbm 中的值
- r - 选择框关闭后通知 Shiny Server 多选
- ios - SwiftUI DatePicker:有没有办法让他们不能使用键盘来编辑字段?
- ios - 从非协议类型 'UICollectionViewFlowLayout' 继承