Skip to content

Wiki lzh

pjscruggs edited this page Nov 11, 2026 · 2 revisions

Raknetify2 · 文言 (華夏)

文

眾戲

以 RakNet 通 Minecraft 之客端與伺服器。

下傳 · GitHub

Minecraft Raknetify2 客端 / 伺服器
Fabric mods/raknetify2-fabric-*.jar 客端 / 伺服器
Forge mods/raknetify2-forge-*.jar 客端 / 伺服器
NeoForge mods/raknetify2-neoforge-*.jar 客端 / 伺服器
Spigot / Paper plugins/raknetify2-spigot-*.jar 伺服器
Velocity plugins/raknetify2-velocity-*.jar Velocity
BungeeCord plugins/raknetify2-bungee-*.jar BungeeCord

添伺服器

  1. 眾戲

  2. 添伺服器

  3. 伺服器之址

    伺服器之址
    RakNet · UDP raknet;play.example.com:25565
    TCP play.example.com:25565
  4. 畢

  5. 入伺服器

F3 · Raknetify2

F3
RakNet · UDP 已啟 · MTU 1400
TCP 未啟

Velocity / BungeeCord

  1. 客端 · Raknetify2 → UDP → Velocity / BungeeCord · Raknetify2
  2. Velocity / BungeeCord → TCP → 伺服器
埠碼 · UDP Java
Fabric / Forge / NeoForge 1–65534 -Draknetify.fabric.portOverride=25570
Spigot / Paper ≥ 0.1.0-beta.1.431 1–65535 -Draknetify.spigot.portOverride=25570
Velocity 1–65534 -Draknetify.velocity.portOverride=25570
BungeeCord 1–65534 -Draknetify.bungee.portOverride=25570

連接逾時也

伺服器之址 UDP
raknet;play.example.com:25580 play.example.com:25580 → NAT → 192.0.2.10:25570
伺服器 · 192.0.2.10 25570/udp

config/raknetify2-compatibility.json

伺服器 / Velocity / BungeeCord

JSON
① ② ③ {"mode":"ordered"}
① ∥ ② ∥ ③ {"mode":"multichannel"}

Simple Voice Chat

伺服器 Raknetify2 · UDP 25565 Simple Voice Chat
Fabric / Forge / NeoForge config/raknetify2-voicechat.json · {"enabled":true} config/voicechat/voicechat-server.properties · port=-1
Spigot / Paper config/raknetify2-voicechat.json · {"enabled":true} plugins/voicechat/voicechat-server.properties · port=-1

Simple Voice Chat · Velocity / BungeeCord

PROXY protocol v2 · UDP

伺服器之址 trustedProxies RakNet
192.0.2.10 · PROXY v2 / UDP ["192.0.2.10"] ✓
192.0.2.11 · PROXY v2 / UDP ["192.0.2.10"] ✗
客端 → RakNet / UDP ["192.0.2.10"] ✗

config/raknetify2-proxy-protocol.json

{"trustedProxies":["192.0.2.10"]}

Minecraft ≥ 1.20.5 · /transfer

  1. 伺服器 A · Fabric / Forge / NeoForge · config/raknetify2-transfers.json

    {"destinations":[{"host":"play.example.com","tcpPort":25565,"udpPort":25570}]}
  2. 伺服器 B · play.example.com · server.properties → accepts-transfers=true

  3. 伺服器 A · /transfer play.example.com 25565 Alex → 客端 (Alex) → RakNet · play.example.com:25570

PacketOrdering

Minecraft
ui 置設
entity 骷髏
world_interaction 行囊
effects 粒
chunk 塊方

PacketOrdering.java

版不容!

報誤

首頁

Raknetify2

Minecraft 眾戲,以 Raknetify2 通 RakNet,載之以 UDP。分所傳之數據為數道,各循其次。一道失囊,餘道之無涉者猶得通。故當補所失、傳區塊之際,玩家有所為,猶可應之以時。

Raknetify2 分自 ishland 所作之 Raknetify,今別自修護。其兼容 Minecraft 新版,並續修傳輸之法、諸平臺之接及相容之試。

入門

  1. 察 Minecraft 各版與模組之相容。
  2. 擇檔下載而安之。
  3. 以 raknet;play.example.com 之類為址而連。

伺服器指南

作模組者可由傳囊定序之介面,明自定載荷與 Minecraft 傳訊孰先孰後。

本案諸鏈

Raknetify2 遵 MIT 許可,仍存原著作權之告。其通訊之法本於 Raknetify 及 netty-raknet。

安裝

於 GitHub Releases 取所發之版。安裝前,先察其所需之 Minecraft 版本及模組載入器。

所安之處 檔 目錄
Fabric 客端或伺服器 raknetify2-fabric-*.jar mods
Forge 客端或伺服器 raknetify2-forge-*.jar mods
NeoForge 客端或伺服器 raknetify2-neoforge-*.jar mods
Spigot 或 Paper 伺服器 raknetify2-spigot-*.jar plugins
Velocity 代理 raknetify2-velocity-*.jar plugins
BungeeCord 代理 raknetify2-bungee-*.jar plugins

欲易 JAR,先閉客端或止伺服器。於所安之處,先去原 Raknetify 及舊 Raknetify2 之 JAR,乃置新檔。

客端之目錄在所啟用之 Minecraft 實例或模組集內。伺服器與代理之目錄則各在其所安處。載入器未建目錄者,自建之。

直連伺服器

  1. 於客端安裝與載入器相合之模組。
  2. 於伺服器安與之相合之模組。器可用 Spigot/Paper 者,則安其插件。
  3. 依設防火牆與路由器之法,許 UDP 通於伺服器。
  4. 重啟客端及伺服器。
  5. 擇「添伺服器」,書址如 raknet;play.example.com 或 raknet;play.example.com:25565。

址首無 raknet; 則用 TCP。

獨安模組於客端,遠方伺服器不能因之受 RakNet。司服者須備其接入之端。玩家入他人之服,其自家路由器通常無須設入向轉埠。

Velocity 與 BungeeCord

安相合之代理插件與客端模組。監聽之設、轉遞後端、限制來訪及玩家所用之址,詳見 Velocity 與 BungeeCord。

別用 UDP 監聽埠

玩家直連 Minecraft 伺服器者,依下表設 Java 參數。司代理者,見 Velocity 與 BungeeCord 之監聽設定。

平臺 Java 參數 所許埠號
Fabric、Forge 或 NeoForge 伺服器 -Draknetify.fabric.portOverride=25570 1 至 65534
Spigot 或 Paper 伺服器 -Draknetify.spigot.portOverride=25570 1 至 65535

Forge 與 NeoForge 共用監聽之碼,故其屬性名亦有 fabric 字。易 25570 為所欲用之 UDP 埠。

Spigot / Paper ≥ 0.1.0-beta.1.431

於 Java 啟動命令之 -jar 前加參數,或填於主機之 JVM 參數欄。重啟伺服器,許所選監聽埠通 UDP。外埠亦為 25570,則以 raknet;play.example.com:25570 連之。路由器若換埠,客端當書外埠。TCP 埠仍舊。

Spigot/Paper 之 UDP 監聽,沿用 Minecraft TCP 所縛之本機址。所定埠無效或已占,RakNet 則不啟。察啟動誌,可知實縛之 UDP 址及埠。去參數而重啟,即復用 TCP 之埠號。

亦可於路由器或 UDP 代理另開外埠,轉遞至舊監聽埠,無須改伺服器之 Java 參數。

開發之版

入 GitHub Actions,擇 main 一次既成之運行,於 Artifacts 取其檔包。須有 GitHub 帳戶方可下載。依上表於包中擇其 JAR。

Velocity 與 BungeeCord

Velocity、BungeeCord 居玩家與 Minecraft 後端伺服器之間。凡用 RakNet 相連者,其代理、客端皆當安 Raknetify2。

Raknetify2 客端 --UDP--> Velocity 或 BungeeCord --TCP--> 後端伺服器

循此路相連,後端無須安 Raknetify2。其網所需之模組、插件及轉遞之能,後端仍當備之。Raknetify2 不譯 Minecraft 版本,亦不易代理驗帳之法。

安代理插件

  1. 先以尋常 TCP 經代理而入,驗其能驗身,亦能移於諸後端之間。
  2. 止代理,於 GitHub Releases 取相合之插件。
  3. 置 raknetify2-velocity-*-all.jar 或 raknetify2-bungee-*-all.jar 於代理之 plugins 目錄,去其中舊 Raknetify 或 Raknetify2 插件。
  4. 依安裝指南,於客端安相合之 Raknetify2 模組。
  5. 核下列監聽設定,重啟代理,閱誌察 RakNet 監聽有無失。
  6. 許外網 UDP 達代理,依設防火牆與路由器之法,限後端遊戲埠之來訪。

客端與代理所用 Raknetify2 版本須相容。欲雜用諸版,先閱相容之說。

Velocity

velocity.toml 之 bind 定 Velocity 受 Minecraft 之址及 TCP 埠。Raknetify2 常以同號埠聽 UDP。[servers] 諸項各指一後端,仍書其 TCP 址。見 Velocity 設定之考。

欲別用 UDP 埠,於 Velocity 啟動命令 -jar 之前加下列 JVM 參數:

-Draknetify.velocity.portOverride=25570

易 25570 為所選之埠。所易者 RakNet UDP 埠也,Velocity 之 TCP 埠及後端址如故。改畢重啟 Velocity。

於 Velocity 及後端俱設玩家資料之轉遞。後端能用新式轉遞者,用之,慎守其密鑰。閱 Velocity 轉遞玩家資料之法,擇合於其後端者而行。雖已轉遞,後端之防火限制不可撤。

BungeeCord

於 BungeeCord 之 config.yml,各 listeners 項下之 host 定 Minecraft 監聽址及 TCP 埠。Raknetify2 常於同號埠兼聽 UDP。servers 諸項存後端 TCP 址。詳 BungeeCord 設定指南。

欲別用 UDP 埠,於 BungeeCord 啟動命令 -jar 之前加下列 JVM 參數:

-Draknetify.bungee.portOverride=25570

此參數及於代理全程。設數個 Minecraft 監聽者,須先於啟動誌核 RakNet 實聽之址與埠,乃加防火之則。改畢重啟 BungeeCord。

代理之驗帳不可廢。後端用 Spigot 者,依 BungeeCord 轉遞 IP 之法,代理設 ip_forward: true,後端設 settings.bungeecord: true。徒設轉遞,不能禁人越代理而直入後端。宜依防火之法限其訪。

定玩家所用之址

兩代理之參數皆許 1 至 65534。值無效則略之,故當察啟動誌核實縛之 UDP 埠。去參數重啟,則復用 Minecraft 監聽埠號。

玩家當以代理之外網主機名及 UDP 埠連之,如 raknet;play.example.com:25570。路由器換埠者,客端書外埠。無 raknet; 前綴者仍通代理所聽之 TCP 埠。

Query、Geyser 及他 UDP 之用,宜各居異 UDP 埠。改 TCP 埠不能解 UDP 相爭之故。

語音及另設 UDP 轉遞

Simple Voice Chat 於 Velocity、BungeeCord 自有代理插件及 UDP 埠。依語音代理之說設之。

Minecraft 代理之前若另有 UDP 中繼,且發 PROXY 協議 v2 首部,則依 UDP 轉遞與 PROXY 之約設 Raknetify2。單用 Velocity 或 BungeeCord,無須此設。

驗連線

於本網之外,用 Raknetify2 客端經代理入服,往來於所用後端,驗玩家身分與所許之權皆無誤。

  • TCP 經代理可通,而 RakNet 逾時,當察代理之 UDP 監聽、外埠、IPv4 與 IPv6 之路及防火之則。
  • 兩法皆敗於代理接後端之時,當察該後端之 TCP 址、准入之則及轉遞玩家資料之設。
  • 代理報 UDP 埠已占,察 Query、Geyser、語音代理或他程有無縛此埠。

報失時,當並附同一次試連之代理誌、後端誌。所當列之版本,見察故。

設防火牆與路由器

此篇為司服者作。玩家之 UDP 須得達受 RakNet 連線之伺服器或代理。初設 Raknetify2 與 Minecraft 所聽之 TCP 埠同號。

玩家與服同在一網,則用服之內址,許 UDP 過其主機防火牆。外流須經路由器之 IPv4 NAT 者,乃須於其上設轉埠。

定所至之址及埠

直連之服

轉外網 UDP 至行 Minecraft 且安 Raknetify2 之主機,以其 RakNet 所聽 UDP 埠為的。於主機防火牆許其埠,仍存舊 TCP 路,供常法連 Minecraft。

譬如 Raknetify2 聽 UDP 25570,則轉公網 UDP 埠至服之內址,埠取 25570。服之 TCP 埠仍可為 25565。欲另擇 UDP 埠,見直連伺服器之監聽設定。

Velocity 或 BungeeCord

導公網 UDP 流至行 Velocity 或 BungeeCord 且安 Raknetify2 代理插件之主機。轉遞之的,取代理所聽之 RakNet UDP 埠。代理原有之外網 TCP 路仍存,以供 Minecraft 常連。

代理以 TCP 連 Minecraft 後端。雖加 Raknetify2 於代理,無須向玩家開後端之遊戲 UDP 埠。

連線所向 所許來訪
玩家至代理 許公網 UDP 至 RakNet 監聽埠,並留舊公網 TCP 監聽埠
代理至後端諸服 後端 Minecraft TCP 埠僅許指定代理主機達之
玩家直達後端遊戲埠 仍當禁之,IPv6 亦然

代理、後端俱直行於己所掌之一專機者,後端可聽回環址,代理亦設以此址達之。若分居異機,則以防火牆或隔離私網,使唯代理主機得通後端 TCP。容器與託管主機亦當因其網形設同等之禁。見 Velocity 後端保全之法與 BungeeCord 防火之法。

轉遞玩家資料與防火之限,二者相須。後端若許直入,代理之登入查驗或可見越。安插件、設轉遞及改 UDP 埠,見 Velocity 與 BungeeCord。

外埠與內埠之號

路由器可換其埠,故外埠之號與監聽埠或異:

所設 所用埠
客端所書伺服器址 公網 UDP 埠
路由器轉遞之則所定外埠 公網 UDP 埠
路由器轉遞之則所定內埠 RakNet 所聽 UDP 埠
主機防火之則所定本機埠 RakNet 所聽 UDP 埠

IPv4 轉埠

若置服於 IPv4 路由器之後:

  1. 求受 RakNet 之主機於本網之 IPv4 址。以 DHCP 保留其址,或擇宜而固定之,使轉遞長指此機。
  2. 為玩家所用之外埠加 UDP 轉遞之則。
  3. 以該機內址及 RakNet 所聽 UDP 埠為轉遞之的。
  4. 於主機防火牆許 UDP 入監聽埠。

譬如服聽 UDP 25565,可設外埠 25565,的址 192.168.1.100,的埠 25565。書址時當以服實有之內址易例址。

留舊 TCP 之則,以供 Minecraft 常連。徒轉 TCP,UDP 不得通。

既轉而猶不通

流未至己之路由器,先察有無他器或網商之 NAT。兩路由器皆己所掌,兩者皆須轉遞。網商若用營運級 NAT,則問可否得公網 IPv4 址,或用容 UDP 入向之託管服務、隧道。己器之轉則不能治網商之 NAT。WAN 公址所需,見 TP-Link 轉埠之說。

IPv6 防火之則

所選 UDP 埠,路由器 IPv6 防火牆、主機防火牆皆須許之。其的為受 RakNet 者之 IPv6 址。

察名所指 IPv6 址,必為其機。址若更,當改 DNS 錄,並改防火之則凡指此址者。

一名兼布 IPv4、IPv6 二址,二路皆當通。一人可入、一人不可者,察兩者之則。

IPv4 之轉遞若改埠號,須驗玩家所書之埠於 IPv6 亦能達監聽處。IPv4 換埠,不因之設 IPv6 之路。

託管及隧道

與玩家之外網接入端,其託管商或隧道須容 UDP。當並察所分之埠、網上防火之則及服本機之防火牆。

前若另有 UDP 代理,以 PROXY 協議 v2 遞客端址,依 UDP 轉遞與 PROXY 之約而設。收受之 UDP 監聽端,唯可信代理得達。

驗連線

自服本網之外,以新版 Raknetify2 客端連之,如 raknet;play.example.com:25565。其址當書公網 UDP 埠。

當以實際 RakNet 連線驗其路。UDP 之服雖行無恙,遇不識之探囊亦或棄之。故掃而無應,未可據以斷之。詳 Nmap 論 UDP 掃描。

TCP 既通,所驗唯 TCP 之路。RakNet 若逾時,宜依察故之法驗監聽、轉遞之的、UDP 埠及防火之則。

相容

當據所取之發布版察其相容。開發分支所能者,已發諸版未必有之。

Minecraft、Java 之版本

Minecraft、Java 之版本 · English

Raknetify2 所明之 Java 版乃其下限。Minecraft 及載入器或需更新之版。擇一版,使三者之需皆足。

客端與伺服器之版本

客端與受其連之服或代理,宜同用一 Raknetify2 發布版。雜用前須閱其版記。RakNet 密連之法,兩端皆須能行其加密兼驗數據真偽之約。原 Raknetify 及此約未立以前之 Raknetify2,皆不能以此密法連新版。

Raknetify2 所載者,Minecraft 固有之遊戲協議也。欲通異版,仍須有相合之譯協議者。

他模組

他模組 · English

模組集甚大而有失,依察故之法行之。報時詳列諸模組之版本。

循序模式

循序模式

常法則一道待補,餘道仍行。循序模式合 Minecraft 諸囊於一道。一囊既失,其向後至者悉待補傳乃行。此可合若干防作弊器所期之序,然其待也,無涉之遊戲傳訊亦俱止。

啟循序模式

  1. 於受 RakNet 連之服或代理及各 RakNet 客端,皆安能循序之 Raknetify2 版。

  2. 於該服或代理之工作目錄下建 config/raknetify2-compatibility.json。若未有 config 目錄,先建之。

  3. 書下文於其中:

    {"mode": "ordered"}
  4. 重啟伺服器或代理。

客端自從服之設。玩家無須另建設定檔,亦無須改所用之 RakNet 服址。

兩向各有一可靠循序之道,Minecraft 諸囊悉由之,囊束之界標、換世之訊亦然。

代理之設

玩家由 Velocity 或 BungeeCord 而入,循序之設當在代理;防作弊器雖居後端,亦然。

雖易後端,此則仍行。循序之時,後端所發探活之請,代理轉遞實際客端,不就地代答。

驗其設

RakNet 初連,控制臺告曰:

Raknetify2 compatibility: ordered (updated clients required, genuine acknowledgements)

相容之議既成,誌又載 ordered compatibility negotiated,繼以彼端之址。

仍啟防作弊之驗,以己實用之設試之。

舊客端

舊 RakNet 客端不能循序者,不得入必用其法之服。宜更新客端 Raknetify2,或循服或代理之尋常 TCP 址及埠而入,其首勿加 raknet;。

復用多道

易檔文如下:

{"mode": "multichannel"}

繼而重啟服或代理。亦可去此檔,重啟則多道如故。

設定之誤

檔中惟一項,名須 mode。其值惟 "ordered"、"multichannel" 二者可擇,字母大小不可相易。

設定無效或檔不可讀,則拒 RakNet 連。正其檔,重啟其程。

控制臺猶報 multichannel,察其檔果在受 RakNet 連之服或代理工作目錄否,然後重啟該程。

自動轉服

Fabric、Forge、NeoForge 之服,可依所設,以 RakNet 轉能受之客端至所定之服。其術用 Minecraft Java 版 1.20.5 始有之固有轉服法。宜核兩端 Minecraft 之版及載入器,此 Raknetify2 發布版皆能兼之。

安 Raknetify2 於發轉之服及客端。所之者須有相合之 RakNet 監聽,且許 Minecraft 轉入。

此設唯及前三載入器所發之轉服。Spigot/Paper、Velocity、BungeeCord 之插件不讀此轉服檔。

設發轉之服

於發轉之服目錄下建 config/raknetify2-transfers.json:

{
  "destinations": [
    {
      "host": "play.example.com",
      "tcpPort": 25565,
      "udpPort": 25570
    }
  ]
}

以所之處之實名與埠易例值,既而重啟發轉之服。若有他處,並入同一陣列。

欄 義
host 所之主機名或 IP 址,不含傳輸前綴及埠號
tcpPort 初請轉服所指之埠
udpPort 轉入客端當連之公網 RakNet 埠

TCP、UDP 之埠號可同。路由器若換 UDP 埠,檔中書公網之埠。其號須用 JSON 數值。

發轉仍指所之者之常用主機名與 TCP 埠。Raknetify2 察客端有無明示可自動轉服。客端既能且所之者合,乃選所設 UDP 埠。客端不能或所之不合者,仍用原址。

比對據轉服所請之名及 TCP 埠。主機名大小寫、名末 DNS 點及 IPv6 同址異書者,先正為一式。比時不循 DNS 查址,故二名雖歸一址,仍須分列。不受萬用符。

設所之之服

所之者用 Minecraft server.properties,當設 accepts-transfers=true 而重啟。若為代理,或別有轉入之設。Minecraft 初設拒轉入,雖直連無恙,亦然。

所之者之 RakNet 監聽、公網 UDP 轉遞、主機防火牆,皆須預設。發轉之檔但定告客端之址。

所之者之名若兼布 IPv4、IPv6,須驗二路。欲察自動轉服之故,先試以 RakNet 直連其地。

所之者原有登入、准入之驗,皆仍施之。此設不以權授玩家,亦不代服之驗身。

設誤及停用之法

欄有闕、有不識者、埠無效、所之重出,皆於初啟報設誤。察服誌以知其處,正 JSON 而重啟。

欲止自選,可去設定檔,或書 {"destinations": []},而後重啟發轉之服。以後凡請轉者,仍持其初址。

UDP 轉遞與 PROXY 之約

UDP 代理可轉 RakNet 之流,以 PROXY 協議 v2 存客端原址。上游 UDP 代理向監聽端發此首部,乃啟此用。尋常路由器之轉埠,無須啟之。

於受轉來 UDP 之服或 Minecraft 代理,建 config/raknetify2-proxy-protocol.json:

{
  "trustedProxies": ["192.0.2.10"]
}

以 UDP 代理實際源 IP 址或己能掌之 CIDR 網段易例值。途有 NAT 者,以監聽端所見之址為準。可直書 IPv4、IPv6 址,不受 DNS 主機名。畢則重啟收受之服或代理。

令轉遞代理於 UDP 加 PROXY 協議 v2 首部。代理所報客端之址,Raknetify2 唯受列中來源之言。此設既啟,凡直連而無其首部之 RakNet 皆拒。TCP 監聽仍循故設。

信任與准入

凡列中代理,皆信其所報客端之址。於後端防火牆限 UDP 埠,唯所定之代理得達。所信網段,宜視網形而約之,愈小愈善。

檔中僅容 trustedProxies,所列至少一項。空陣列為誤。檔無效,則 RakNet 監聽不啟。

欲復 UDP 直連,去其檔,重啟監聽,並依新路改上游轉遞之法及防火之則。

啟之而連不得,當察後端所見代理實際源址、所設可信網段及代理果有無為 UDP 發 PROXY 協議 v2 首部。

安 Minecraft 代理及設後端,見 Velocity 與 BungeeCord。

Simple Voice Chat

Fabric、Forge、NeoForge、Spigot、Paper 之服,Raknetify2 可與 Simple Voice Chat 共其 UDP 監聽。

於服及凡欲語音之客端,皆安 Simple Voice Chat。其餘設定,依其伺服器指南。

Raknetify2 之檔當置服之首層 config 目錄,Spigot/Paper 亦同。Simple Voice Chat 自有之檔,仍在下文各平臺所指之處。

共用遊戲埠

  1. 於服目錄下建 config/raknetify2-voicechat.json,書下文:

    {"enabled": true}
  2. 於 Simple Voice Chat 之服設定中置 port=-1。模組服之檔為 config/voicechat/voicechat-server.properties,Spigot/Paper 者為 plugins/voicechat/voicechat-server.properties。

  3. 合者唯有一 RakNet 監聽,留 bind_address 為空。若同一 UDP 埠有數監聽,則書欲共用者之本機址。

  4. 重啟服,擇已連之一玩家,行 /voicechat test <PLAYERNAME>。

RakNet 所聽埠異於 Minecraft 者,語音之 port 當明書本機 RakNet UDP 埠,勿用 -1。譬如埠 25570,則設 port=25570。

客端須用異公址或外埠者,設 voice_host。路由器若轉外 UDP 25580 至內 UDP 25570,則書 port=25570 及 voice_host=play.example.com:25580。公址入 voice_host,bind_address 則擇本機監聽。

Raknetify2 由 Simple Voice Chat 之 API 供共用 UDP 套接字。語音之驗身及加密,仍由 Simple Voice Chat 任之。遊戲雖分 TCP、RakNet,兩者之玩家皆得語。

他 UDP 之用及代理

Query、Geyser 仍須各用別 UDP 埠。此共用套接字之法,所容唯 Simple Voice Chat。

Velocity、BungeeCord 之語音代理不能循此法共套接字。依 Simple Voice Chat 代理指南,別予語音代理一 UDP 埠。用其官方語音代理插件,欲定公網 voice_host,須書於代理之語音設定。後端服所書 voice_host,該插件略之。

用通用 UDP 隧道,則 voice_host 書轉入此服之公網主機名及 UDP 埠。

止共埠或解套接字之爭

誌若載 No RakNet listener matches the voice bind address and port,當驗 RakNet 果已啟,且語音埠及所縛之址皆合本機 RakNet 監聽。

若報 Multiple RakNet listeners match the voice bind address,則於 bind_address 明書相合本址之一,而重啟。

Simple Voice Chat 之 UDP 套接字,僅得由一插件供之。啟時若告他插件已供,當擇其一而用。

欲止 Raknetify2 之語音接合,於其語音設定書 {"enabled": false},或去該檔。別予 Simple Voice Chat 一 UDP 埠,隨改防火或轉遞之則,重啟服。

察故

TCP 能通而 RakNet 逾時

依此次第驗之:

  1. 客端所安 Raknetify2 模組,與其載入器、Minecraft 之版相合。
  2. 受連之服或代理已安 Raknetify2,且啟而監聽無誤。
  3. 址以 raknet; 為首,埠為公網 UDP 之埠。
  4. 託管商、路由器及主機防火牆,皆許 UDP 過此埠。
  5. 主機名之 IPv4、IPv6 皆指所期之機,各自防火之則皆有效。

TCP 雖通,所驗唯 TCP 之路。依設防火牆與路由器察 UDP 轉遞及 IPv6 准入。若已啟 PROXY 協議,客端必經所列可信代理乃得達監聽端。

址已見占

察有無他程占此 UDP 埠。Query、Geyser 等 UDP 之用皆須別埠。Simple Voice Chat 可用共埠之法。

可循直連服監聽之設或 Velocity 與 BungeeCord 之設,別擇本機 UDP 埠。Spigot/Paper 能用此設之版,宜先核之。徒改路由器外埠,本機套接字之爭猶在。

可入服而不能轉

以所之者之 raknet; 址直連。直連若敗,先正其監聽或網路。

直連若通,察所之者許轉入否。Minecraft 服用 server.properties 者,須置 accepts-transfers=true。直入未嘗驗此設。

以請轉之名及 TCP 埠,校發轉之服所置 config/raknetify2-transfers.json。核重啟已讀其檔,且客端能 RakNet 自動轉服。見自動轉服。

加密或協議之誤

核兩端 Raknetify2 版。新版若易加密協議,客端與受連之服或代理當並更新。察故之間,服之驗身如故,勿廢。

某模組所致之失

記發失之舉,如開物品欄、受資源包、換世界、生實體。力可及者,別設試用之服與客端,各循 TCP、RakNet 為同一舉而比之。

自定載荷有繫於原版傳囊之先後者。作模組者可由傳囊定序之介面明言所繫。

報失

於 Raknetify2 報事處新立一事,並具下列:

  • 兩端 Minecraft、Java、載入器及 Raknetify2 之版。
  • 服與代理軟體之版,凡轉遞 UDP 之代理亦列之。
  • 他所安諸模組及其版。
  • 使其失可重見之步驟,及所期之果。
  • 循 TCP 行同法,能成否。
  • 同一次所試,客端、服及代理誌中相關之文。

上傳誌前,務去存取權杖、密碼及他私事。異常之訊、堆疊之跡,診其失所必需者,當留之。

模組之接

模組可藉 Raknetify2 明何種 Minecraft 傳訊須與自定載荷循序。載荷欲得其用,必待前囊先立實體、區塊、物品欄或他狀態者,宜用此法。

定序之組

組 相涉之訊
ui 不繫於世界之選單與交互
entity 實體之生、去、移
world_interaction 物品欄及他繫於世界之交互
effects 聲及粒子
chunk 地形、方塊、光照之更

各組於本道之內,必達而有序。分屬異組之囊,其至也先後可易。擇組當從載荷之所繫。

Fabric 可選之接法

於模組 fabric.mod.json 中,為 raknetify:packet_channels 入口增一提供者。以 JDK 之類實作 Consumer<BiConsumer<String, String>>;所受之註冊函數,以自定載荷之識別名及定序組為二參。

以此項入既有中介資料,類名當易為提供者類之全名:

{
  "entrypoints": {
    "raknetify:packet_channels": [
      "com.example.mod.OrderingProvider"
    ]
  }
}

所示僅中介資料之一段。凡 fabric.mod.json 餘文,連其舊入口,皆須存之。

譬如擴實體移動之模組,可註 example:entity_path 於 entity 組。提供者實作之例,見 PacketOrdering API 文獻。

無 Raknetify2,則 Fabric 不召此入口。提供者宜於初啟時明其識別名及組,勿恃他模組已啟畢。

註冊之則

有 Raknetify2 時,Forge、NeoForge 之模組及服或代理之插件,皆可於初啟召 PacketOrdering.register(identifier, group)。其類為 com.ishland.raknetify.api.PacketOrdering。當註於受玩家之連以前。此接若為可選者,缺其依存時,勿使其碼載 Raknetify2 之類。

所宣之則行於新連。舊連仍循初建時所受者。重宣同則可也;同名異組相牴牾者,拒之。

載荷識別名須用合式之自定名域。minecraft 名域已保留。每端所宣總數以 128 為限,內置之則及他模組所註皆計焉。其名依 API 之名域書法,長不得過 255 個 ASCII 字元。

新版 RakNet 兩端於始連互示所宣。服或代理於某載荷若無本地之則,可從彼端所宣。本地有則者先用之。彼端之宣,所及唯此一連。

UDP 代理

UDP 中繼及轉客端址之事,見 UDP 轉遞與 PROXY 之約。

Minecraft 代理之設,見 Velocity 與 BungeeCord。

English (US)

Clone this wiki locally