Minexa说明书
基础网络与联机

联机基础:IP、端口、NAT 与协议

为什么同一 Wi-Fi 能连、换个网络就不行?把 IP、端口、NAT、TCP/UDP 四件事一次讲清。

朋友在游戏里点了「加入服务器」,进度条转了两秒,跳出一行 Connection timed out。你切回手机看,服务端明明显示运行中,终端也早就打印了 Done。这时候大部分教程会告诉你「去查端口映射」——可你连端口是什么都还没弄清楚。

联机这件事,说到底是把一句话送到对的地方:朋友的客户端,要找到你手机上那个正在跑的 Minecraft 服务端。中间有四道关:地址对不对(IP)、门牌号对不对(端口)、门禁让不让进(NAT 与防火墙)、说的是不是同一种语言(TCP 还是 UDP)。四道关里任何一道错了,玩家看到的都是「进不去」,但修法完全不同。

这一页不讲点哪个按钮,只把这四道关讲清楚。看完你至少能做到一件事:看到报错能判断是哪一层出了问题,而不是把服务端重装三遍。

本页要点
  • 这一页解决什么问题:把 IP、端口、NAT、协议四个词变成你能用来判断的依据。

  • 服务器地址只有一种写法:IP:端口,例如 192.168.1.23:25565。

  • Java 版 TCP 25565,基岩版 UDP 19132,两种协议不通用。

  • 外网连不进来的第一嫌疑是 CGNAT,不是防火墙。

  • 只想让朋友今晚就进来:先看 我该用哪种联机方式。

从「朋友点加入」到「进入世界」,中间发生了什么#

朋友按下「加入服务器」之后,客户端其实只做四件事。你以后排错,就是按这四件事的顺序往回找。

  1. 把名字翻译成地址。如果他填的是 mc.example.com 这种域名,客户端先查 DNS(互联网的通讯录,负责把好记的域名翻译成数字 IP)。

  2. 按地址去敲门。地址里除了 IP,还要有端口(同一台设备上不同程序的编号,相当于同一栋楼里的房间号)。

  3. 穿过门禁。数据先到你家路由器,路由器再决定转给哪台设备。这一步由 NAT 管,也是九成「外网连不上」的真正原因。

  4. 对上语言。Java 版说 TCP,基岩版说 UDP。语言不对,前三步全对也进不去。

把四道关和报错对上,排查就有一半把握了:

卡在哪一关客户端通常显示先去哪一页
地址解析Unknown host、无法解析主机名换纯 IP 试,见 联机排错
端口Connection refused(连接被拒绝)局域网联机
NAT / 公网Connection timed out(连接超时)公网 IP 与端口映射
协议 / 版本Incompatible version客户端报错

Connection refused 和 Connection timed out 是两个完全不同的信号:前者说明地址到了、门开着、但里面没人应答;后者说明数据根本没走到门口。分不清这两个词,就容易在错误的方向上耗一晚上。

IP:门牌号有公网和局域网两种#

IP 地址是设备在网络里的编号。新手最容易混的是:同一台手机,同时有不止一个 IP。

名字长什么样谁能用它找到你
局域网 IP(私网)192.168.1.23、10.0.0.5只有同一个路由器下的设备
公网 IP123.45.67.89整个互联网(前提是没有防火墙拦着)
回环地址127.0.0.1只有这台设备自己

127.0.0.1 是一个特殊地址,意思是「我自己」。服务端监听在这个地址上时,只有本机的程序能连,外人一律连不上。Minexa 网络页的「本地连接地址」卡会同时列出 127.0.0.1:端口 和「局域网 IP」,前者是给你在同一台手机上自测用的,后者才是要发给朋友的。

局域网 IP 是谁发的?是路由器里的 DHCP(自动给连进来的设备分配地址的服务)。所以它不是永久的:手机重连 Wi-Fi、路由器重启、周围设备变多,都可能换一个。做端口映射之前,先在路由器里按 MAC 地址给手机固定一个地址,否则过几天映射就指到别的设备上了。

中文界面里 IP 的几种叫法

「本机地址」通常指 127.0.0.1;「内网 IP / 局域网 IP / LAN IP」指 192.168.x.x 这类;「外网 IP / 公网 IP / WAN IP」指互联网上那个地址。路由器管理页里 WAN 就是外网那一侧,LAN 就是家里这一侧。

端口:同一台手机上的不同房间#

一台设备只有一个 IP,但可以同时跑很多服务。端口就是区分服务的号码,范围 1~65535。记住三个就够用:

  • Java 版默认 25565/TCP

  • 基岩版默认 19132/UDP

  • 网页 80/443、SSH 22、FTP 21、RCON 25575

所以完整的服务器地址一定要写成 IP:端口,例如 192.168.1.23:25565。只给 IP 不给端口,客户端会按默认值去敲 25565 的门;如果你的服务端改过端口,它就敲错门了。

端口在 server.properties 里由 server-port 决定,也可以从概览的「服务器地址」卡片直接看到当前值。改完端口必须重启服务端才生效,改文件不重启,地址卡显示的还是旧端口。

端口不是开得越多越好

每个对外开放的端口都是一个可以被扫描、被尝试的入口。只开服务端真正用的那一个。RCON(默认 25575)、FTP(2121)、MCP(8931)都不该暴露到公网——它们不是给玩家用的,暴露出去只是给别人多一个尝试的机会。

NAT 与 CGNAT:为什么外网找不到你的手机#

你家所有设备共用宽带那一个公网 IP。设备上网时,路由器把「局域网 IP + 端口」换成「公网 IP + 一个临时端口」,收到回包再换回去。这张对照表就叫 NAT(网络地址转换,可以理解成小区门卫:里面的人可以出去,外面的人不能随便进来)。

问题出在「外面的人主动来」这个方向:NAT 表里没有对应记录,路由器不知道该把包转给谁,只能丢掉。表现就是最经典的那句——同一个 Wi-Fi 能进,换成流量就超时。

解决方向只有三类,记住这三类,后面所有文章都是它们的变体:

  1. 在路由器上做端口映射,让门卫认一个固定的门(需要真的有公网 IP);

  2. 用内网穿透(让玩家先连一台有公网地址的机器,再由那台机器把流量转回你家手机),Minexa 里的 FRP 就是这一类;

  3. 用虚拟局域网把双方拉进同一个网段,让流量看起来像「内网互访」,Minexa 里的 EasyTier 是这一类。

比 NAT 更麻烦的是 CGNAT(运营商级 NAT,可以理解成整栋楼共用一个门牌,你家连自己的门牌都没有)。判断方法很简单:登录路由器看 WAN IP,如果它落在下面这些段里,基本可以确定不是公网地址。

WAN IP 落在含义
10.0.0.0/8、172.16.0.0/12、192.168.0.0/16私有地址,说明你上面还有一层 NAT
100.64.0.0/10运营商 CGNAT 专用段,端口映射对外无效

CGNAT 下你在路由器上怎么映射都没用,因为公网入口在运营商那一层。这不是配置错误,是线路性质。处理办法见 公网 IP 与端口映射 里的判断与替代方案。

TCP 与 UDP:Java 版和基岩版走两条路#

这两种协议是互联网上两种送货方式,Minecraft 两个版本各用一种:

TCPUDP
连接方式先握手,确认对方在直接发,不确认
可靠性丢包会重传丢包就丢了
速度略慢,但稳快,但不保证送达
MinecraftJava 版(25565)基岩版(19132)

这个区别会直接影响你的操作:

  • 端口映射时协议选错,等于没开——Java 服填 UDP,玩家永远连不上。

  • FRP 隧道的类型要跟版本匹配(Java tcp,基岩 udp)。

  • Minexa 的 STUN 直连和 EasyTier 组网都只转发 TCP,所以基岩版走不了这两条路。

先确认你开的是哪个版本

Java 版和基岩版是两套完全不同的服务端。Paper、Purpur 这些是 Java 版核心,PowerNukkitX、PocketMine-MP 是基岩版核心。Java 客户端进不了基岩服,反过来也一样。选核心之前不确定,先看 Java 版与基岩版的区别。

延迟、带宽、丢包、TPS:四个常被混用的词#

玩家说「卡」,可能指四件完全不同的事。分清楚,才知道该改什么。

词大白话变差时的体感归谁管
延迟(ping)一个包来回要多久挖方块要等半秒才消失线路、物理距离
带宽一秒钟能搬多少数据进服加载地形特别慢家宽上行、服务器带宽
丢包发出去的包有多少没到人物瞬移、被踢回登录线路质量、Wi-Fi 信号
TPS服务器每秒能跑完多少个游戏刻,20 是满分全服生物卡住、时间不走手机性能、模组数量

关键区别:延迟和丢包是网络问题,换个联机方式可能就好;TPS 是手机算力问题,换十条隧道都没用。看到「所有人都卡、怪不动」,先去看 TPS 与 MSPT,不要怀疑网络。

IPv4 与 IPv6:地址不够用之后#

IPv4 地址像 192.168.1.23,一共只有 43 亿个,早就不够分,所以才需要 NAT 让一栋楼共用门牌。IPv6 地址长得多(如 2408:xxxx::1),数量足够给每台设备一个公网地址。

理论上 IPv6 不需要端口映射,但它有自己的一套麻烦:

  • 宽带、光猫、路由器三层都要开启 IPv6,缺一层就不通;

  • 防火墙默认拦入站,仍然要单独放行服务端端口;

  • 地址会变,长期开服要配 DDNS(把固定域名指向变化的 IP);

  • 客户端填地址要加方括号:[2408:xxxx::1]:25565;

  • 朋友那边不一定有 IPv6,很多移动网络还没有。

Minexa 的网络页只显示 IPv4 局域网地址,不显示 IPv6,所以要用 IPv6 得去系统网络信息里自己查。同时支持 IPv4 和 IPv6 叫双栈,双栈环境下最稳。

判断自己在哪一层:三句话定位#

不用记原理,回答三个问题就能定位:

你的情况说明该走哪条路
朋友和你在同一个 Wi-Fi,能进局域网通,服务端没问题想跨网络就看下一行
家里有公网 IPv4,或双方都有 IPv6NAT 那关可以正面解决公网 IP 与端口映射
WAN IP 是 100.64.x.x 或 10.x.x.x只有 CGNAT,映射无效frp 内网穿透 或 EasyTier

判断顺序不要颠倒:先确认局域网能进,再折腾外网。局域网都进不去,说明问题在服务端或地址,跟公网一点关系都没有,这时候配隧道纯属浪费。

四句话拆掉四个常见误区#

  1. 「IP 一样就能连」:还要端口对、协议对、服务端在跑、白名单放行。

  2. 「端口改成 40000 就更安全」:扫描器几秒能扫完 65535 个端口,改端口只避免冲突,不提供安全。

  3. 「公网 IP 是固定的」:家宽公网 IP 经常变,长期开服要么 DDNS,要么每次重发地址。

  4. 「IPv6 一定更快」:不一定。它的价值是地址够多、不用 NAT,速度和 IPv4 取决于实际线路。

上机自查
  • 你能说出概览「服务器地址」卡片上的完整地址,包括端口,不是只记得 IP。

  • 手机系统设置里看到的 Wi-Fi IP,和地址卡上的局域网 IP 一致。

  • 终端里出现过 Done,不是只显示「运行中」。

  • 同一 Wi-Fi 下的另一台设备能进,换成手机流量就连不上。

  • 你知道自己路由器的 WAN IP 开头是 192.168、10、100.64 还是真正的公网地址。

下一步#

读到这儿了,给你点个赞。如果这页内容帮你解决了问题,说明说明书的方向是对的;如果发现错误、过时信息或看不懂的地方,欢迎到 GitHub Issues 告诉我们。

⚡ 回到极速开服 📖 查术语表