Linux+MCSM9+Docker 搭建我的世界Java版服务器,MC开服教程

Debian系统使用MCSManager9面板和Docker容器搭建Minecraft Java版私服的教程,本教程用的mohist1.18.2服务端,用其他服务端的也可以参考一下。

mohist支持MOD和插件。

视频教程:https://www.bilibili.com/video/BV1DF411N7Dv/

  • 其他版本我的世界服务器搭建教程:https://blog.zeruns.tech/tag/mc/
  • 各种Minecraft服务端介绍和下载:https://blog.zeruns.tech/archives/626.html
  • 高性价比和便宜的VPS/云服务器推荐: https://blog.zeruns.tech/archives/383.html

我的世界开服交流QQ群2:746189110

MC开服交流QQ频道:https://url.zeruns.tech/mc_qq

MCSM9介绍

分布式,稳定可靠,开箱即用,高扩展性,支持 Minecraft 和其他少数游戏的控制面板。

MCSManager 面板(简称:MCSM 面板)是一款全中文,轻量级,开箱即用,多实例和支持 Docker 的 Minecraft 服务端管理面板。

此软件在 Minecraft 和其他游戏社区内中已有一定的流行程度,它可以帮助你集中管理多个物理服务器,动态在任何主机上创建游戏服务端,并且提供安全可靠的多用户权限系统,可以很轻松的帮助你管理多个服务器。

准备

首先你得有台服务器(已经有的可以忽略),下面推荐一些:

  • 华为云:https://url.zeruns.tech/hwy2021
  • UCloud:https://www.ucloud.cn/site/active/kuaijie.html?invitation_code=C1x5E3EE29AA7B9
  • 天翼云:https://www.ctyun.cn/agent/#/invitation/10366809
  • 腾讯云每日秒杀:https://curl.qcloud.com/pvpzEIzN
  • 指点云5800X:https://www.awsl9527.cn/archives/967.html

其他性价比高的服务器推荐:https://blog.zeruns.tech/archives/383.html

各大云服务厂商 轻量应用服务器 性能评测对比,阿里云、腾讯云、华为云、Ucloud:https://blog.zeruns.tech/archives/675.html

如果你是新用户有优惠,建议能买多长时间就买多长时间,因为优惠价的服务器到期后续费很贵的,而且新用户优惠只能买一次,所以尽量买长时间点划算。

1.18版本内存占用和性能要求很高,最低4G内存起!!! 不要买低于4G的,之前老有人买个2G的服务器开1.18报错内存溢出,然后过来问我为什么开不了,真的很无语...

2核4G内存 5兆带宽的服务器大约可以同时在线1到5人,4核8G 10兆的服务器大约可以同时在线5到20人。

不要买1兆带宽的!!!1兆带宽最多一两个人玩,建议5兆起!!!

购买服务器后选择安装 Debian10或11 系统,然后用ssh登陆服务器。ssh客户端软件推荐putty或mobaxterm。

默认账号一般是:root 密码是你自己在购买时设置的,有些可能购买时没有设置密码的可以购买后在控制台重置密码。

连接服务器

下载安装并打开ssh客户端软件,ssh客户端软件推荐putty或mobaxterm。

在SSH客户端中输入服务器IP地址,然后点击打开。

如果弹出下图的警告就点

然后输入账号并按回车,账号一般默认为root,接着输入密码并按回车确定,输入密码时不会显示出来。

温馨提示:在SSH终端中按住鼠标左键选择文字,然后松开鼠标,再在空白处单击一下,这样就把选中的文字复制了;在SSH终端单击右键即为粘贴。

端口开放

面板需要 23333和24444 端口。

游戏服务器默认端口是 25565。

如果你使用阿里云,腾讯云或者其他云服务商,请进入控制台到防火墙安全组策略,放行以上端口

或者放行全部端口,入和出方向都要

关闭系统自带防火墙:

# 关闭防火墙,依次执行systemctl stop firewalld
systemctl disable firewalld
service iptables stop

安装面板

一行命令快速安装

wget -qO- https://gitee.com/mcsmanager/script/raw/master/setup.sh | bash
  • 脚本仅适用于 AMD64 架构 Ubuntu/Centos/Debian/Archlinux)
  • 执行完成后,使用 systemctl start mcsm-{daemon,web} 即可启动面板服务。
  • 使用 systemctl enable mcsm-{daemon,web}.service 来开启开机自启
  • 面板代码与运行环境自动安装在 /opt/mcsmanager/ 目录下。

配置文件目录: data/SystemConfig/config.json

用户数据文件目录:data/User/*.json

远程守护进程配置文件目录:data/RemoteServiceConfig/*.json

安装完成后访问 http://你服务器的ip:23333/ 即可进入面板。

  • 默认账号:root
  • 默认密码: 123456

Linux 手动安装

  • 若一键安装不起作用,则可以尝试此步骤手动安装。
# 切换到安装目录,没有此目录请执行 mkdir /opt/
cd /opt/
# 下载运行环境(已有 Node 14+ 可忽略)
wget https://npm.taobao.org/mirrors/node/v14.17.6/node-v14.17.6-linux-x64.tar.gz
# 解压文件
tar -zxvf node-v14.17.6-linux-x64.tar.gz
# 链接程序到环境变量中
ln -s /opt/node-v14.17.6-linux-x64/bin/node /usr/bin/node
ln -s /opt/node-v14.17.6-linux-x64/bin/npm /usr/bin/npm

# 准备安装目录
mkdir /opt/mcsmanager/
cd /opt/mcsmanager/

# 下载面板端(Web)程序
git clone https://github.com/MCSManager/MCSManager-Web-Production.git
# 重命名文件夹并进入
mv MCSManager-Web-Production web
cd web
# 安装依赖库
npm install --registry=https://registry.npm.taobao.org

# 返回上级目录
cd ..
# 下载守护进程(Daemon)程序
git clone https://github.com/MCSManager/MCSManager-Daemon-Production.git
# 重命名文件夹并进入
mv MCSManager-Daemon-Production daemon
cd daemon
# 安装依赖库
npm install --registry=https://registry.npm.taobao.org

# 安装nano编辑器
apt install nano

接着是配置 Systemd 服务

运行命令 nano /etc/systemd/system/mcsm-web.service 来编辑web面板的服务,输入下面的内容,然后按 Ctrl + O 再按回车来保存,接着按 Ctrl + X 来退出。

# /etc/systemd/system/mcsm-web.service[Unit]
Description=MCSM 9 Web

[Service]
WorkingDirectory=/opt/mcsmanager/web
ExecStart=/usr/bin/node app.js

[Install]
WantedBy=multiuser.target

运行命令 nano /etc/systemd/system/mcsm-daemon.service 来编辑web面板的服务,输入下面的内容,然后按 Ctrl + O 再按回车来保存,接着按 Ctrl + X 来退出。

# /etc/systemd/system/mcsm-daemon.service[Unit]
Description=MCSM 9 Daemon

[Service]
WorkingDirectory=/opt/mcsmanager/daemon
ExecStart=/usr/bin/node app.js

[Install]
WantedBy=multiuser.target

接着是启动服务和设置开机自启

# 重新载入变更
systemctl daemon-reload

# 设置开机自启
systemctl enable mcsm-{daemon,web}.service

# 启动服务
systemctl start mcsm-{daemon,web}.service

# 停止服务,正常情况不要运行此命令
systemctl stop mcsm-{web,daemon}.service

# 显示运行状况和日志
systemctl status mcsm-web.service
systemctl status mcsm-daemon.service -l

# 默认情况下,面板端会自动扫描 daemon 文件夹并且自动连接到守护进程。

如果登陆面板后没有看到守护进程,可以运行下面的命令来获取密钥,然后按下图所示手动添加到面板。

cat /opt/mcsmanager/daemon/data/Config/global.json

下图里的127.0.0.1应该改成 你服务器公网IP 或者 localhost

安装Docker

用apt包管理器来安装:

# 安装docker
apt install docker.io

# 设置docker开机自启和启动docker
systemctl enable docker && systemctl start docker

# 检查是否安装成功,若安装成功会显示 Docker version x.x.x
docker -v

若没安装成功就试试下面的安装脚本:

# 安装docker
curl -sSL https://get.daocloud.io/docker | sh

# 设置docker开机自启和启动docker
systemctl enable docker && systemctl start docker

# 检查是否安装成功,若安装成功会显示 Docker version x.x.x
docker -v

如果还是不行就尝试下面链接的手动安装教程吧

docker手动安装教程:https://url.zeruns.tech/docker

Docker换国内源

# 创建或修改 /etc/docker/daemon.json 文件
apt install nano && nano /etc/docker/daemon.json

# 然后输入下面内容:(输入完后按Ctrl+O,然后回车保存,接着按Ctrl+X退出编辑器)
{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

# 重启docker服务
systemctl restart docker.service

安装JDK镜像

进入面板,找到环境镜像管理点击进去

点击 新建镜像,接着点击 创建 OpenJDK 17 环境镜像(1.12.2及以下版本选JDK8;1.17选JDK16;1.18及以上选JDK17;1.16.5的需要JDK11,因为没有JDK11的选项,需要自己改一下,选那个JDK17然后将里面的17都改成11)

点击确定,然后等待构建完成

运行服务端

首先要去下载一个服务端核心(.jar 格式),我这里以mohist1.18.2为例。

mohist官网:https://url.zeruns.tech/Lesn7

mohist1.18.2百度网盘下载地址:https://url.zeruns.tech/QKjqk 提取码:ek8a

点击 应用实例→新建实例→Java版Minecraft服务端→上传单个服务端软件

自己输入一个想设置的名称,启动命令输入 java -server -jar {{ProgramName}} --install ,然后点下面的上传服务端软件选择上面下载的jar文件。

这个启动命令是安装命令,高版本的forge、mohist、fabric服务端需要先运行安装;官方服务端不需要先运行安装,可以直接运行,把命令后面的--install去掉就行。

等待上传完成后点击 前往编辑实例具体参数

然后 进程启动方式选择虚拟化容器,环境镜像选择 mcsm-openjdk:17,开放端口填 25565:25565/tcp,填好后点击右下角的保存。

接着到实例控制台点开启实例即可,等待安装完成,国内服务器有下载失败的概率。

如果下载安装失败的就下载下面链接的压缩包,这个压缩包我已经运行过安装了,把这压缩包上传到服务器然后解压,启动命令改成 bash run.sh,接着开启实例就行。

mohist1.18.2下载好库文件的压缩包:https://url.zeruns.tech/31Tgt 提取码:c45w

如果下载安装成功,点文件管理这里会出现run.sh文件,如下图所示

然后到实例设置那将启动命令改成 bash run.sh 保存,回答实例控制台再次开启实例即可。

如果出现这行信息就需要修改eula.txt文件同意一下eula协议。

点击 特定配置

然后点击 [通用] eula.txt 下面的浏览,将eula的 否 改成 ,然后点击保存配置,接着点击回到配置文件列表,回到控制台。

再次点击开启实例。出现Done则表示服务器开启成功。

点 特定配置→[通用] server.properties ,然后就可以修改服务器的设置,非正版用户记得将 在线正版验证 设为否,设置完成后要点保存。如果要修改端口,在这修改完配置文件后还得去实例设置那修改开放端口。

修改完要重启实例。

进入游戏

在游戏里点击添加服务器,输入你服务器的公网IP即可,如果改了端口,需要加上端口号。

推荐阅读

  • 高性价比和便宜的VPS/云服务器推荐: https://blog.zeruns.tech/archives/383.html
  • 使用NPS自建内网穿透服务器教程,带WEB管理:https://blog.zeruns.tech/archives/660.html
  • 怎样搭建个人博客:https://blog.zeruns.tech/archives/218.html
  • 如何搭建一个表白墙网站(LoveWall):https://blog.zeruns.tech/archives/634.html
  • 各大厂商云服务器性能评测对比:https://blog.zeruns.tech/archives/670.html
  • 我的世界服务器搭建教程:https://blog.zeruns.tech/tag/mc/

原文地址:https://cloud.tencent.com/developer/article/2160259

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 目录 连接 连接池产生原因 连接池实现原理 小结 TEMPERANCE:Eat not to dullness;drink not to elevation.节制
摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 一个优秀的工程师和一个普通的工程师的区别,不是满天飞的架构图,他的功底体现在所写的每一行代码上。-- 毕玄 1. 命名风格 【书摘】类名用 UpperCamelC
今天犯了个错:“接口变动,伤筋动骨,除非你确定只有你一个人在用”。哪怕只是throw了一个新的Exception。哈哈,这是我犯的错误。一、接口和抽象类类,即一个对象。先抽象类,就是抽象出类的基础部分,即抽象基类(抽象类)。官方定义让人费解,但是记忆方法是也不错的 —包含抽象方法的类叫做抽象类。接口
Writer :BYSocket(泥沙砖瓦浆木匠)微 博:BYSocket豆 瓣:BYSocketFaceBook:BYSocketTwitter :BYSocket一、引子文件,作为常见的数据源。关于操作文件的字节流就是 —FileInputStream&FileOutputStream。
作者:泥沙砖瓦浆木匠网站:http://blog.csdn.net/jeffli1993个人签名:打算起手不凡写出鸿篇巨作的人,往往坚持不了完成第一章节。交流QQ群:【编程之美 365234583】http://qm.qq.com/cgi-bin/qm/qr?k=FhFAoaWwjP29_Aonqz
本文目录 线程与多线程 线程的运行与创建 线程的状态 1 线程与多线程 线程是什么? 线程(Thread)是一个对象(Object)。用来干什么?Java 线程(也称 JVM 线程)是 Java 进程内允许多个同时进行的任务。该进程内并发的任务成为线程(Thread),一个进程里至少一个线程。 Ja
Writer :BYSocket(泥沙砖瓦浆木匠)微 博:BYSocket豆 瓣:BYSocketFaceBook:BYSocketTwitter :BYSocket在面向对象编程中,编程人员应该在意“资源”。比如?1String hello = "hello"; 在代码中,我们
摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 这是泥瓦匠的第103篇原创 《程序兵法:Java String 源码的排序算法(一)》 文章工程:* JDK 1.8* 工程名:algorithm-core-le
摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 目录 一、父子类变量名相同会咋样? 有个小故事,今天群里面有个人问下面如图输出什么? 我回答:60。但这是错的,答案结果是 40 。我知错能改,然后说了下父子类变
作者:泥瓦匠 出处:https://www.bysocket.com/2021-10-26/mac-create-files-from-the-root-directory.html Mac 操作系统挺适合开发者进行写代码,最近碰到了一个问题,问题是如何在 macOS 根目录创建文件夹。不同的 ma
作者:李强强上一篇,泥瓦匠基础地讲了下Java I/O : Bit Operation 位运算。这一讲,泥瓦匠带你走进Java中的进制详解。一、引子在Java世界里,99%的工作都是处理这高层。那么二进制,字节码这些会在哪里用到呢?自问自答:在跨平台的时候,就凸显神功了。比如说文件读写,数据通信,还
1 线程中断 1.1 什么是线程中断? 线程中断是线程的标志位属性。而不是真正终止线程,和线程的状态无关。线程中断过程表示一个运行中的线程,通过其他线程调用了该线程的 方法,使得该线程中断标志位属性改变。 深入思考下,线程中断不是去中断了线程,恰恰是用来通知该线程应该被中断了。具体是一个标志位属性,
Writer:BYSocket(泥沙砖瓦浆木匠)微博:BYSocket豆瓣:BYSocketReprint it anywhere u want需求 项目在设计表的时候,要处理并发多的一些数据,类似订单号不能重复,要保持唯一。原本以为来个时间戳,精确到毫秒应该不错了。后来觉得是错了,测试环境下很多一
纯技术交流群 每日推荐 - 技术干货推送 跟着泥瓦匠,一起问答交流 扫一扫,我邀请你入群 纯技术交流群 每日推荐 - 技术干货推送 跟着泥瓦匠,一起问答交流 扫一扫,我邀请你入群 加微信:bysocket01
Writer:BYSocket(泥沙砖瓦浆木匠)微博:BYSocket豆瓣:BYSocketReprint it anywhere u want.文章Points:1、介绍RESTful架构风格2、Spring配置CXF3、三层初设计,实现WebService接口层4、撰写HTTPClient 客户
Writer :BYSocket(泥沙砖瓦浆木匠)什么是回调?今天傻傻地截了张图问了下,然后被陈大牛回答道“就一个回调…”。此时千万个草泥马飞奔而过(逃哈哈,看着源码,享受着这种回调在代码上的作用,真是美哉。不妨总结总结。一、什么是回调回调,回调。要先有调用,才有调用者和被调用者之间的回调。所以在百
Writer :BYSocket(泥沙砖瓦浆木匠)一、什么大小端?大小端在计算机业界,Endian表示数据在存储器中的存放顺序。百度百科如下叙述之:大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加
What is a programming language? Before introducing compilation and decompilation, let's briefly introduce the Programming Language. Programming la
Writer :BYSocket(泥沙砖瓦浆木匠)微 博:BYSocket豆 瓣:BYSocketFaceBook:BYSocketTwitter :BYSocket泥瓦匠喜欢Java,文章总是扯扯Java。 I/O 基础,就是二进制,也就是Bit。一、Bit与二进制什么是Bit(位)呢?位是CPU
Writer:BYSocket(泥沙砖瓦浆木匠)微博:BYSocket豆瓣:BYSocket一、前言 泥瓦匠最近被项目搞的天昏地暗。发现有些要给自己一些目标,关于技术的目标:专注很重要。专注Java 基础 + H5(学习) 其他操作系统,算法,数据结构当成课外书博览。有时候,就是那样你越是专注方面越