Skip to content

Wiki vi vn

pjscruggs edited this page Nov 11, 2026 · 1 revision

Raknetify2 · Tiếng Việt (Việt Nam)

Ngôn ngữ

Chơi mạng

Kết nối mạng qua RakNet cho máy khách và máy chủ Minecraft.

Tải về · GitHub

Minecraft Raknetify2 Máy khách / Máy chủ
Fabric mods/raknetify2-fabric-*.jar Máy khách / Máy chủ
Forge mods/raknetify2-forge-*.jar Máy khách / Máy chủ
NeoForge mods/raknetify2-neoforge-*.jar Máy khách / Máy chủ
Spigot / Paper plugins/raknetify2-spigot-*.jar Máy chủ
Velocity plugins/raknetify2-velocity-*.jar Velocity
BungeeCord plugins/raknetify2-bungee-*.jar BungeeCord

Thêm máy chủ

  1. Chơi mạng

  2. Thêm máy chủ

  3. Địa chỉ máy chủ

    Địa chỉ máy chủ
    RakNet · UDP raknet;play.example.com:25565
    TCP play.example.com:25565
  4. Xong

  5. Tham gia máy chủ

F3 · Raknetify2

F3
RakNet · UDP Đang hoạt động · MTU 1400
TCP Không hoạt động

Velocity / BungeeCord

  1. Máy khách · Raknetify2 → UDP → Velocity / BungeeCord · Raknetify2
  2. Velocity / BungeeCord → TCP → Máy chủ
Số cổng · 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

Đã hết thời gian

Địa chỉ máy chủ UDP
raknet;play.example.com:25580 play.example.com:25580 → NAT → 192.0.2.10:25570
Máy chủ · 192.0.2.10 25570/udp

config/raknetify2-compatibility.json

Máy chủ / Velocity / BungeeCord

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

Simple Voice Chat

Máy chủ 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

Địa chỉ máy chủ trustedProxies RakNet
192.0.2.10 · PROXY v2 / UDP ["192.0.2.10"] ✓
192.0.2.11 · PROXY v2 / UDP ["192.0.2.10"] ✗
Máy khách → RakNet / UDP ["192.0.2.10"] ✗

config/raknetify2-proxy-protocol.json

{"trustedProxies":["192.0.2.10"]}

Minecraft ≥ 1.20.5 · /transfer

  1. Máy chủ A · Fabric / Forge / NeoForge · config/raknetify2-transfers.json

    {"destinations":[{"host":"play.example.com","tcpPort":25565,"udpPort":25570}]}
  2. Máy chủ B · play.example.com · server.properties → accepts-transfers=true

  3. Máy chủ A · /transfer play.example.com 25565 Alex → Máy khách (Alex) → RakNet · play.example.com:25570

PacketOrdering

Minecraft
ui Tuỳ chọn
entity Bộ xương
world_interaction Túi đồ
effects Hạt hiệu ứng
chunk Khối

PacketOrdering.java

Phiên bản không tương thích!

Báo lỗi

Trang chủ

Raknetify2

Raknetify2 dùng RakNet trên UDP cho chế độ nhiều người chơi của Minecraft. Lưu lượng được chia thành các kênh, mỗi kênh giữ thứ tự gói tin riêng. Khi một kênh mất gói tin, các kênh khác vẫn có thể truyền dữ liệu. Nhờ đó, trò chơi có thể tiếp tục phản hồi thao tác của người chơi trong lúc gửi lại dữ liệu bị mất hoặc truyền các chunk của thế giới.

Raknetify2 là một nhánh được bảo trì độc lập của Raknetify, do ishland phát triển ban đầu. Nhánh này bổ sung hỗ trợ cho các phiên bản Minecraft mới hơn, đồng thời duy trì mã truyền dữ liệu, phần tích hợp với từng nền tảng và các bài kiểm thử tương thích.

Bắt đầu ngay

  1. Kiểm tra tính tương thích với Minecraft và các mod.
  2. Chọn một phiên bản để tải và cài đặt.
  3. Kết nối với địa chỉ như raknet;play.example.com.

Hướng dẫn sử dụng máy chủ

Tác giả mod có thể sử dụng giao diện sắp xếp gói tin để khai báo mối quan hệ phụ thuộc giữa các tệp nội dung tùy chỉnh và lưu lượng dữ liệu của Minecraft.

Liên kết dự án

Raknetify2 sử dụng giấy phép MIT và vẫn giữ nguyên các văn bản bản quyền gốc. Cách triển khai mạng lưới của nó được xây dựng dựa trên Raknetify và netty-raknet.

Cài đặt

Tải bản phát hành từ GitHub Releases. Kiểm tra phiên bản Minecraft và yêu cầu tải về của bản phát hành đó trước khi cài đặt.

Nơi bạn đang cài đặt Tệp Thư mục
Khách hàng hoặc máy chủ Fabric raknetify2-fabric-*.jar mods
Forge client hoặc Forge server raknetify2-forge-*.jar mods
Khách hàng hoặc máy chủ NeoForge raknetify2-neoforge-*.jar mods
Server Spigot hoặc Paper raknetify2-spigot-*.jar plugins
Velocity proxy raknetify2-velocity-*.jar plugins
BungeeCord proxy raknetify2-bungee-*.jar plugins

Đóng cửa client hoặc tắt máy chủ trước khi thay thế tệp JAR. Loại bỏ tệp JAR cũ của Raknetify và bất kỳ tệp JAR Raknetify2 nào khác từ cùng cài đặt trước khi thêm tệp mới.

Các thư mục của client thuộc về instance Minecraft hoặc modpack mà bạn khởi động. Các thư mục của server và proxy thuộc về cài đặt server hoặc proxy tương ứng. Hãy tạo các thư mục phù hợp nếu trình chạy chưa tạo chúng.

Kết nối trực tiếp với máy chủ

  1. Cài đặt mod client cho trình quản lý của bạn.
  2. Cài đặt mod máy chủ tương ứng, hoặc plugin Spigot/Paper trên máy chủ phù hợp.
  3. Hãy tuân theo Cấu hình Firewall và bộ định tuyến để cho phép các kết nối UDP đến máy chủ.
  4. Khởi động lại máy khách và máy chủ.
  5. Thêm một địa chỉ máy chủ như raknet;play.example.com hoặc raknet;play.example.com:25565.

Các địa chỉ không có tiền tố raknet; sẽ sử dụng giao thức TCP.

Việc cài đặt mod client riêng lẻ không làm tăng khả năng hỗ trợ RakNet cho máy chủ từ xa. Người quản lý máy chủ phải cung cấp điểm cuối RakNet. Những người chơi tham gia máy chủ của người khác thường không cần quy tắc chuyển tiếp gói tin nhận từ máy chủ.

Velocity và BungeeCord

Cài đặt plugin proxy và mod client phù hợp. Tuân theo hướng dẫn Velocity và BungeeCord để thiết lập các thông số như việc lắng nghe tin nhắn, chuyển tiếp dữ liệu từ phía máy chủ, hạn chế truy cập, và địa chỉ mà người chơi nên sử dụng.

Một cổng nghe riêng cho UDP

Đối với máy chủ Minecraft trực tiếp, hãy đặt các đối số Java phù hợp dưới đây. Các nhà quản lý proxy nên sử dụng cài đặt Velocity và BungeeCord listener.

Nền tảng Tham số Java Các cổng được chấp nhận
Server Fabric, Forge, hoặc NeoForge -Draknetify.fabric.portOverride=25570 1 đến 65534
Server Spigot hoặc Paper -Draknetify.spigot.portOverride=25570 1 đến 65535

Forge và NeoForge sử dụng mã lắng nghe chung, vì vậy tên thuộc tính của chúng cũng chứa fabric. Thay 25570 bằng cổng UDP mong muốn.

Spigot / Paper ≥ 0.1.0-beta.1.431

Thêm đối số trước -jar trong lệnh Java, hoặc vào trường đối số JVM của máy chủ. Khởi động lại máy chủ và cho phép giao tiếp UDP trên cổng nghe được chọn. Nếu cổng công cộng cũng là 25570, hãy kết nối bằng raknet;play.example.com:25570. Nếu bộ định tuyến chuyển đổi cổng, hãy sử dụng cổng công cộng của nó trong địa chỉ khách hàng. Cổng TCP vẫn giữ nguyên giá trị hiện tại.

Trên mạng Spigot/Paper, trình nghe UDP giữ lại địa chỉ kết nối cục bộ của trình nghe TCP Minecraft. Một địa chỉ UDP không hợp lệ hoặc cổng UDP bị chiếm dụng sẽ ngăn cản RakNet khởi động. Hãy kiểm tra báo cáo khởi động để xem địa chỉ và cổng UDP đã được kết nối. Hãy loại bỏ đối số và khởi động lại để quay lại số cổng của trình nghe TCP.

Một bộ định tuyến hoặc proxy UDP cũng có thể sử dụng một cổng UDP công khai khác và chuyển dữ liệu đến máy nghe có sẵn mà không cần thay đổi các tham số Java của máy chủ.

Các bản build dùng để phát triển

Mở một lần chạy main thành công trong GitHub Actions và tải xuống kho lưu trữ Artifacts của nó. GitHub yêu cầu tài khoản để tải xuống các tệp lưu trữ quy trình làm việc. Sử dụng bảng cài đặt ở trên để chọn một JAR từ kho lưu trữ.

Velocity và BungeeCord

Velocity và BungeeCord nằm giữa các người chơi và máy chủ Minecraft phía sau. Cài đặt Raknetify2 trên proxy và trên mỗi máy khách sẽ kết nối qua RakNet.

Raknetify2 client --UDP--> Velocity hoặc BungeeCord --TCP--> backend server

Các máy chủ phía sau không cần Raknetify2 để thực hiện đường kết nối này. Chúng vẫn cần các mod, plugin và hỗ trợ chuyển tiếp mà mạng của bạn yêu cầu. Raknetify2 không dịch các phiên bản Minecraft cũng không thay đổi việc xác thực tài khoản của proxy.

Cài đặt plugin proxy

  1. Xác nhận rằng các kết nối TCP thông thường qua proxy của bạn hoạt động bình thường, bao gồm cả việc xác thực và chuyển đổi giữa các máy chủ phía sau.
  2. Hãy tắt proxy và tải plugin tương ứng từ GitHub Releases.
  3. Đặt tệp raknetify2-velocity-*-all.jar hoặc raknetify2-bungee-*-all.jar vào thư mục plugins của proxy. Loại bỏ bất kỳ tệp plugin Raknetify hay Raknetify2 cũ nào trong thư mục đó.
  4. Cài đặt phiên bản client Raknetify2 phù hợp bằng cách sử dụng hướng dẫn cài đặt tại đây.
  5. Kiểm tra các thiết lập của máy nghe lén ở phía dưới, khởi động lại proxy, và kiểm tra lưu trữ để tìm lỗi liên quan đến máy nghe lén RakNet.
  6. Cho phép lưu lượng UDP công cộng đến proxy và hạn chế các cổng chơi game phía sau như đã mô tả trong Cấu hình tường lửa và bộ định tuyến.

Sử dụng các phiên bản Raknetify2 tương thích trên client và proxy. Kiểm tra Tính tương thích trước khi kết hợp các phiên bản khác nhau.

Velocity

Tùy chọn bind trong tệp velocity.toml chọn địa chỉ lắng nghe của Minecraft và cổng TCP của Velocity. Raknetify2 thường sử dụng cùng số cổng cho UDP. Các mục [servers] xác định các máy chủ phía sau. Hãy để những mục này chỉ đến địa chỉ TCP phía sau. Xem tài liệu cấu hình của Velocity tại đây.

Để sử dụng một cổng UDP riêng biệt, hãy thêm đối số này vào lệnh khởi động của Velocity trước -jar:

-Draknetify.velocity.portOverride=25570

Trừ khi bạn thay đổi cổng RakNet thành 25570, bước này sẽ thay đổi cổng UDP của RakNet mà vẫn giữ nguyên cổng TCP và địa chỉ backend của Velocity. Hãy khởi động lại Velocity sau khi thay đổi giá trị này.

Cấu hình việc chuyển tiếp thông tin cho người chơi trên cả Velocity và các backend của nó. Sử dụng phương thức chuyển tiếp hiện đại khi phần mềm backend hỗ trợ, và giữ bí mật phương thức chuyển tiếp này. Tuân theo hướng dẫn cụ thể của backend trong hướng dẫn chuyển tiếp thông tin người chơi của Velocity. Đảm bảo rằng các hạn chế của tường lửa backend vẫn được áp dụng cùng với việc chuyển tiếp thông tin.

BungeeCord

Trong tệp config.yml của BungeeCord, giá trị host dưới mỗi mục listeners xác định địa chỉ nghe và cổng TCP của Minecraft. Raknetify2 thường bổ sung cổng UDP vào cổng đó. Các mục servers chứa địa chỉ TCP phía máy chủ. Các thiết lập này được mô tả trong Hướng dẫn cấu hình BungeeCord.

Để sử dụng một cổng UDP riêng biệt, hãy thêm dấu nhãn JVM này trước -jar trong lệnh khởi động của BungeeCord:

-Draknetify.bungee.portOverride=25570

Quyền tùy chỉnh thuộc về toàn bộ quy trình proxy. Đối với cấu hình có nhiều máy nghe lén Minecraft, hãy kiểm tra các điểm cuối RakNet thực tế trong log khởi động trước khi thêm các quy tắc tường lửa. Khởi động lại BungeeCord sau khi thay đổi tham số.

Bảo toàn xác thực tài khoản tại proxy. Đối với các backend Spigot, hướng dẫn chuyển tiếp IP của BungeeCord ghép ip_forward: true trên proxy với settings.bungeecord: true trên backend. Chỉ chuyển tiếp thôi không ngăn được ai đó kết nối trực tiếp đến backend. Hạn chế truy cập backend bằng cách sử dụng hướng dẫn tường lửa.

Chọn địa chỉ mà các người chơi sử dụng

Cả hai cách thay đổi proxy đều chấp nhận các cổng từ 1 đến 65534. Các giá trị không hợp lệ sẽ bị bỏ qua, vì vậy hãy kiểm tra cổng UDP được gắn trong log khởi động. Hãy loại bỏ đối số và khởi động lại để quay lại số cổng của máy nghe lén Minecraft.

Các người chơi kết nối với tên miền công khai của proxy và cổng UDP, ví dụ: raknet;play.example.com:25570. Khi một router chuyển đổi cổng, hãy sử dụng cổng UDP công khai của nó trong địa chỉ khách hàng. Các địa chỉ không có tiền tố raknet; vẫn tiếp tục sử dụng máy nghe lén TCP của proxy.

Hãy để các dịch vụ Query, Geyser và các dịch vụ UDP khác sử dụng các cổng UDP riêng biệt. Việc sử dụng cổng TCP khác không thể giải quyết sự xung đột giữa các socket UDP.

Chat bằng giọng nói và việc chuyển tiếp thêm các gói tin UDP

Simple Voice Chat sử dụng plugin proxy riêng và cổng UDP trên nền tảng Velocity và BungeeCord. Hãy theo dõi hướng dẫn cài đặt proxy Voice Chat để thực hiện việc cấu hình này.

Nếu có một relay UDP riêng đặt trước proxy Minecraft và gửi các tiêu đề giao thức PROXY v2, hãy cấu hình Raknetify2 bằng chức năng chuyển tiếp UDP và giao thức PROXY. Việc cài đặt Velocity hoặc BungeeCord riêng lẻ không yêu cầu phải thực hiện cấu hình này.

Kiểm tra kết nối

Thử nghiệm từ bên ngoài mạng local của bạn bằng trình khách Raknetify2. Tham gia thông qua proxy, thay đổi giữa các máy chủ phía sau mà bạn sử dụng, và xác nhận rằng danh tính và quyền hạn của người chơi vẫn đúng.

  • Nếu TCP thông qua proxy hoạt động tốt nhưng RakNet bị quá thời gian, hãy kiểm tra máy nghe lén UDP của proxy, cổng công khai, các đường dẫn IPv4 và IPv6, cùng các quy tắc của tường lửa.
  • Nếu cả hai phương tiện truyền dữ liệu đều thất bại khi proxy kết nối với backend, hãy kiểm tra địa chỉ TCP của backend, quy tắc truy cập và cấu hình chuyển tiếp người chơi.
  • Nếu proxy báo cáo rằng cổng UDP đang bị chiếm dụng, hãy kiểm tra xem có quá trình Query, Geyser, proxy âm thanh, hoặc các quá trình khác liên kết với cổng đó hay không.

Đối với các báo cáo, hãy bao gồm cả log của proxy và backend từ cùng một lần thử kết nối. Xem Cách khắc phục sự cố để biết thông tin về phiên bản cần bao gồm.

Cấu hình tường lửa và bộ định tuyến

Hướng dẫn này dành cho các quản trị máy chủ. Raknetify2 cần có đường dẫn UDP hoạt động đến máy chủ hoặc proxy chấp nhận kết nối RakNet. Cấu hình mặc định sử dụng cùng số cổng với trình nghe TCP của Minecraft.

Đối với các trò chơi viên trên cùng mạng cục bộ, hãy sử dụng địa chỉ cục bộ của máy chủ và cho phép UDP đi qua tường lửa máy chủ. Việc chuyển tiếp cổng router là cần thiết khi lưu lượng Internet phải đi qua NAT IPv4 của router của bạn.

Chọn địa điểm và cổng kết nối.

Trực tiếp trên máy chủ

Gửi lưu lượng UDP công khai đến máy chạy máy chủ Minecraft với Raknetify2. Cổng đích là bộ lắng nghe UDP RakNet của máy chủ đó. Cho phép cổng đó trong tường lửa máy chủ. Giữ nguyên tuyến TCP hiện có của nó cho các kết nối Minecraft thông thường.

Ví dụ, nếu Raknetify2 lắng nghe trên UDP 25570, hãy chuyển tiếp cổng UDP công cộng đến địa chỉ cục bộ của máy chủ trên cổng 25570. Cổng TCP của máy chủ có thể vẫn giữ nguyên ở 25565. Xem cài đặt lắng nghe máy chủ trực tiếp để chọn một cổng UDP khác.

Velocity hoặc BungeeCord

Gửi lưu lượng UDP công khai đến máy chạy Velocity hoặc BungeeCord với plugin proxy Raknetify2. Sử dụng bộ lắng nghe UDP RakNet của proxy làm đích chuyển tiếp. Giữ nguyên tuyến TCP công khai hiện có của proxy cho các kết nối Minecraft thông thường.

Proxy kết nối với các máy chủ Minecraft phía sau thông qua giao thức TCP. Việc thêm Raknetify2 vào proxy không yêu cầu phải mở các cổng UDP để giao tiếp với người chơi.

Kết nối Truy cập được phép
Các người chơi sử dụng proxy Giao tiếp UDP công khai với máy nghe lén RakNet, cùng với máy nghe lén TCP công khai hiện có.
Chuyển tiếp đến các máy chủ phía sau Các cổng TCP của Minecraft trên phía máy chủ, chỉ có thể truy cập từ các máy chủ proxy đã được chỉ định.
Người chơi chuyển trực tiếp đến các cổng chơi game phía sau. Giữ nguyên trạng thái bị chặn, bao gồm cả thông qua IPv6.

Khi proxy và các backend chạy trực tiếp trên máy chủ riêng mà bạn kiểm soát, các trình nghe của backend có thể sử dụng địa chỉ loopback khi proxy được cấu hình để kết nối với chúng. Giữa các máy chủ, hãy hạn chế truy cập TCP của backend vào máy chủ proxy bằng cách sử dụng tường lửa hoặc mạng riêng biệt. Các container và máy chủ được quản lý cũng cần có các hạn chế tương tự về mạng. Xem Hướng dẫn bảo mật backend của Velocity và Hướng dẫn sử dụng tường lửa của BungeeCord.

Chức năng chuyển tiếp lưu lượng và các hạn chế của tường lửa hoạt động song hành với nhau. Việc truy cập trực tiếp vào backend có thể vượt qua các kiểm tra đăng nhập của proxy. Để cài đặt plugin, điều chỉnh chuyển tiếp lưu lượng và thay đổi cổng UDP, hãy tham khảo Velocity và BungeeCord.

Số cổng công khai và cổng địa phương

Cổng công khai và cổng của máy nghe có thể khác nhau khi bộ định tuyến chuyển đổi giữa chúng.

Cài đặt Cổng để sử dụng
Địa chỉ máy chủ và máy khách Cổng UDP công cộng
Quy tắc chuyển tiếp của bộ định tuyến về cổng bên ngoài Cổng UDP công cộng
Quy tắc chuyển tiếp của bộ định tuyến: Cổng nội bộ Cổng UDP của người nghe RakNet
Cổng địa phương của tường lửa chủ Cổng UDP của người nghe RakNet

IPv4 port forwarding

Để chạy trên một bộ định tuyến IPv4:

  1. Tìm địa chỉ IPv4 cục bộ của máy chấp nhận kết nối RakNet. Sử dụng quy định DHCP hoặc địa chỉ cố định phù hợp để quy tắc chuyển tiếp vẫn nhắm vào máy đó.
  2. Thêm quy tắc chuyển tiếp UDP cho cổng công khai mà các người chơi sẽ sử dụng.
  3. Đặt đích của quy tắc vào địa chỉ cục bộ của máy đó và cổng UDP của trình nghe UDP của RakNet.
  4. Cho phép truyền dữ liệu UDP vào trên cổng nghe của máy chủ qua tường lửa.

Ví dụ, một máy chủ nghe trên cổng UDP 25565 có thể sử dụng quy tắc với cổng công cộng 25565, địa chỉ đích 192.168.1.100, và cổng đích 25565. Thay đổi địa chỉ ví dụ bằng địa chỉ cụ thể của máy chủ bạn.

Giữ nguyên quy tắc TCP cho các kết nối thông thường trong Minecraft. Chỉ riêng quy tắc chuyển tiếp TCP không thể truyền tải UDP.

Khi việc chuyển tiếp vẫn không thành công

Kiểm tra xem liệu có bất kỳ bộ định tuyến nào khác hay nhà cung cấp dịch vụ Internet của bạn đang thực hiện công việc NAT trước khi lưu lượng dữ liệu đến bộ định tuyến của bạn. Với hai bộ định tuyến, việc chuyển tiếp phải bao phủ cả hai. Nếu nhà cung cấp dịch vụ Internet của bạn sử dụng công nghệ NAT chuyên dụng, hãy hỏi xem họ có thể cung cấp một địa chỉ IPv4 công khai hay không, hoặc có thể sử dụng dịch vụ lưu trữ hoặc đường ống hỗ trợ gói UDP hay không. Quy tắc chuyển tiếp của bộ định tuyến của bạn không thể điều chỉnh công việc NAT của nhà cung cấp dịch vụ Internet. Xem Hướng dẫn chuyển tiếp cổng của TP-Link để biết yêu cầu về địa chỉ WAN công khai.

Quy tắc tường lửa IPv6

Cho phép cổng UDP được chọn thông qua cả tường lửa IPv6 của bộ định tuyến và tường lửa của máy chủ. Định hướng đến địa chỉ IPv6 của máy tính nhận các kết nối RakNet.

Kiểm tra xem địa chỉ IPv6 của tên máy chủ có chỉ đến máy đó hay không. Nếu địa chỉ IPv6 thay đổi, hãy cập nhật bản ghi DNS và các quy tắc tường lửa liên quan đến địa chỉ đó.

Một tên máy chủ có thể công bố cả địa chỉ IPv4 và IPv6 cần có đường dẫn hoạt động cho từng địa chỉ được công bố. Kiểm tra cả hai bộ quy tắc khi một người chơi có thể kết nối nhưng người chơi khác không thể.

Nếu việc chuyển tiếp qua IPv4 làm thay đổi số cổng, hãy đảm bảo rằng cổng mà các máy chơi game sử dụng cũng có thể được nghe nhận qua IPv6. Việc chuyển đổi cổng theo IPv4 không cấu hình đường dẫn IPv6.

Các nhà cung cấp dịch vụ lưu trữ và các đường ống mạng

Nhà cung cấp hoặc đường ống kết nối phải hỗ trợ giao thức UDP tại điểm kết nối công cộng mà bạn cung cấp cho người chơi. Hãy kiểm tra việc phân bổ cổng và quy tắc tường lửa mạng, cũng như tường lửa của chính máy chủ.

Nếu một proxy UDP bổ sung chuyển tiếp địa chỉ khách hàng sử dụng giao thức PROXY phiên bản 2, hãy tuân theo chức năng chuyển tiếp UDP và giao thức PROXY và chỉ cho phép người nhận UDP truy cập vào proxy đáng tin cậy.

Kiểm tra kết nối

Kết nối từ bên ngoài mạng cục bộ của máy chủ bằng trình khách Raknetify2 đã được cập nhật, sử dụng địa chỉ như raknet;play.example.com:25565. Hãy sử dụng cổng UDP công cộng trong địa chỉ này.

Sử dụng kết nối RakNet thực tế để xác minh đường đi. Việc quét bằng UDP mà không nhận được phản hồi có thể cho kết quả không chắc chắn, vì dịch vụ hoạt động có thể bỏ qua các cuộc quét không quen thuộc. Tài liệu quét UDP của Nmap giải thích hành vi này.

Một kết nối TCP thành công chỉ xác nhận đường dẫn TCP. Nếu RakNet bị quá thời gian, hãy kiểm tra máy nghe, địa điểm chuyển tiếp, cổng UDP và quy tắc tường lửa bằng hướng dẫn khắc phục sự cố troubleshooting guide.

Tính tương thích

Kiểm tra tính tương thích với phiên bản cụ thể mà bạn tải về. Cột phát triển có thể chứa các tính năng hỗ trợ chưa được đưa vào bất kỳ phiên bản nào.

Phiên bản Minecraft và Java

Đối với Fabric, hãy tải xuống compatibility.json từ bản phát hành giống như JAR. Kiểm tra phiên bản Minecraft của bạn trong gameVersions, sau đó kiểm tra mục liên quan dưới runtimes để xem yêu cầu depends của nó. Tệp JSON này là tài liệu tham khảo và không cần đặt vào thư mục mods.

Đối với Forge, NeoForge và Spigot/Paper, hãy kiểm tra yêu cầu phiên bản được công bố bởi artifact và thông tin tải xuống của nó. Sự hỗ trợ trên một trình tải xuống không đồng nghĩa với sự hỗ trợ trên trình tải xuống khác.

Yêu cầu về Java được Raknetify2 công bố là mức tối thiểu. Minecraft hoặc chương trình nạp chương trình có thể yêu cầu phiên bản Java mới hơn. Hãy chọn phiên bản Java phù hợp để đáp ứng cả ba yêu cầu này.

Phiên bản client và server

Hãy sử dụng phiên bản Raknetify2 giống nhau trên client và server, hoặc trên proxy chấp nhận kết nối của nó khi có thể. Hãy kiểm tra các ghi chú về phiên bản trước khi kết hợp các phiên bản khác nhau. Các kết nối RakNet được mã hóa yêu cầu phải hỗ trợ giao thức mã hóa xác thực ở cả hai đầu. Các phiên bản Raknetify và Raknetify2 ban đầu, được tạo ra trước khi giao thức này được giới thiệu, không thể thực hiện các kết nối mã hóa với các peer được cập nhật.

Raknetify2 mang theo giao thức game hiện có của Minecraft. Việc kết nối các phiên bản Minecraft khác nhau yêu cầu việc chuyển đổi giao thức phù hợp.

Các mod khác

Quy trình xây dựng build workflow bao gồm các kiểm tra tương thích với Polymer, Krypton, PacketFixer và Fast IP Ping. Các kiểm tra này bao gồm cả các phiên bản và tổ hợp được chọn bởi quy trình xây dựng. Khi nghiên cứu một tổ hợp cụ thể, hãy kiểm tra kết quả xây dựng liên quan đến phiên bản đó.

Trong trường hợp xảy ra sự cố trong một bộ mod lớn, hãy theo dõi hướng dẫn khắc phục sự cố. Hãy bao gồm cả các phiên bản mod đầy đủ trong báo cáo của bạn.

Chế độ sắp xếp thứ tự

Chế độ sắp xếp thứ tự

Thông thường, Raknetify2 cho phép các kênh gói tin độc lập tiếp tục hoạt động trong khi một kênh chờ dữ liệu bị mất. Chế độ có trật tự sẽ đưa tất cả các gói tin Minecraft vào một kênh duy nhất, vì vậy một gói tin bị mất sẽ làm chậm các gói tin tiếp theo trong cùng hướng cho đến khi nó được truyền lại. Điều này giúp duy trì trật tự mong muốn của một số phần mềm chống cheat, nhưng lại làm mất đi khả năng của Raknetify2 trong việc duy trì việc truyền dữ liệu không liên quan trong thời gian chờ đợi đó.

Kích hoạt chế độ sắp xếp theo thứ tự

  1. Cài đặt phiên bản Raknetify2 hỗ trợ chế độ sắp xếp thứ tự trên máy chủ hoặc proxy chấp nhận kết nối RakNet, cũng như trên mỗi client RakNet.

  2. Tạo tệp config/raknetify2-compatibility.json trong thư mục chứa server hoặc proxy đang hoạt động. Nếu thư mục config chưa tồn tại, hãy tạo nó trước.

  3. Thêm đoạn văn sau:

    {"mode": "ordered"}
  4. Khởi động lại máy chủ hoặc proxy.

Các client tự động tuân theo cài đặt của server. Người chơi không cần tạo tệp cấu hình hay thay đổi địa chỉ server RakNet của mình.

Tất cả các gói tin trong Minecraft đều sử dụng một kênh ổn định và có trình tự trong mỗi hướng, bao gồm các kênh dùng để phân chia các gói tin và chuyển đổi giữa các thế giới.

Các cài đặt proxy

Khi các người chơi kết nối qua Velocity hoặc BungeeCord, hãy cấu hình chế độ sắp xếp thứ tự trên proxy đó, ngay cả khi chương trình chống cheat hoạt động trên máy chủ phía sau.

Chính sách này được áp dụng trên tất cả các bộ chuyển mạch phía sau. Trong chế độ sắp xếp, proxy sẽ chuyển các yêu cầu keepalive đến client thực sự thay vì trả lời chúng ngay tại chỗ.

Kiểm tra các thiết lập

Trong lần kết nối RakNet đầu tiên, máy tính cá nhân báo cáo:

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

Một cuộc trao đổi tương thích thành công cũng sẽ ghi lại thông tin ordered compatibility negotiated, tiếp theo là địa chỉ của đối phương.

Giữ các tính năng kiểm tra gian lận ở trạng thái bật và thử nghiệm với cấu hình của bạn.

Các client cũ

Các client RakNet không hỗ trợ chế độ có trật tự không thể kết nối với máy chủ yêu cầu điều này. Cần cập nhật Raknetify2 trên những client đó, hoặc kết nối bằng địa chỉ và cổng TCP thông thường của máy chủ hoặc proxy mà không cần tiền tố raknet;.

Quay lại chế độ đa kênh

Thay đổi tệp tin thành:

{"mode": "multichannel"}

Sau đó khởi động lại máy chủ hoặc proxy. Việc xóa tệp tin cũng sẽ khôi phục lại chế độ đa kênh sau khi khởi động lại.

Các vấn đề về cấu hình

Tệp phải chứa chính xác một cài đặt có tên là mode, với giá trị là "ordered" hoặc "multichannel". Các giá trị phân biệt chữ hoa chữ thường.

Các cấu hình không hợp lệ hoặc khó đọc sẽ khiến việc kết nối RakNet bị từ chối. Hãy sửa lại tệp tin và khởi động lại quá trình.

Nếu máy chủ vẫn báo cáo “multichannel”, hãy kiểm tra xem tệp có nằm trong thư mục hoạt động của máy chủ hoặc máy ảo chấp nhận kết nối RakNet hay không, sau đó khởi động lại quá trình đó.

Chuyển tiền tự động

Các máy chủ Fabric, Forge và NeoForge có thể chọn RakNet khi chuyển giao client có khả năng với địa điểm được cấu hình. Điều này sử dụng hỗ trợ chuyển giao nội bộ của Minecraft, được giới thiệu trong Java Edition 1.20.5. Hãy kiểm tra xem phiên bản Raknetify2 của bạn có hỗ trợ phiên bản và trình cài đặt Minecraft ở cả hai đầu hay không.

Cài đặt Raknetify2 trên máy chủ gửi và máy khách. Đối tượng nhận phải cung cấp một trình nghe lén RakNet tương thích và chấp nhận các giao dịch Minecraft đến.

Cấu hình này áp dụng cho các giao dịch được gửi bởi ba mod loader trên. Các plugin Spigot/Paper, Velocity và BungeeCord không đọc tệp giao dịch này.

Cấu hình máy chủ gửi dữ liệu

Tạo tệp config/raknetify2-transfers.json trong thư mục của máy chủ gửi dữ liệu:

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

Hãy thay thế tên máy chủ và các cổng trong ví dụ bằng giá trị tương ứng của máy chủ đích, sau đó khởi động lại máy chủ gửi. Các máy chủ đích khác cũng được thêm vào cùng một mảng.

Cánh đồng Ý nghĩa
host Địa chỉ máy chủ hoặc địa chỉ IP, không bao gồm tiền tố truyền tải hay cổng.
tcpPort Cổng đích trong yêu cầu chuyển giao ban đầu
udpPort Cổng RakNet công cộng mà client đã chuyển tiếp cần liên hệ.

Số cổng TCP và UDP có thể giống nhau. Nếu bộ định tuyến chuyển đổi cổng UDP, hãy sử dụng cổng công khai trong tài liệu này. Ghi các cổng dưới dạng số JSON.

Gửi dữ liệu đến địa chỉ tên máy chủ thông thường và cổng TCP của đích điểm. Raknetify2 kiểm tra xem client có hỗ trợ chức năng chuyển dữ liệu tự động hay không. Đối với client có khả năng và đích điểm phù hợp, nó sẽ chọn cổng UDP đã được cấu hình. Các client khác và đích điểm không phù hợp sẽ tiếp tục sử dụng địa chỉ chuyển dữ liệu ban đầu.

Chương trình phù hợp này sử dụng tên máy chủ và cổng TCP từ yêu cầu truyền dữ liệu. Tên máy chủ được viết với chữ cái đầu là hoa, dấu chấm cuối trong DNS được xử lý đúng quy định, và cách viết IPv6 cũng được chuẩn hóa. Việc truy vấn DNS không tham gia vào quá trình phù hợp này. Do đó, hai tên máy chủ khác nhau nhưng có địa chỉ tương tự cần được ghi nhận riêng biệt. Các mục chứa ký hiệu chung không được hỗ trợ.

Thiết lập điểm đến

Đối với địa điểm sử dụng tệp server.properties của Minecraft, hãy đặt giá trị accepts-transfers=true và khởi động lại máy chủ. Địa điểm proxy có thể có cài đặt chuyển giao riêng của mình. Minecraft mặc định từ chối các yêu cầu chuyển giao nhập cảnh, ngay cả khi việc kết nối trực tiếp bình thường vẫn hoạt động.

Đầu ra RakNet của máy chủ, chức năng chuyển tiếp UDP công cộng, và tường lửa máy chủ phải đã được cấu hình. Tệp chuyển tiếp của máy chủ gửi sẽ chọn địa chỉ gửi đến client.

Kiểm tra cả đường dẫn IPv4 và IPv6 của đích điểm khi tên máy chủ của nó công bố cả hai loại địa chỉ này. Kiểm tra kết nối RakNet trực tiếp thông thường với đích điểm trước khi xem xét hành vi chuyển giao tự động.

Vẫn giữ nguyên các bước kiểm tra đăng nhập hoặc xác thực người chơi. Cấu hình này không cho phép người chơi truy cập hay thay thế phương thức xác thực trên máy chủ.

Lỗi cấu hình và việc vô hiệu hóa

Các trường dữ liệu bị thiếu, các trường dữ liệu không rõ ràng, các cổng không hợp lệ, và các địa chỉ gửi dữ liệu trùng lặp là nguyên nhân gây ra lỗi cấu hình trong quá trình khởi tạo. Hãy sử dụng nhật ký máy chủ để xác định lỗi, sửa đổi dữ liệu JSON, và khởi động lại máy chủ.

Để vô hiệu hóa chức năng chọn tự động, hãy xóa tệp cấu hình hoặc sử dụng {"destinations": []}, sau đó khởi động lại máy chủ gửi. Những yêu cầu gửi dữ liệu của máy chủ sẽ vẫn giữ nguyên địa chỉ ban đầu.

Chuyển tiếp UDP và giao thức PROXY

Một proxy UDP có thể chuyển tiếp lưu lượng RakNet và giữ nguyên địa chỉ khách hàng gốc bằng giao thức PROXY phiên bản 2. Hãy bật tính năng này khi một proxy UDP nguồn gửi các tiêu đề đó đến máy nghe. Việc chuyển tiếp cổng router thông thường không yêu cầu phải sử dụng tính năng này.

Trên máy chủ hoặc proxy Minecraft nhận lưu lượng UDP được chuyển tiếp, hãy tạo tệp config/raknetify2-proxy-protocol.json:

{
  "trustedProxies": ["192.0.2.10"]
}

Thay thế ví dụ bằng địa chỉ IP nguồn thực tế của proxy UDP hoặc một dải CIDR mà bạn kiểm soát. Địa chỉ phải khớp với những gì bộ lắng nghe nhận được sau bất kỳ NAT trung gian nào. Chấp nhận các ký tự IPv4 và IPv6. Tên máy chủ DNS bị từ chối. Khởi động lại máy chủ hoặc proxy nhận.

Thiết lập proxy chuyển tiếp để gửi các tiêu đề giao thức PROXY v2 cho UDP. Raknetify2 chỉ chấp nhận địa chỉ khách được chuyển tiếp từ các nguồn được liệt kê. Các kết nối RakNet trực tiếp mà không có các tiêu đề này sẽ bị từ chối khi cấu hình này được kích hoạt. Đầu thu TCP vẫn giữ nguyên cấu hình hiện tại.

Đồng cảm và truy cập

Mỗi proxy trong danh sách đều có quyền cung cấp địa chỉ của máy khách. Trên tường lửa của máy chủ đích, chỉ cho phép proxy đã chỉ định truy cập cổng UDP. Giới hạn dải địa chỉ tin cậy ở mức tối thiểu cần thiết.

Tập tin phải chỉ chứa cột trustedProxies, với ít nhất một mục. Một mảng rỗng là một lỗi. Một tập tin không hợp lệ sẽ khiến trình nghe lén RakNet không thể khởi động được.

Để quay lại việc kết nối trực tiếp bằng UDP, hãy xóa tệp tin đó và khởi động lại máy nghe lén. Đồng thời, cập nhật hành vi chuyển tiếp dữ liệu lên nguồn và quy tắc tường lửa cho đường dẫn mới này.

Nếu các kết nối thất bại sau khi kích hoạt tính năng này, hãy kiểm tra địa chỉ nguồn thực sự của proxy tại phía backend, phạm vi đáng tin cậy đã được cấu hình, và xem proxy có phát ra tiêu đề giao thức UDP PROXY phiên bản 2 hay không.

Để cài đặt proxy và cấu hình phía sau trong Minecraft, hãy theo quy trình Velocity và BungeeCord.

Simple Voice Chat

Raknetify2 có thể chia sẻ trình nghe mạng UDP của mình với Simple Voice Chat trên Fabric, Forge, NeoForge, Spigot và Paper.

Cài đặt Simple Voice Chat trên máy chủ và trên mỗi client muốn sử dụng chat bằng giọng nói. Sử dụng hướng dẫn cài đặt server để thiết lập các thông số còn lại.

Sử dụng thư mục config cấp cao nhất của máy chủ để lưu các tệp của Raknetify2, bao gồm cả trên Spigot/Paper. Tệp riêng của Simple Voice Chat vẫn được lưu tại vị trí đặc biệt của nền tảng.

Chia sẻ bản port trò chơi

  1. Hãy tạo tệp config/raknetify2-voicechat.json trong thư mục server với nội dung như sau:

    {"enabled": true}
  2. Đặt port=-1 trong cấu hình máy chủ của Simple Voice Chat. Trên các máy chủ được mod, nội dung này nằm trong config/voicechat/voicechat-server.properties. Trên Spigot/Paper, nó nằm trong plugins/voicechat/voicechat-server.properties.

  3. Khi có một người nghe tín hiệu RakNet tương ứng, hãy để trống biến bind_address. Nếu máy chủ có nhiều người nghe trên cổng UDP đó, hãy đặt giá trị này thành địa chỉ cục bộ của người nghe mà bạn muốn chia sẻ.

  4. Khởi động lại máy chủ và chạy /voicechat test <PLAYERNAME> cho người chơi đã kết nối.

Nếu trình nghe RakNet sử dụng cổng khác so với Minecraft, hãy cụ thể chỉ định giá trị port là cổng UDP cụ thể của hệ thống, thay vì sử dụng -1. Ví dụ, trình nghe RakNet trên cổng UDP cục bộ 25570 cần có port=25570.

Đặt voice_host khi các client cần địa chỉ công khai hoặc cổng khác nhau. Đối với máy chủ chuyển tiếp gói UDP công khai 25580 đến cổng UDP nội bộ 25570, hãy sử dụng port=25570 và voice_host=play.example.com:25580. Địa chỉ công khai nằm trong voice_host. Cài đặt bind_address chọn địa điểm nghe nội bộ.

Raknetify2 cung cấp giao diện UDP chung thông qua API của Simple Voice Chat. Simple Voice Chat xử lý việc xác thực và mã hóa giọng nói. Người chơi có thể sử dụng chat giọng nói với cả kết nối chơi game bằng TCP hay RakNet.

Các dịch vụ và proxy UDP khác

Dành các cổng UDP riêng cho Query và Geyser. Chỉ Simple Voice Chat hỗ trợ dùng chung socket theo cách này.

Việc tích hợp này không chia sẻ socket proxy âm thanh trên mạng Velocity hay BungeeCord. Hãy theo hướng dẫn cấu hình proxy âm thanh của Simple Voice Chat và chỉ định cho proxy âm thanh một cổng UDP riêng. Sử dụng plugin proxy âm thanh chính thức, hãy đặt bất kỳ giá trị voice_host công khai nào trong cấu hình proxy âm thanh. Plugin này sẽ bỏ qua các thiết lập voice_host của máy chủ phía sau.

Đối với một đường ống UDP chung, hãy đặt voice_host thành tên máy chủ công cộng và cổng UDP chuyển tiếp đến máy chủ này.

Vô hiệu hóa việc chia sẻ hoặc giải quyết xung đột cổng kết nối.

Nếu nhật ký báo cáo No RakNet listener matches the voice bind address and port, hãy xác nhận rằng RakNet đã khởi động thành công và cổng thoại cùng địa chỉ ràng buộc khớp với trình nghe cục bộ của nó.

Nếu nó báo cáo Multiple RakNet listeners match the voice bind address, hãy chọn một địa chỉ cục bộ cụ thể khớp trong bind_address và khởi động lại.

Chỉ có plugin Simple Voice Chat mới có thể cung cấp socket UDP của nó. Nếu khi khởi động phát hiện ra rằng có plugin khác đã cung cấp socket, hãy chọn cách tích hợp socket nào để sử dụng.

Để vô hiệu hóa tích hợp Raknetify2, hãy đặt giá trị {"enabled": false} trong cấu hình giọng nói của nó hoặc xóa tệp đó. Phân biệt một cổng UDP riêng cho Simple Voice Chat, cập nhật luật chặn mạng hoặc quy tắc chuyển tiếp, sau đó khởi động lại máy chủ.

Khắc phục sự cố

TCP hoạt động được, nhưng RakNet bị quá thời gian.

Kiểm tra các điểm này theo thứ tự:

  1. Khách hàng đã cài đặt mod Raknetify2 phù hợp cho phiên bản loader và Minecraft của mình.
  2. Server hoặc proxy nhận kết nối đã cài đặt Raknetify2 và đã khởi động mà không gặp lỗi với component nghe lén.
  3. Địa chỉ bắt đầu bằng raknet; và sử dụng cổng UDP công cộng.
  4. Nhà cung cấp dịch vụ lưu trữ, bộ định tuyến và tường lửa máy chủ đều cho phép truyền dữ liệu qua giao thức UDP trên cổng đó.
  5. Địa chỉ IPv4 và IPv6 của tên máy chủ dẫn đến máy chủ mong muốn và có các quy tắc tường lửa hoạt động bình thường.

Một kết nối TCP thành công chỉ xác nhận đường dẫn TCP. Hãy tuân theo Cấu hình Firewall và bộ định tuyến để kiểm tra việc chuyển tiếp UDP và truy cập IPv6. Nếu giao thức PROXY được kích hoạt, các client phải đến được máy nghe lén thông qua một proxy đáng tin cậy đã được cấu hình.

Địa chỉ đã được sử dụng.

Kiểm tra xem có quá trình nào đang sử dụng cổng UDP hay không. Geyser và các dịch vụ UDP khác cần sử dụng các cổng riêng. Simple Voice Chat có thể sử dụng tích hợp cổng chung.

Bạn có thể chọn một cổng UDP cục bộ khác bằng cách sử dụng cài đặt người nghe máy chủ trực tiếp hoặc cài đặt Velocity và BungeeCord. Hãy kiểm tra yêu cầu phiên bản đối với cài đặt Spigot/Paper. Việc chỉ thay đổi cổng công khai của máy chủ vẫn khiến cổng cục bộ xung đột.

Việc kết nối hoạt động tốt, nhưng việc chuyển đổi không thành công.

Kết nối trực tiếp với địa điểm mục tiêu bằng địa chỉ raknet; của nó. Nếu không thành công, hãy sửa chữa phần máy nghe hoặc đường dẫn mạng của địa điểm mục tiêu trước.

Nếu kết nối trực tiếp hoạt động, hãy kiểm tra xem đích điểm có chấp nhận các giao dịch nhận từ bên ngoài hay không. Một máy chủ Minecraft sử dụng tệp server.properties cần có tùy chọn accepts-transfers=true. Việc kết nối trực tiếp không kiểm tra thiết lập này.

Sau đó so sánh tên máy chủ truyền dữ liệu và cổng TCP với tệp config/raknetify2-transfers.json trên máy chủ gửi dữ liệu. Xác nhận rằng tệp đã được tải sau khi khởi động lại và rằng client hỗ trợ việc truyền dữ liệu qua RakNet tự động. Xem Truyền dữ liệu tự động.

Lỗi về việc mã hóa hoặc giao thức

Kiểm tra các phiên bản Raknetify2 ở cả hai đầu kết nối. Cập nhật cả client, server và proxy cùng lúc khi một phiên bản mới thay đổi giao thức mã hóa. Giữ nguyên cài đặt xác thực của server trong quá trình điều tra.

Các sự cố liên quan đến mod cụ thể

Ghi lại hành động nào gây ra sự thất bại, chẳng hạn như mở kho hàng, nhận pack tài nguyên, thay đổi thế giới, hoặc tạo ra một thực thể. So sánh cùng một hành động trên TCP và RakNet bằng cách sử dụng một cài đặt thử nghiệm riêng biệt khi có điều kiện.

Một số tệp nội dung tùy chỉnh phụ thuộc vào thứ tự của các gói tin chuẩn. Nhà phát triển mod có thể khai báo những phụ thuộc này thông qua giao diện sắp xếp thứ tự gói tin packet ordering interface.

Báo cáo lỗi

Mở một vấn đề trong Trình theo dõi vấn đề Raknetify2 và bao gồm:

  • Phiên bản Minecraft, Java, loader và Raknetify2 ở cả hai phía.
  • Các phiên bản phần mềm máy chủ và proxy, bao gồm cả các proxy chuyển tiếp UDP.
  • Các mod đã được cài đặt và các phiên bản của chúng.
  • Các bước để gây ra vấn đề và những gì bạn mong đợi sẽ xảy ra.
  • Liệu các bước tương tự có hiệu quả trên TCP hay không.
  • Các đoạn trích từ nhật ký kết nối client, server và proxy liên quan đến cùng một thử nghiệm.

Hãy loại bỏ các token truy cập, mật khẩu và các thông tin cá nhân khác trước khi tải lên lịch sử đăng nhập. Hãy giữ lại các thông báo ngoại lệ và dấu vết truy cập cần thiết để chẩn đoán vấn đề.

Tích hợp mod

Raknetify2 cho phép các mod xác định rằng lưu lượng dữ liệu trong Minecraft phải được sắp xếp theo thứ tự nhất định thông qua các payload tùy chỉnh của chúng. Hãy sử dụng chức năng này khi xử lý các payload yêu cầu sử dụng các thực thể, khối, kho hàng hoặc các trạng thái được thiết lập bởi các gói dữ liệu trước đó.

Đặt hàng nhóm

Nhóm Lưu lượng truy cập liên quan
ui Các menu và tương tác không phụ thuộc vào thế giới
entity Việc xuất hiện, loại bỏ và di chuyển các thực thể trong Minecraft
world_interaction Tài khoản và các tương tác phụ thuộc vào thế giới
effects Âm thanh và các hạt
chunk Cập nhật về địa hình, khối đá và ánh sáng.

Tất cả các nhóm đều đảm bảo việc giao hàng có trật tự và đáng tin cậy trong kênh của mình. Các gói tin thuộc các nhóm khác nhau có thể đến theo thứ tự tương đối khác nhau. Hãy chọn nhóm phù hợp với sự phụ thuộc của dữ liệu được gửi.

Tùy chọn tích hợp với Fabric

Thêm một nhà cung cấp dưới mục raknetify:packet_channels trong tệp fabric.mod.json của mod của bạn. Nhà cung cấp này thực hiện chức năng Consumer<BiConsumer<String, String>> bằng cách sử dụng các kiểu dữ liệu của JDK. Nó nhận một registrar chấp nhận mã định danh payload tùy chỉnh và một nhóm sắp xếp.

Hãy kết hợp dữ liệu này vào metadata hiện có của bạn, thay thế tên lớp bằng tên đầy đủ của nhà cung cấp dịch vụ của bạn.

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

Giữ lại phần còn lại của tệp fabric.mod.json, bao gồm các mục entrypoints hiện có. Đây là một đoạn từ tệp meta dữ liệu.

Ví dụ, một tiện ích di chuyển đối tượng có thể đăng ký example:entity_path vào nhóm entity. Tài liệu hướng dẫn API PacketOrdering bao gồm cách triển khai của nhà cung cấp.

Khi Raknetify2 không tồn tại, Fabric sẽ không gọi điểm khởi đầu này. Các nhà cung cấp dịch vụ nên khai báo các chỉ định và nhóm trong quá trình khởi tạo mà không cần dựa vào việc các mod khác đã hoàn tất quá trình khởi tạo của mình.

Hành vi đăng ký

Các mod Forge và NeoForge, cùng các plugin cho máy chủ hoặc proxy, có thể gọi hàm PacketOrdering.register(identifier, group) trong quá trình khởi tạo khi Raknetify2 đã được cài đặt. Lớp chương trình này là com.ishland.raknetify.api.PacketOrdering. Hãy đăng ký lớp này trước khi chấp nhận kết nối từ người chơi, và tránh việc tải các lớp của Raknetify2 khi phụ thuộc không được sử dụng.

Các khai báo này áp dụng cho các kết nối mới. Các kết nối hiện có vẫn giữ nguyên các quy tắc mà chúng đã được thiết lập khi bắt đầu. Việc lặp lại một khai báo giống nhau là được phép. Các nhóm trùng khớp với cùng một định danh sẽ bị từ chối.

Các mã định danh tải trọng phải sử dụng tên không gian tùy chỉnh hợp lệ. Tên không gian minecraft đã được dành riêng. Giới hạn cho toàn bộ điểm kết nối là 128 mã định danh, bao gồm các quy tắc tích hợp và việc đăng ký từ các mod khác. Các mã định danh có thể chứa tối đa 255 ký tự ASCII, sử dụng cú pháp định danh tên không gian của API.

Trong quá trình thiết lập kết nối, các peer trên RakNet sẽ trao đổi các thông báo. Một máy chủ hoặc proxy có thể sử dụng thông báo của peer khi không có quy tắc cục bộ cho dữ liệu đó. Các quy tắc cục bộ có tính ưu tiên cao hơn, và thông báo của peer chỉ có hiệu lực trong phạm vi kết nối đó.

Proxy UDP

Xem Cách chuyển tiếp UDP và giao thức PROXY để biết thông tin về địa chỉ khách được chuyển tiếp qua UDP.

Để thiết lập proxy cho Minecraft, xem Velocity và BungeeCord.

English (US)

Clone this wiki locally