Dựng Minecraft Server giải trí
Hôm nay tôi đổi gió một chút, không viết về startup hay công nghệ nghiêm túc nữa mà làm bài hướng dẫn giải trí. Dành cho bạn nào muốn dựng một server Minecraft riêng để chơi với bạn bè, nhưng tất cả đều kết nối qua VPN để đảm bảo an toàn, ổn định và riêng tư.
Cấu hình này hơi đặc biệt một chút: tất cả client dùng chung một file cấu hình OpenVPN, nhưng mỗi người sẽ được cấp một địa chỉ IP riêng khi kết nối. Nghĩa là không cần phát từng file .ovpn cho từng máy, cực kỳ tiện.
1. Chuẩn bị OpenVPN Server
Đầu tiên, bạn cần có một con VPS hoặc cloud instance để cài OpenVPN.
Cài xong, trong file /etc/openvpn/server.conf nhớ kiểm tra hoặc chỉnh các dòng sau:
port 1194
proto udp
dev tun
server 10.8.0.0 255.255.255.0
# ifconfig-pool-persist ipp.txt // nhớ tắt cái này
client-to-client
keepalive 10 120
persist-key
persist-tun
user nobody
group nogroup
duplicate-cn
Ở đây, client-to-client cho phép các máy cùng mạng VPN ping được nhau (cần cho Minecraft).duplicate-cn cho phép nhiều người cùng dùng chung một file .ovpn.
Khởi động lại OpenVPN:
systemctl restart openvpn@server
Sau đó test thử kết nối bằng một máy client. Mỗi client sẽ tự động nhận một IP khác nhau (kiểu 10.8.0.2, 10.8.0.3...).
2. Chuẩn bị máy host
Máy này sẽ chạy Minecraft Server trong Docker.
Cài Docker và Screen:
apt update && apt install -y docker.io screen
Tạo thư mục lưu dữ liệu Minecraft:
mkdir -p /space/minecraft /space/backups
3. Tạo session screen
Để server chạy nền ngay cả khi bạn tắt terminal:
screen -S minecraft
4. Chạy container Docker có hỗ trợ OpenVPN
docker run -itd \
--name minecraft \
--cap-add=NET_ADMIN \
--device /dev/net/tun:/dev/net/tun \
-p 25565:25565 \
-p 24454:24453 \
-p 8123:8123 \
-v /space/minecraft:/space/minecraft \
ubuntu:22.04
--cap-add=NET_ADMIN và --device /dev/net/tun là bắt buộc để container có thể kết nối VPN.
Port 25565 là port chính của Minecraft, 24454 là voice chat, 8123 là Dynmap. Nếu bạn có sài thêm Plugin nâng cao gì thì khai báo thêm.
5. Cài đặt môi trường trong container
Vào container:
docker exec -it minecraft bash
Cài Java, OpenVPN và các công cụ cần thiết:
apt update
apt install -y openjdk-21-jre-headless openvpn curl
Kiểm tra:
java -version
openvpn --version
6. Cài Minecraft Server
Vào thư mục làm việc:
cd /space/minecraft
Tải bản PaperMC mới nhất (1.21.10):
curl -o paper.jar https://api.papermc.io/v2/projects/paper/versions/1.21.10/builds/latest/downloads/paper-1.21.10.jar
Chấp nhận EULA:
echo "eula=true" > eula.txt
Khởi động server:
java -Xmx6G -Xms2G -jar paper.jar nogui
7. Kết nối OpenVPN trong container
Copy file .ovpn vào container:
docker cp TCU_OpenVPN.ovpn minecraft:/space/minecraft/
Kết nối VPN:
openvpn --config /space/minecraft/TCU_OpenVPN.ovpn --daemon
Kiểm tra IP:
ip addr show tun0
Nếu thấy dòng inet 10.8.x.x, nghĩa là bạn đã kết nối thành công.
8. Kiểm tra kết nối
Trên một máy client khác, kết nối cùng file .ovpn, sau đó ping thử IP của server Minecraft (ví dụ 10.8.0.6). Nếu ping được thì mở Minecraft và connect bằng IP đó qua port 25565.
9. Backup tự động (khuyến khích)
Tạo cron job để backup mỗi ngày:
crontab -e
Thêm dòng:
0 2 * * * tar czf /space/backups/minecraft-$(date +\%F).tar.gz /space/minecraft
10. Một vài lưu ý
- Tất cả client dùng chung file
.ovpn, nhưng OpenVPN sẽ cấp IP khác nhau nên không sợ trùng. - Đảm bảo bạn mở đúng port trong Docker (
25565cho Minecraft,8123cho DynMap nếu có). - Nếu muốn ổn định hơn, bạn có thể chuyển sang dùng docker-compose và quản lý bằng service manager, nhưng cách thủ công như trên đã đủ để chơi rồi.
Cách setup này hơi thủ công nhưng dễ hiểu và ổn định. Ưu điểm là bạn có thể dựng server chơi riêng, không lo lag hay bị người ngoài vào phá. Cả đám cùng chơi qua VPN, mỗi người một IP, nhìn map DynMap thấy như Google Map.
Nếu bạn làm theo hướng dẫn này, chỉ cần một con VPS nhỏ là đủ để host 4–6 người chơi ổn định.
Bình luận ()