当前位置: 首页 > 知识库问答 >
问题:

无法从外部IP访问Minecraft服务器

程化
2023-03-14

这是一个一般的错误,但我无法找到问题和解决方案。我的本地主机(192.168.0.2)上的Minecraft服务器位于端口25565上。可以通过主机的内部IP(localhost和192.168.0.2)访问它,但无法通过外部IP(101.xxx.xx.xx)访问它。

是的。我重新启动了主机。服务器上还说

[14:32:14][服务器线程/信息][Net.Minecraft.Server.Deciated.DeciatedServer]:在*:25565上启动Minecraft服务器

所以这一定是真的。

我可以通过驻留在设备上的一个简单的node.js服务器来验证端口是否对HTTP开放。这可以通过101.xxx.xx.xx:25565在同一网络上的移动设备上访问,但在主机的浏览器上会超时。此外,它在TCP和UDP上转发。

const { createServer } = require('http')

createServer((req, res) => {
    console.log('Request', req.url)
    res.end('Ok')
}).listen(25565)

此外,我修改了我的防火墙:Windows和防病毒。我关闭了Avast Web Shield,它阻止了外部无法识别的internet连接,并按照这两个教程添加Java防火墙例外和端口例外。我允许我的Telstra Arcadyan调制解调器保留它的防火墙,因为我仍然可以从国外地址访问我的内部网络。

25565/TCP open minecraft minecraft 1.12.2(协议:127,消息:夜之重生!(Optifine 1.12.2),用户:0/6)

此外,相同的命令,但具有不同的目的地(WAN IP),返回相同的消息。

在我的Windows主机设备上,内部IP(192.168.0.2)的结果相同,但外部IP(101.xxx.xx.xx)返回filtered。这主要是为什么我认为有一个防火墙的方式。

我怀疑这一定是因为我试用nmap和Wireshark时出现了入站连接到防火墙的问题。很遗憾,我找不到它。我是不是漏掉了什么?

答案可能就在这里。虽然我不确定。可能是NAT环回问题。

>

  • 服务器是夜之重生v2.76.2

    这篇文章给出了内部到外部再到内部的联系是问题的可能性。

    “LH1000不支持NAT,这意味着即使端口打开,您也不能使用调制解调器的公有地址和设备的端口号从网络上的另一个设备连接到网络上的设备。”

    在进行下面的测试时,我没有同时调用node.js和MC服务器。

    作为附带说明,具有过滤器udp.port==25565 tcp.port==25565的Wireshark有三个不同的输出。

  • 共有1个答案

    彭博厚
    2023-03-14

    我的路由器(Telstra Arcadyan LH1000)不支持NAT环回,网络的外部地址可以通过内部IP访问。它直接将连接重写到另一个网络地址(在我的例子中是它自己),而客户端拒绝了这个地址,因为它不期望重写。

    有两种解决方案:大多数路由器不支持的伪装NAT规则和使用内部IP。此外,升级路由器固件可能会解决问题,但不太可能。在我的情况下,Technicolor调制解调器有完全的NAT回环支持,但我无法得到一个。

    应将此规则添加到路由器(可在192.168.0.1中访问)。

    /ip firewall nat
        add chain=srcnat src-address=192.168.1.0/24 \
        dst-address=192.168.1.2 protocol=tcp dst-port=80 \
        out-interface=LAN action=masquerade
    

    这不是解决问题,而只是回避问题。可以在localhost192.168.0.2上访问Minecraft服务器,但不能在外部IP上访问。

    可以从其他适配器访问网络地址。如果端口转发是到Wi-Fi(不同于以太网适配器),则尝试从以太网连接访问它可能会允许您绕过错误。

    我的路由器不支持从内部地址访问自己的网络。更改规则或避免从其外部IP访问该规则。

     类似资料:
    • 我无法从外部访问我的服务。首先,这里是我的conf yaml文件: nginx-pod.yaml nginx-service.yaml metallb-config.yaml 然后我创建了集群。命令 打印: 一切正常,而且< code > ku bectl describe service/nginx-service 打印: curl命令在主服务器打印。接下来我试图从另一个网络打开,它不起作用,但

    • 我一直在尝试使用githubrowsersample对sunflower应用程序示例进行Restfulise,所以我一直在尝试进行一些复制和粘贴。然而,我完全搞不懂为什么会出现这个错误。此特定代码是完整的复制和粘贴。 我收到的错误是: 错误:DataBoundViewHolder(T)在DataBoundViewHolder中不是公共的;无法从T为类型变量的包外部访问:T扩展了DataBoundV

    • 问题内容: 我已将Elastic Search 2.3.0设置为具有Windows Server 2012 R2的Azure VM中的服务。我可以使用以下方法从服务器内部访问elasticsearch实例 但我无法从服务器外部访问。 我尝试了什么? 仅出于测试目的,我已使VM在虚拟网络之外可用。 在Windows防火墙设置中打开9200端口作为入站流量规则 在Azure门户设置中添加了一个终结点,

    • 我正在尝试在minikube(Windows-10)上部署简单的spring boot REST服务。下面是我的配置 Docker文件 docker image运行良好,我能够运行该应用程序。 部署 服务 我无法使用< code > service-IP:node port/Uri < br > http://127 . 0 . 0 . 1:30008/hello访问restendpoint ht

    • https://github.com/confluentinc/cp-docker-images/blob/5.0.0-post/examples/kafka-cluster/docker-compose.yml 我已经编辑了该文件,并将选项添加到docker组合文件中,以便可以在主机之外访问它们。 我已经运行了以下命令: kafka-1、kafka-2、kafka-3的docker日志(均相同)

    • 我正在尝试从我的一个微服务攻击外部服务。我使用Spring Cloud、Eureka注册表和Spring boot作为主框架。 在我看来,Spring Cloud将Ribbon作为Rest模板的HTTP客户端注入,当我尝试访问这个IP(例如:)时,它会产生以下错误: java.lang.IllegalStateException:在org.springframework.cloud.netflix