在NAT网络环境下配置服务器
Warning
此教程仅适用于server.properties中transport=nethernet的情况,如果你仍然在使用RakNet,你就不需要阅读这篇教程
前言
在server.properties文件中,有两个配置项是分别用于配置NetherNet的Signaling Service和真正用于客户端通信的UDP端口
它们分别是server-port和server-udp-ports
简单来说服务端会在server-port指定的端口上创建一个http服务器,所以你需要在防火墙中给该端口开放TCP协议
服务端会以UDP协议监听server-udp-ports指定的端口,所以你需要在防火墙中给该端口/这些端口开放UDP协议
Tip
26.60之后,server-udp-ports可以是单个端口也可以是多个端口,默认为监听19132端口
26.51的服务端仅支持多端口,但LeviLamina也提供了单端口的支持,默认启用,与server-port监听同一个端口,可以在LeviLamina的配置文件中关闭
在有公网IP的NAT环境下配置端口映射
因为server-port和server-udp-ports一个监听TCP一个监听UDP,所以你可以把它们设置在同一个端口上,就像server.properties里的默认值一样
但是由于这篇教程讲的是在NAT网络环境下配置服务器,所以默认的配置是不可用的,我们需要手动修改配置:
- 用文本编辑器打开服务端目录下的
server.properties文件 - 找到
server-port,把它修改成你的服务商允许你使用的端口,例如11451 - 找到
server-udp-ports,也把它修改成你的服务商允许你使用的端口,例如11451 - 在服务商的管理面板中配置端口映射,将主机内部的端口(例如:11451)映射到外部的端口(例如:11451),记得同时映射TCP和UDP协议
- 打开客户端,尝试连接服务器
Warning
在一般情况下,安装了LeviLamina的服务端会通过内置的STUN服务器来获取服务端的公网IP,如果获取失败,则可能出现客户端无法正常连接到服务端的情况,错误代码为:Door
这时候,你需要把server-udp-ports修改成以下格式:
server-udp-ports=服务器的公网IP:你的服务商允许你使用的端口:本机端口
例如: server-udp-ports=11.45.1.4:11451:11451
然后在mods/LeviLamina/config/Config.json中,把netherNetPatch关闭:
"netherNetPatch": {
"enable": false, // 将此处从true改为false
"stunServers": [
"stun:stun.l.google.com:19302",
"stun:stun.miwifi.com:3478"
]
}在没有公网IP的NAT环境下通过frp等内网穿透软件配置端口映射
- 用文本编辑器打开服务端目录下的
server.properties文件 - 找到
server-port,把它修改成你的内网穿透软件允许你使用的端口,例如11451 - 找到
server-udp-ports,把它修改成以下格式:
server-udp-ports=出口节点的IP:你的内网穿透软件允许你使用的端口:本机端口
例如:server-udp-ports=11.45.1.4:11451:11451 - 在你的内网穿透软件的管理面板中配置端口映射,将主机内部的端口(例如:11451)映射到外部的端口(例如:11451),记得同时映射TCP和UDP协议
- 在
mods/LeviLamina/config/Config.json中,把netherNetPatch关闭:JSON"netherNetPatch": { "enable": false, // 将此处从true改为false "stunServers": [ "stun:stun.l.google.com:19302", "stun:stun.miwifi.com:3478" ] } - 打开客户端,尝试连接服务器