Mạng lưới máy chủ và proxy riêng
Cách xây dựng mạng lưới gồm nhiều máy chủ Minecraft trong Millida: Velocity hoặc BungeeCord chỉ với một cú nhấp, phân bổ bộ nhớ và kết nối tới proxy của người khác.
Cập nhật 13 tháng 8, 2026
Network là khi người chơi kết nối vào một địa chỉ duy nhất và di chuyển giữa các máy chủ (lobby, sinh tồn, minigame) mà không cần kết nối lại. Từ bên ngoài, đó là một địa chỉ; bên trong là nhiều máy chủ đứng sau một proxy.
Thiết lập network
Mục “Địa chỉ và network” → bật network. Bảng điều khiển sẽ khởi tạo proxy và tự động kết nối các máy chủ của bạn vào đó: forwarding secret, online-mode trên các backend, đóng cổng — mọi thứ đều đã được cấu hình đúng. Bạn không cần chỉnh sửa các tệp này bằng tay.
Những gì bạn chọn:
- Thành phần — máy chủ nào của bạn thuộc network.
- Lõi proxy — Velocity (mặc định, hiện đại và nhanh) hoặc BungeeCord (nếu bạn cần một plugin cũ chỉ chạy dưới nó).
- Bộ nhớ — bạn phân bổ cho các máy chủ của network; bản thân điểm vào của network giữ một phần dự trữ nhỏ và không tính vào gói.
Thay đổi lõi proxy sẽ thay đổi định dạng forwarding — máy chủ có cấu hình cũ sẽ không cho người chơi vào, vì vậy bảng điều khiển sẽ cấu hình lại chúng cùng với proxy.
Hai cách xây dựng thành phần
Tạo một thế giới trong một gói. Nút “Tạo” trong mục network. Thế giới như vậy không phải trả phí riêng: nó sống trên bộ nhớ và số nhân của máy chủ mà nó được tạo trong đó, và bạn tự gán giới hạn bộ nhớ cho nó.
Kết nối một máy chủ đã mua. Nếu bạn có nhiều gói, mỗi gói kết nối vào network nguyên trạng: “Kết nối máy chủ đã mua vào network” → “Kết nối”. Máy chủ vẫn nằm trên gói riêng, với bộ nhớ riêng, thế giới riêng và gói đăng ký riêng — chỉ có điểm vào thay đổi: người chơi vào qua địa chỉ network, và địa chỉ riêng của máy chủ không còn nhận kết nối trực tiếp (đó là cách forwarding hoạt động; nếu không, người ta có thể vượt qua proxy và vào với bất kỳ nickname nào).
Bộ nhớ ở đây được tính riêng cho từng gói trả phí: số gigabyte của máy chủ bên cạnh không dùng được cho máy chủ này; không ai gộp chúng lại với nhau. Trong mục network, mỗi gói có thanh riêng của mình.
Kết nối và ngắt kết nối sẽ khởi động lại máy chủ — nếu không, cấu hình điểm vào mới sẽ không đến được nó. Bạn có thể ngắt kết nối máy chủ khỏi network bất cứ lúc nào bằng nút “Ngắt kết nối khỏi network”: nó sẽ trở về địa chỉ riêng của mình. Các thế giới được tạo trong gói của nó sẽ đi cùng nó.
Nếu các máy chủ ở các khu vực khác nhau, bạn có thể kết nối chúng, nhưng việc người chơi chuyển giữa các thế giới sẽ đi qua nửa đất nước — bảng điều khiển sẽ cảnh báo bạn trước về điều này.
Vì sao điều này chỉ an toàn “khi đi cả bộ”
Trong thiết lập cổ điển, các backend được chuyển sang online-mode=false và tin tưởng proxy. Nếu đồng thời cổng của chúng mở ra bên ngoài, bất kỳ ai cũng có thể vào với bất kỳ nickname nào, kể cả nickname admin — đây là lỗ hổng phổ biến nhất ở các network tự làm. Với chúng tôi, các backend luôn đóng và chỉ chấp nhận proxy, còn việc xác thực tài khoản được kiểm tra tại điểm vào của network.
Những điều cần lưu ý khi chuyển sang network
- Plugin trên proxy thì khác. Trên Velocity bạn cài đúng các bản dành cho Velocity: LuckPerms, LibertyBans, ViaVersion — chúng đều có bản build riêng.
- Quyền và lệnh cấm nên được lưu trong một cơ sở dữ liệu MySQL dùng chung; nếu không, mỗi máy chủ có dữ liệu riêng: Cơ sở dữ liệu.
- Chat và dịch chuyển giữa các máy chủ — cần một plugin trên proxy; Essentials thông thường không làm được điều này.
- Phiên bản được xử lý bởi Via cài trên proxy: Vào từ các phiên bản khác nhau.
Kết nối vào proxy của riêng bạn
Nếu bạn đã có proxy (kể cả trên một nhà cung cấp hosting khác), mục “Địa chỉ và network” có riêng một địa chỉ cho proxy của bạn — hãy chỉ định nó trong cấu hình network của bạn làm địa chỉ backend. Địa chỉ game vẫn hoạt động.
Trong tình huống này, bạn chịu trách nhiệm về cấu hình: bật modern forwarding trên Velocity và đặt cùng một secret trên backend, còn với BungeeCord — bungeecord: true trong spigot.yml. IP thật của người chơi sẽ đến được máy chủ, và việc cấm theo IP vẫn hoạt động.
Proxy riêng của bạn trong mạng
Proxy cũng có thể là của riêng bạn — ví dụ, một bản fork của BungeeCord với chuyển tiếp hiện đại (NullCordX và tương tự), chạy trên một trong các máy chủ của bạn. Sau đó, trong mục “Mạng”, bật “Tôi tự cấu hình chuyển tiếp”.
Khi nút gạt được bật, bảng điều khiển không can thiệp vào bất kỳ cấu hình mạng nào: velocity.toml, config.yml, mục proxies trong config/paper-global.yml, và bungeecord trong spigot.yml vẫn giữ nguyên như bạn viết và tồn tại qua các lần khởi động lại máy chủ. Nếu không bật, chúng tôi ghi cài đặt đầu vào của mình vào đó mỗi lần khởi động — cấu hình riêng của bạn sẽ không được giữ.
Những gì bạn chịu trách nhiệm trong chế độ này:
- bí mật chuyển tiếp và sự khớp của nó trên proxy và tất cả máy chủ trong mạng;
- danh sách máy chủ trong cấu hình proxy của bạn;
online-modecho các backend: phía sau proxy, nó phải được tắt (mục “Cài đặt”).
Lấy địa chỉ từ bảng điều khiển. Trong mục “Mạng”, bên dưới nút gạt, có một khối làm sẵn cho velocity.toml với nút “Sao chép”: tên máy chủ và địa chỉ của nó. Mỗi máy chủ có chính xác một địa chỉ — <name>.millida.host thông thường — và nó hoạt động như nhau bất kể máy chủ nằm trên máy nào của chúng tôi: chúng tôi tự duy trì kết nối giữa các máy, trong mạng riêng của mình. Không có cổng nào xuất hiện trong cấu hình proxy.
Nếu bên cạnh máy chủ có dòng “khởi động lại máy chủ — chúng tôi sẽ cấp địa chỉ,” điều đó có nghĩa là nó chưa được tạo lại kể từ khi kết nối vào mạng: nhấp vào “Khởi động lại,” và địa chỉ sẽ xuất hiện.
Một lưu ý về proxy riêng của bạn bên ngoài Millida (nhà cung cấp hosting khác, máy của riêng bạn): địa chỉ ở đó cũng giống nhau, nhưng hãy nhập thêm địa chỉ của chính proxy vào trường “Proxy của bạn” — đó là cách điểm vào của chúng tôi nhận diện kết nối của bạn.
Bên cạnh đó có “Địa chỉ vào cho proxy của bạn” — tên miền của mạng bạn hoặc đích của bản ghi SRV, tức là những gì người chơi nhập vào client. Hãy điền nếu proxy nằm trên máy bạn chia sẻ với người khác (VPS rẻ, bảng điều khiển hosting của người khác): những kết nối như vậy không thể phân biệt bằng một IP duy nhất — chúng đến với chúng tôi từ cùng một địa chỉ — nhưng cặp “địa chỉ vào + IP” phân biệt chúng một cách chính xác. Nếu hàng xóm đã chiếm IP, bảng điều khiển sẽ thông báo: thêm địa chỉ vào, và việc vào sẽ hoạt động mà không lấy đi của hàng xóm.
Proxy cũng được đặt trên Millida
Sau đó, trường “Proxy của bạn” không cần thiết — địa chỉ của chúng tôi không được chấp nhận ở đó. Kết nối máy chủ với proxy và các thế giới của nó thành một mạng duy nhất (“Mạng” → “Kết nối máy chủ”): proxy với lõi Velocity hoặc BungeeCord kết nối giống như máy chủ thông thường. Bảng điều khiển không can thiệp vào cấu hình của nó, nó không được thêm vào danh sách backend, và tên máy chủ của mạng (<name>.millida.host) bên trong nó bắt đầu phân giải đến chính các container — bao gồm cả những container đang chạy trên một máy khác của chúng tôi.
Nếu không có điều này, bạn không thể truy cập các thế giới của riêng mình từ proxy của chúng tôi: từ bên ngoài, tên dẫn đến điểm vào chung, và nó phân tích kết nối dựa trên địa chỉ mà người chơi đã dùng để kết nối đến proxy của bạn — và kết nối lại quay trở lại nó một lần nữa (“Bạn đã kết nối đến proxy này rồi!”). Bạn không cần thay đổi cổng 25565 trong server.properties cho việc này, và bạn cũng không thể: đó là cách máy chủ tìm thấy điểm vào của chúng tôi.
Nếu bên cạnh máy chủ có dòng “khởi động lại máy chủ — chúng tôi sẽ cấp địa chỉ”, thì cổng chưa được cấp: hãy khởi động lại máy chủ này, và địa chỉ sẽ xuất hiện.
Tắt nút gạt — và chúng tôi sẽ khôi phục cấu hình của mình ngay lập tức, không cần chờ khởi động lại.
Khi bạn không cần mạng
Nếu bạn có một thế giới và một tá bạn bè, bạn không cần nó: nhiều thế giới trên một máy chủ được tạo bằng plugin, rẻ hơn và đơn giản hơn. Xem Nhiều thế giới.
