mc开服的网络知识

一般国内家用带宽是没有公网ipv4的,这意味着他人无法与你的服务器直接连接,下面是一些解决手段

一、申请公网ipv4

直接打电话给运营商,要求给你公网ip,这个成功率不太高,并且就算给了你公网ip,也是动态的,需要DDNS绑定一下,具体操作不再赘述

如果你使用这种方法,玩家进入服务器时,地址填写:<你DDNS绑定的域名>:<你的mc服务端端口,如果是25565则可以不填>

 


二、使用ipv6

ipv6默认就是公网ip,它诞生之初就是为了解决ipv4枯竭的问题(虽然我听说外国ipv4并不缺乏,可能只有国内缺吧),号称可以给每粒沙子一个ip,可是由于NAT太好使了,ipv4到ipv6的更换进程非常缓慢,但是最近这几年ipv6也逐渐普及了,你可以访问IPv6 测试来查看你当前的网络环境是否支持ipv6,如果支持的话,你可以直接让朋友用你的ipv6地址访问你的服务器(当然,对方也需要通过ipv6测试,如果不支持ipv6也是不行的)

如果你使用这种方法,玩家进入服务器时,地址填写:[<你的ipv6地址>]:<你的mc服务端端口> (注意这个方括号不能省略)

 


三、使用frp

如果你拥有一台国内(最好吧,这样延迟比较低)的云服务器,你可以借用这个云服务器的公网ipv4地址,帮你做代理

你需要去github上面下载frp的发行版,地址:fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.

根据你的设备架构选择x86、x64或者arm

下载的软件包含frpsfrpc,其中frps需要运行在本身就有公网ip的设备A上(假设ip是x.x.x.x),frpc需要运行在没有公网ip但运行着服务的设备B上,通过frp,你可以将设备A的某个特定端口a映射到设备B的某个端口b,这样每当有客户端访问x.x.x.x:a这个位置,设备A上的frps进程会将流量转发给设备B的b端口上,同时把设备B返回的流量回传给客户端

也就是说,frps运行在你的云服务器上,frpc运行在你的mc服务器上

至于frp的配置文件,更新的速度太快以至于每篇教程都可能给出不同的格式,你最好还是直接去frp官方文档文档 | frp查看目前的配置方法

另外,如果没有云服务器或是vps的话,你也可以使用一些第三方的frp,例如sakuraFRP,OpenFrp,mefrp,等等,去搜索引擎上一搜一大把

如果你使用这种方法,玩家进入服务器时,地址填写:<你的frps运行的服务器的地址>:<你在frp中配置的,frps对外暴露的端口> (注意这个端口不是你mc服务器里面的端口)

 

 


四、使用组网工具

frp是需要一个中心的frps进行全部流量转发的,但是如果你使用easytierzerotier等异地组网工具,只是在建立连接的时候需要与中心服务器通讯,在建立之后就可以直接p2p通讯,这样,中心服务器的延迟什么的就不重要了

这些组网工具和内网穿透不同,内网穿透是将某个特定服务通过穿透的服务器暴露到外界,而异地组网则是把一些机器包含到一个虚拟的局域网内,以使它们能够完全自由地互相访问

easytier的使用最简单,只需要在你的mc服务器和要玩游戏的所有设备上安装客户端,加入同一个网络即可,easytier有免费的公共服务器可以进行p2p连接创建,你什么都不需要做

不过如果你嫌公共服务器不稳定,也可以用自己的公网服务器,在上面装easytier即可,也是非常简单

zerotier需要注册账号,加入网络需要网络创建者在网页端通过,稍微有点麻烦,不过我个人感觉是比easytier稍微稳定一些

还有一些其他的组网工具,例如Tailscale,因为我没用过,所以就不讲了

如果你使用这种方法,玩家进入服务器时,地址填写:<你的mc服务器在虚拟局域网中的虚拟ip>:<你的mc服务端端口> 

posted @ 2026-07-04 10:31  rachtakovsky  阅读(42)  评论(0)    收藏  举报


个人主页 | github | 洛谷 | 邮箱