我尝试在 Ubuntu 服务器上打开端口 19132,但不起作用

我尝试在 Ubuntu 服务器上打开端口 19132,但不起作用

我正在尝试设置一个服务器供我儿子玩Pocketmine。这是一台PHP服务器,它在端口 19132 上运行。我已在路由器上打开此端口,如果我运行另一台服务器(例如 Rails 服务器),那么一切都很好。当我尝试运行时Pocketmine,端口从未打开。我现在服务器正在运行。这是我的netstat输出。

网络统计输出

您可以看到服务器,它是第一行,它是udp port.我看到它没有 的状态LISTEN。这是我的服务器的输出。
服务器输出

可能是什么问题呢?为什么udp服务器不是 的状态LISTEN?它需要处于 的状态吗LISTEN?还有什么问题会导致端口无法打开?我该怎么做才能解决这个问题?

答案1

您在“我的世界”服务器端口上看不到的原因LISTEN是 UDP 协议的工作方式所致。

使用 TCP 协议的服务器“侦听”连接,以便当客户端尝试连接时,它将开始会话并使用 TCP/IP 协议传输数据。如果某个端口上没有任何内容“侦听”TCP 连接,则协议本身可能会生成错误,指出它无法连接到正在侦听某个端口的服务器。

UDP 连接没有会话,因此它们不会“侦听”连接。实际发生的情况是,UDP 数据包被发送到该端口,如果有服务器在该端口上接收数据包,则数据将被处理。否则,如果没有任何东西接收数据包,那么该数据包就会消失在虚空中,并且不会在协议级别上产生错误。

事实上,您可以在 netstat 上看到端口 19132,这意味着在 UDP 世界中,服务器正在“侦听”该端口上的数据,这意味着该端口实际上是开放的。

答案2

想法#1 - UDP 端口转发?

确认在路由器上打开此端口时,您指定了 TCP/UDP 或 UDP。这些端口的类型很重要,在防火墙/路由器上打开端口时经常会被忽略。

想法 #2 - 移植 Pocketmine 领域问题?

我发现这个论坛帖子听起来正是您遇到的问题。它甚至显示了该特定用户用于打开其路由器上的 UDP 端口的屏幕​​截图,但他仍然无法使其正常工作。

相关内容