云计算百科
云计算领域专业知识百科平台

30元自建Minecraft服务器,5人畅玩不卡

前阵子被朋友拉去玩原版生存,想着开个服大家一起耍,又不想租那种限制一堆的面板服,就决定自己从头搭一个 Paper 服务器。踩了一些坑,顺手把整个过程记录下来,希望对想自己开服的朋友有点用。


1. 为啥选这台机器——先上对比

动手前我拉了个表,把几家主流的轻量/游戏云放一起比较,都是 2 核 4G 这个档位,因为 Minecraft 服主要吃单核和内存,这个配置带 5~10 人比较稳。

云厂商型号月费带宽额外说明
雨云 游戏云入门型 ¥49 8 Mbps 有游戏优化线路,自带 7 天自动备份
阿里云 轻量应用服务器 ¥88 5 Mbps 通用线路,快照单独计费
腾讯云 轻量应用服务器 ¥74 6 Mbps 免费 3 个快照,BGP 线路
华为云 HECS 云耀云服务器 ¥79 5 Mbps 通用线路,需自行调优

几家大厂的机器我都用过,性能没得说,但带宽给得比较抠,MC 服又特别吃上行。雨云 8M 的带宽在这个价位确实难得,加上有专门给游戏优化的线路,延迟表现会好一些。所以这次我选了雨云的游戏云入门型,系统用的 Ubuntu 22.04。


2. 注册与购买

注册流程没啥好说的,邮箱手机走一遍就行。唯一可以提一嘴的是,结算时如果填优惠码 linmeng 会有折扣,我当时也是别人给的,现在放这儿,需要就拿着用。

买完在控制台等几分钟,实例状态变成“运行中”就可以登录了。初始会给一个 root 密码,记得进系统后第一时间改掉。


3. 第一步:SSH 连上去

本地打开终端:

bash

ssh root@你的服务器IP

提示改密码时,先执行:

bash

passwd

然后更新系统并安装必要工具:

bash

apt update && apt upgrade -y
apt install -y wget curl screen ufw

出于安全考虑,之后不要一直用 root 跑服,我们单独建一个用户:

bash

adduser mc
usermod -aG sudo mc

以后所有 MC 相关的操作都切换到这个用户下:

bash

su – mc


4. 安装 Java 17

Paper 1.20+ 需要 Java 17,直接用 apt 安装 OpenJDK:

bash

sudo apt install -y openjdk-17-jre-headless
java -version

看到类似 openjdk version "17.0.12" 的输出就没问题。


5. 下载并启动 Paper

创建服务端目录:

bash

mkdir ~/mc-server && cd ~/mc-server

去 Paper 官网拿到最新构建的下载链接,用 wget 拉下来。这里以 1.20.4 为例:

bash

wget https://api.papermc.io/v2/projects/paper/versions/1.20.4/builds/497/download -O paper.jar

第一次运行,让它生成 eula.txt 和基础文件:

bash

java -Xms2G -Xmx2G -jar paper.jar nogui

会提示需要同意 eula,等进程退出后编辑 eula.txt:

bash

echo "eula=true" > eula.txt

再启动一次,确认没有报错且生成了 world 等目录后,输入 stop 关闭。


6. 写成 systemd 服务,开机自启

用 screen 也能跑,但不够“正经”。直接上 systemd,崩溃了能自动重启,服务器重启了也不用管。

回到 root 用户或使用 sudo,创建服务文件:

bash

sudo nano /etc/systemd/system/mcserver.service

内容如下:

ini

[Unit]
Description=Minecraft Paper Server
After=network.target

[Service]
Type=simple
User=mc
WorkingDirectory=/home/mc/mc-server
ExecStart=/usr/bin/java -Xms2G -Xmx2G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -jar paper.jar nogui
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

保存后执行:

bash

sudo systemctl daemon-reload
sudo systemctl enable –now mcserver

可以通过 sudo systemctl status mcserver 看状态,journalctl -u mcserver -f 看实时日志。进游戏测试一下,再 sudo systemctl stop mcserver 停掉,接下来做优化。


7. Paper 针对性调优

原版配置文件跑起来其实也凑合,但几个人一块探索,卡顿就容易出现。这里调几个立竿见影的参数。

server.properties 里建议改的:

properties

view-distance=8 # 视距,不要超过10
simulation-distance=6 # 模拟距离
network-compression-threshold=256

config/paper-world-defaults.yml 里,找到 entities 部分:

yaml

entities:
spawning:
alt-item-despawn-rate:
enabled: true
items:
cobblestone: 300
netherrack: 300
sand: 300
dirt: 300
grass: 300
tracking-range:
players: 48
animals: 32
monsters: 32
misc: 16
other: 32

主要把掉落物快速清理掉,否则红石机器或爆炸后容易堆积卡服。

还有 tick-rates 里的:

yaml

behavior:
villager:
validatenearbypoi: 60

村民检测工作方块频率降低,对大型村庄很有用。

每次改完记得 sudo systemctl restart mcserver 让配置生效。


8. 自动备份——崩档不慌

除了雨云控制台自带的 7 天自动备份(在实例详情里可以打开),我还加了一道本地脚本备份,每天凌晨打包 world 目录。

在 /home/mc 下新建脚本 backup.sh:

bash

#!/bin/bash
BACKUP_DIR="/home/mc/backups"
WORLD_DIR="/home/mc/mc-server/world"
mkdir -p "$BACKUP_DIR"
tar -czf "$BACKUP_DIR/world-$(date +\\%Y\\%m\\%d).tar.gz" "$WORLD_DIR"
find "$BACKUP_DIR" -name "*.tar.gz" -mtime +7 -delete

给执行权限:

bash

chmod +x /home/mc/backup.sh

然后加入 crontab(用 mc 用户):

bash

crontab -e

添加一行凌晨 4 点执行:

text

0 4 * * * /home/mc/backup.sh

这样每天留一个归档,保留最近 7 天,配合云端的自动备份,基本不用担心存档丢了。


9. 费用小结

最后盘一下花销:

  • 雨云游戏云入门型:49 元/月

  • 带宽:8 Mbps,几个人玩完全够用

  • 系统自动备份:免费 7 天

  • 月流量:不限制,也算省心

结算时填优惠码 linmeng 还能领个卷,均摊到一起玩的朋友身上,每人每月一杯奶茶钱都不到。

赞(0)
未经允许不得转载:网硕互联帮助中心 » 30元自建Minecraft服务器,5人畅玩不卡
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!