我正在使用 ipv6 运行一个小型 Minecraft 服务器。防火墙和路由器中都已转发相关端口。我的朋友能够正确连接到服务器,但前提是使用“javaw”而不是普通的 java 运行文件。如果我想让其他人加入,我在启动服务器时被迫双击 .jar 文件,而不是使用 cmd 或 powershell。这样做的缺点是,当本地网络之外的人在服务器上玩游戏时,我无法访问服务器控制台。总结一下:
javaw -jar server.jar
运行此程序允许人们从本地网络之外进行连接,但我无法使用控制台
java -jar server.jar
运行此程序允许我连接并使用控制台,但其他人无法加入。
另外,我不确定这是否重要,但我正在使用 dynDNS,因为 ipv6 地址很难处理。ipv4 不是一个选项,因为我的 ISP 强迫我使用 DS-Lite 隧道。请注意,当使用 javaw 时,我的朋友可以使用 dyndns-domain 或我的公共 ipv6 进行连接。两者都可以。
日志中没有错误。运行 java 时,控制台中不会显示登录尝试。以管理员权限运行 cmd 窗口没有任何区别。
我尝试使用官方 .jar 和 papermc .jar,但都遇到了这个问题。
我使用这个网站来检查我的端口: https://port.tools/port-checker-ipv6/
当使用 javaw 运行服务器时,其他人可以连接并且端口是开放的。当使用 java 运行服务器时,站点显示“资源暂时不可用”。不对端口执行任何操作也会导致站点显示“资源暂时不可用”。在该端口上运行普通 http 服务器(使用 python)将导致其显示为开放。
我对 Java 不是很了解,老实说,我不知道从哪里开始解决这个问题,所以任何帮助我都会很感激!
答案1
更新:我的防火墙干扰了 java.exe,但没有干扰 javaw。事后看来,这很明显。我只需创建一个新规则即可修复它。