我用 Java 编写了一个聊天客户端和服务器。它可以工作,但据我所知,只能在本地运行。目标是让它在网络上运行。
我尝试了很多东西,如果需要的话可以详细说明。我对此完全陌生,所以我想我在这里遭受了很多“不知道我不知道什么”的困扰。
这是我目前所做的:
- 在我的路由器上启用端口转发。
- 确保静态本地 IP 地址。
- 在我的网络上添加了该服务,并使用了适当的端口。
- 添加了一条允许它通过 Windows 防火墙的入站规则,虽然我不确定是否有必要,但为了覆盖我的基础,我还添加了一条出站规则来匹配。
- 已利用http://www.canyouseeme.org/以确保我的服务可达。
在 SO 上有一个类似的问题,但它是针对 Web 服务器的,处理JavaScript的。
答案1
您需要确保从互联网计算机到桌面的路由路径完整。要实现这一点,您需要删除您想要公开的端口的所有端口阻止(防火墙),并确保流量从您的公共 IP 地址路由到服务器的 IP(如果服务器是私有的)。
这通常都是在您的家庭路由器/wifi/调制解调器盒上完成的,它为您的家庭网络执行网络地址转换(NAT)服务(当您的计算机与互联网通信时假装是您的内部计算机)
因此,您需要:
- 在您的路由器中,配置防火墙以允许您的服务器使用的特定端口(例如端口 4321)。
- 在您的路由器中,将端口 4321 配置为实际服务器的内部 IP 地址,也配置为端口 4321。
- 在您的服务器上,确保您的防火墙允许连接到端口 4321
在您的网络内部测试您的聊天客户端是否正常工作(不涉及 NAT)。然后,通过连接到您转发的端口上的公共 IP 地址来测试您的远程客户端是否正常工作。