前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >搭建自己的 Minecraft 服务器

搭建自己的 Minecraft 服务器

作者头像
云游君
发布2021-05-21 10:39:35
4.4K0
发布2021-05-21 10:39:35
举报
文章被收录于专栏:云游的小教程

About

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

Set up

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

Install Java

代码语言:javascript
复制
# 查看可获得的 java 版本
yum -y list java*
代码语言:javascript
复制
# 安装 java
yum -y install java-latest-openjdk
# ubuntu
# apt install default-jdk

Install Minecraft Server

安装 Minecraft 服务器版本

下载 MINECRAFT :JAVA 版的服务器

Download

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

http://mineplugin.org

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

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

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

配置可自行修改

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

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

代码语言:javascript
复制
sed -i.orig 's/eula=false/eula=true/g' eula.txt
# 再次运行
java -Xms512M -Xmx1024M -jar server.jar nogui

编写自动化脚本

代码语言:javascript
复制
nano /opt/minecraft/start-mc.sh

键入以下内容

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

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

需要开启新的 screen 会话。

代码语言:javascript
复制
# 若没有 screen,需先安装
# yum -y screen
screen -S mc
/opt/minecraft/start-mc.sh

加入自启动

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

代码语言:javascript
复制
nano /etc/rc.local

进入文件,加入以下内容

代码语言:javascript
复制
screen -dm -S mc /opt/minecraft/start-mc.sh
exit 0

Backup

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

Backup.sh

编写备份脚本

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

代码语言:javascript
复制
# /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

设置定时备份任务

代码语言:javascript
复制
vi /etc/crontab

键入以下内容

代码语言:javascript
复制
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

服务端执行

代码语言:javascript
复制
# 赋予管理权限
/op 用户名

Client

代码语言:javascript
复制
# 死亡不掉落
/gamerule keepInventory true

gamemode

更改游戏模式

代码语言:javascript
复制
# Example
# 改变红色组别所有玩家的游戏模式为创造模式
/gamemode creative @a[team=Red]

Params

Description

@p

距离最近的玩家

@r

随机玩家

@a

所有玩家

@e

所有实体

Params

Description

m

游戏模式

team

队伍

r

小于半径区域

rm

大于半径区域

type

实体种类

  • [r=R] 只选择以指令的执行处为中心,半径小于 R 的区块里的目标。
  • [rm=RM] 只选择以指令的执行处为中心,半径大于 RM 的区块里的目标。

scoreboard

代码语言:javascript
复制
/scoreboard teams add <队伍名称> [显示名称]
代码语言:javascript
复制
/scoreboard teams remove <队伍名称>
代码语言:javascript
复制
# 加入队伍
/scoreboard teams join <队伍名称> [玩家]
代码语言:javascript
复制
# 设置
/scoreboard teams option <队伍名称> <选项> <值>

Example:

代码语言:javascript
复制
/scoreboard teams option <队伍名称> color red
/scoreboard teams option <队伍名称> friendlyfire false
/scoreboard teams option <队伍名称> nametagVisbility hideForOtherTeams

Params

Description

Options

Default

friendlyfire

队友伤害

true/false

true

nametagVisbility

名称标签可见形式

never/hideForOtherTeams/hideForOwnTeam/always

always

deathMessageVisibility

死亡时如何显示死亡讯息

never/hideForOtherTeams/hideForOwnTeam/always

always

可选颜色

  • 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.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-02-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • About
  • Set up
    • Install Java
      • Install Minecraft Server
        • Download
      • 编写自动化脚本
        • 加入自启动
          • Backup
            • Backup.sh
        • Q&A
          • 登入失败:无效会话
            • 内网穿透
            • Command
              • Server
                • Client
                  • gamemode
                    • scoreboard
                    • 插件
                      • [Dragon Mounts 2 | 龙骑士]
                      • Reference
                      • 后话
                      • More
                      相关产品与服务
                      云开发 CloudBase
                      云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档