跳到正文
本頁目錄

在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網絡環境下配置服務器,所以默認的配置是不可用的,我們需要手動修改配置:

  1. 用文本編輯器打開服務端目錄下的server.properties文件
  2. 找到server-port,把它修改成你的服務商允許你使用的端口,例如11451
  3. 找到server-udp-ports,也把它修改成你的服務商允許你使用的端口,例如11451
  4. 在服務商的管理面板中配置端口映射,將主機內部的端口(例如:11451)映射到外部的端口(例如:11451),記得同時映射TCP和UDP協議
  5. 打開客戶端,嘗試連接服務器

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關閉:

JSON
"netherNetPatch": {
     "enable": false, // 将此处从true改为false
     "stunServers": [
         "stun:stun.l.google.com:19302",
         "stun:stun.miwifi.com:3478"
     ]
 }

在沒有公網IP的NAT環境下通過frp等內網穿透軟件配置端口映射

  1. 用文本編輯器打開服務端目錄下的server.properties文件
  2. 找到server-port,把它修改成你的內網穿透軟件允許你使用的端口,例如11451
  3. 找到server-udp-ports,把它修改成以下格式:
    server-udp-ports=出口节点的IP:你的内网穿透软件允许你使用的端口:本机端口
    例如: server-udp-ports=11.45.1.4:11451:11451
  4. 在你的內網穿透軟件的管理面板中配置端口映射,將主機內部的端口(例如:11451)映射到外部的端口(例如:11451),記得同時映射TCP和UDP協議
  5. 在mods/LeviLamina/config/Config.json中,把netherNetPatch關閉:
    JSON
    "netherNetPatch": {
         "enable": false, // 将此处从true改为false
         "stunServers": [
             "stun:stun.l.google.com:19302",
             "stun:stun.miwifi.com:3478"
         ]
     }
  6. 打開客戶端,嘗試連接服務器