2

搭建自己的 Minecraft 服务器

 1 year ago
source link: https://www.yunyoujun.cn/posts/set-up-my-minecraft-server/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

闲话 #

腾讯云的学生机其实续费了几年,也没怎么使用它。 阿里云的学生机更是到前几个月,干脆让它过期了。

如今,既别无他用,有想到群内的小伙伴们之前一起在玩 MC ,便索性用来搭建一个私服。 记录下过程,以便看官参考,或自己日后复现。

About #

本实验设备为 CentOS 7,其他 Linux 服务器可举一反三。

Set up #

想让 Minecraft 在 Linux 上运行,自然需要其 Java 版本。

Install Java #

# 查看可获得的 java 版本
yum -y list java*
# 安装 java
yum -y install java-latest-openjdk
# ubuntu
# apt install default-jdk

Install Minecraft Server #

安装 Minecraft 服务器版本

下载 MINECRAFT :JAVA 版的服务器

Download #

几经辗转,发现官服是安装不了插件的。

http://mineplugin.org

如有兴趣,可参考百科安装不同服务器版本。

你可以在 这里 下载官方 JAVA 版的最新版本服务器。(替换下方下载链接)

mkdir /opt/minecraft
cd /opt/minecraft
# 若没有 wget,需先安装
# yum -y wget
wget https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jar
# 1.14.4
# 编译安装
java -Xms512M -Xmx1024M -jar server.jar nogui
# 初次允许结束会返回一个错误,将会生成一个新的 eula.txt 文件

配置可自行修改

  • -Xms512M 服务端能使用的最小内存
  • -Xmx1024M 最大内存

需要同意文件里的协议,通过下面这条命令将 eula=true 添加到文件中:

sed -i.orig 's/eula=false/eula=true/g' eula.txt
# 再次运行
java -Xms512M -Xmx1024M -jar server.jar nogui

编写自动化脚本 #

nano /opt/minecraft/start-mc.sh

键入以下内容

#!/bin/bash
cd /opt/minecraft/ && java -Xms2048M -Xmx3472M -jar server.jar nogui
# 保存并退出
# 按 ctrl+x y 回车
# 给予执行权限
chmod +x /opt/minecraft/start-mc.sh

退出 SSH 时,服务端也会关闭。

需要开启新的 screen 会话。

# 若没有 screen,需先安装
# yum -y screen
screen -S mc
/opt/minecraft/start-mc.sh

加入自启动 #

使 Linux 重启时,自动运行该脚本

nano /etc/rc.local

进入文件,加入以下内容

screen -dm -S mc /opt/minecraft/start-mc.sh
exit 0

Backup #

若想要备份服务器世界的地图

Backup.sh #

编写备份脚本

打算使用 git 来进行备份,别打我

# /opt/minecraft/mc-server-backup.sh
cd /opt/minecraft/ && git add -A && git commit -m "mc-server-world-backup" && git push
# 注意 linux 和 windows 换行符
# cd /opt/minecraft
# git add -A
# git commit -m "mc-server-world-backup"
# git push -u origin master

设置定时备份任务

vi /etc/crontab

键入以下内容

30 2 * * * root /opt/minecraft/mc-server-backup.sh
# 每天 2:30 执行备份任务

Q&A #

登入失败:无效会话 #

服务器默认会对版权进行校验,如果不是使用正版 MC 登陆,会出现 登入失败:无效会话。 需要将服务器中 server.properties 文件中, online-mode 对应值修改为 false

内网穿透 #

发现小伙伴的一篇文章 白嫖超算来开服 — 天河二号超级计算机白嫖教程

得知超算习堂这个网站,进入任意课程会分配一台 48 G 内存的虚拟机。 可以连外网,于是也尝试部署了一下 MC 服务器,并用 Sakura Ftp 做了内网穿透,竟然成功了。 初始进入的速度很快。

用了 screen,然后关闭浏览器页面,竟然没有立刻终端。结果几分钟还是被收回了,白高兴一场。(白嫖失败) 似乎找台服务器一直挂着页面可以一直持续下去。因为不小心关掉就没办法备份数据等考虑,还是继续用我的小水管服务器吧。

不过的确算是找到了一个可以实验的地方。

Command #

记录 Minecraft 中常用的指令

Server #

服务端执行

# 赋予管理权限
/op 用户名

Client #

# 死亡不掉落
/gamerule keepInventory true

gamemode #

更改游戏模式

# Example
# 改变红色组别所有玩家的游戏模式为创造模式
/gamemode creative @a[team=Red]
ParamsDescription
@p距离最近的玩家
@r随机玩家
@a所有玩家
@e所有实体
ParamsDescription
m游戏模式
team队伍
r小于半径区域
rm大于半径区域
type实体种类
  • [r=R] 只选择以指令的执行处为中心,半径小于 R 的区块里的目标。
  • [rm=RM] 只选择以指令的执行处为中心,半径大于 RM 的区块里的目标。

scoreboard #

/scoreboard teams add <队伍名称> [显示名称]
/scoreboard teams remove <队伍名称>
# 加入队伍
/scoreboard teams join <队伍名称> [玩家]
# 设置
/scoreboard teams option <队伍名称> <选项> <值>

Example:

/scoreboard teams option <队伍名称> color red
/scoreboard teams option <队伍名称> friendlyfire false
/scoreboard teams option <队伍名称> nametagVisbility hideForOtherTeams
ParamsDescriptionOptionsDefault
friendlyfire队友伤害true/falsetrue
nametagVisbility名称标签可见形式never/hideForOtherTeams/hideForOwnTeam/alwaysalways
deathMessageVisibility死亡时如何显示死亡讯息never/hideForOtherTeams/hideForOwnTeam/alwaysalways
  • black(黑色)
  • dark_blue(深蓝色)
  • dark_green(深绿色)
  • dark_aqua (深水蓝色)
  • dark_red(深红色)
  • dark_purple(深紫色)
  • gold(金色)
  • gray(灰色)
  • dark_gray(深灰色)
  • blue(蓝色)
  • green(绿色)
  • aqua(水蓝色)
  • red(红色)
  • light_purple(亮紫色)
  • yellow(黄色)
  • white(白色)
  • reset(恢复到预设的颜色)

插件 #

一些有趣的插件

[Dragon Mounts 2 | 龙骑士] #

孵化末影龙

官网下载地址

依赖 llibrary

Reference #

后话 #

因为服务器全天在线,所以时间也会相应流逝,颇有些加速世界的无限制中立空间的感觉。

More #


Q.E.D.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK