厦门好的做网站公司株洲湘潭交通新闻
零基础部署Minecraft到云服务器上教程
- 温馨提示
 
温馨提示
本教程是由博主个人飞书上直接复制下来,观感较差,请下载本教程对应的pdf资源文件进行查看(在最顶端,不过恳请各位留下一个赞再走吧)。本教程不包含云服务的购买,适合已有服务器的人观看
- Java17 配置
检查版本
java -version
apt搜索
apt-cache search java8
apt安装
sudo apt update
sudo apt install openjdk-17-jdk
切换版本
sudo update-alternatives --config java
非apt安装较为麻烦
java在哪里?
which java
通常 /usr/bin/java 是一个指向实际 Java 安装位置的符号链接。为了确认实际的 Java 安装位置,你可以使用 readlink 命令来查看这个符号链接指向的具体路径。
列出全部java
ls /usr/lib/jvm/
readlink -f /usr/bin/java
找到了 java 命令的实际位置,输出显示为 /usr/lib/jvm/java-17-openjdk-amd64/bin/java
配置环境
nano ~/.bashrc
然后在文件末尾添加以下行:
export JAVA_HOME= <path_to_java>
export PATH= P A T H : PATH: PATH:JAVA_HOME/bin
使其生效
source ~/.bashrc
验证
echo $JAVA_HOME - Minecraft部署(一次部署实践)
2.1 准备待部署的jar包,将其部署(顺利版本)
Minecraft官网
Spigot
将jar放入文件下,同一级处创建start.sh 
#!/bin/sh# 设置 JVM 参数
# -Xms: 初始堆内存
# -Xmx: 最大堆内存
# -XX:+UseG1GC: 使用 G1 垃圾回收器
# -jar: 指定 JAR 文件
# nogui: 非图形界面模式
java -Xms1G -Xmx1G -XX:+UseG1GC -jar spigot.jar nogui
 
授予脚本执行权限
 chmod +x start.sh
 开启服务
 ./start.sh
- 第一次运行服务器时,它会生成一些默认的配置文件,如 server.properties 和 eula.txt。
 - 你需要编辑 eula.txt 文件,将 eula=false 更改为 eula=true 以接受 Minecraft 服务器的 EULA(最终用户许可协议)
停止服务
./start.sh stop
端口开放安全组
server-port=25565
2.2 swap扩容(虚拟内存突然大量临时文件产生发生抖动,小插曲)
第一步:关闭交换分区
sudo swapoff /swapfile
展示交换分区
sudo swapon --show
扩充交换分区
sudo fallocate -l 3G /swapfile
增加权限
sudo chmod 600 /swapfile
格式化交换分区
sudo mkswap /swapfile
启用交换分区
sudo swapon /swapfile
2.3 保持会话
(之前的服务打开受限于ssh,当ssh关闭,服务停止)
可以使用tmux(开放式,断开ssh之后重连仍然可以操作会话),也可以使用systemd(封闭式,需要借助rcon进行命令交互,但更安全)
执行
sudo nano /etc/systemd/system/minecraft.service
将文件改为
[Unit]
Description=Minecraft Server
After=network.target 
[Service]
 User=mcserver
 Group=mcserver
 WorkingDirectory=/home/minecraft-server-1-18-2
 ExecStart=/usr/bin/java -Xms1G -Xmx1G -jar spigot.jar nogui
 Restart=on-failure
 KillMode=mixed
 TimeoutStopSec=120
[Install]
 WantedBy=multi-user.target
 重新加载服务文件
 sudo systemctl daemon-reload
 启用服务文件
 sudo systemctl enable minecraft.service
 2.4 (小插曲)添加服务用户
 查找用户
 id mcserver
 若没有就增加一个
 sudo adduser mcserver
 添加到sudo组使其可以使用sudo命令
 sudo usermod -aG sudo mcserver
 sudo权限验证
 sudo -l
 增加权限操作Minecraft文件的权限
 sudo chown -R mcserver:mcserver /home/minecraft-server1-18-2
 sudo chmod -R u+rwX,g+rwX,o-rwx /home/minecraft-server1-18-2
 2.5 Minecraft的生命周期
 启动Minecraft
 sudo systemctl start minecraft.service
 停止Minecraft
 sudo systemctl stop minecraft.service
 重启Minecraft
 sudo systemctl restart minecraft.service
 检查Minecraft
 sudo systemctl status minecraft.service
 查看日志
 sudo journalctl -u minecraft.service
 2.6 远程操控
 Minecraft服务器配置文件,将enable-rcon设为true,并设置一个rcon.password
 enable-jmx-monitoring=false
 rcon.port=25575
 level-seed=
 gamemode=survival
 enable-command-block=false
 enable-query=false
 generator-settings={}
 enforce-secure-profile=true
 level-name=world
 motd=A Minecraft Server
 query.port=25565
 pvp=true
 generate-structures=true
 max-chained-neighbor-updates=500000
 difficulty=easy
 network-compression-threshold=256
 max-tick-time=60000
 require-resource-pack=false
 use-native-transport=true
 max-players=4
 online-mode=false
 enable-status=true
 allow-flight=false
 initial-disabled-packs=
 broadcast-rcon-to-ops=true
 view-distance=8
 server-ip=
 resource-pack-prompt=
 allow-nether=true
 server-port=25565
 enable-rcon=true
 sync-chunk-writes=true
 op-permission-level=4
 prevent-proxy-connections=false
 hide-online-players=false
 resource-pack=
 entity-broadcast-range-percentage=80
 simulation-distance=8
 rcon.password=
 player-idle-timeout=0
 debug=false
 force-gamemode=false
 rate-limit=0
 hardcore=false
 white-list=false
 broadcast-console-to-ops=true
 spawn-npcs=true
 spawn-animals=true
 function-permission-level=2
 initial-enabled-packs=vanilla
 level-type=minecraft:normal
 text-filtering-config=
 spawn-monsters=true
 enforce-whitelist=false
 spawn-protection=16
 resource-pack-sha1=
 max-world-size=10000000
交互命令
 rcon-cli -H <server_ip> -p <rcon_port> -P <rcon_password> “”
 每次输入命令太麻烦?
 下载rcon客户端
