云服务器/树莓派搭建我的世界Minecraft多人游戏服务器


前言

  这是一篇基于云服务器或者树莓派搭建我的世界多人游戏服务器的文章,记录了一些笔者在搭建过程中遇到的问题及解决方法。


一、树莓派的配置(云服务器搭建跳过此部分)

1.准备工作

以无显示器、无网线配置树莓派为例
需要准备:

  1. 树莓派
  2. SD卡(一张4G以上的SD卡,最好是高速卡,推荐Class10的卡,卡的速度直接影响树莓派的运行速度,笔者建议最好容量16G以上,否则后续开发会使用经常不够用。)
  3. 读卡器
  4. 电源
  5. 树莓派散热片及外壳

  这里以树莓派4B 4G版本为例,首先将SD卡插入读卡器连接至电脑,使用SDFormatter格式化内存卡。
在这里插入图片描述

在树莓派官网下载系统镜像:https://www.raspberrypi.org/software/operating-systems/#raspberry-pi-os-32-bit
在这里插入图片描述
第一个是树莓派系统带图形界面及推荐的软件
第二个是树莓派系统带图形界面
第三个是树莓派系统不带图形界面
需要注意的是这三个系统全部都是32位系统(2021-2-8),如果需要安装64位系统可以在https://www.raspberrypi.org/forums/viewtopic.php?f=117&t=275370安装
这里以64位系统为例,下载镜像后使用Win32DiskImager进行烧录
在这里插入图片描述
  选择映像文件,点击写入等待后即可。烧录后看到SD卡只有几十M为正常现象,windows系统看不到linux系统的磁盘分区。
由于笔者没有显示器及网线因此采用配置SD卡连接wifi并开启SSH服务。
在在SD卡根目录新建一个名为wpa_supplicant.conf文件,编辑写入以下内容:

country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
 
network={
  ssid="你的WIFI名"
  psk="WIFI密码"
}`

在SD卡根目录新建一个名为SSH的空白文件(无文件名后缀)即可开启SSH服务。
将SD卡插入树莓派中,上电启动,稍事等待可以在路由器控制界面查看到树莓派ip地址。

2.远程连接树莓派

  这里以PUTTY为例,在putty官网:https://www.chiark.greenend.org.uk/~sgtatham/putty/
下载64bit putty.exe文件。
在这里插入图片描述
运行后在Host Name处填写在路由器控制界面看到的ip地址,点击open。在这里插入图片描述
用户名:pi
密码:raspberry
无法连接可能是SSH服务未开启
登录时填写密码不显示为正常现象
登陆后可以用指令更改密码

sudo passwd pi

按照提示输入两次密码即可
在pi用户下不能对一些文件进行读写操作,因此需要进入root用户
更改root用户密码并进入root用户

sudo passwd root
sudo passwd --unlock root
su root

这里第二句是解锁root用户,第三句是切换为root用户。

3.更换源及开放端口

  需要将软件源更换至国内。
第一步:

 sudo vi  /etc/apt/sources.list

按i进入编辑模式用#注释掉原有的软件源
如果是32位系统用

deb http://mirrors.aliyun.com/raspbian/raspbian/ buster main contrib non-free rpi
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ buster main contrib non-free rpi

如果是64位系统用

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free

后按ESC键输入:wq保存后退出。
第二步:
再用同样的方法

 sudo vi  /etc/apt/sources.list.d/raspi.list

注释掉原有内容写入

 deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui

然后

 sudo apt-get update

出现Done说明换源成功。
  最后需要开放端口25565(这个端口是MC服务器的默认端口,当然在MC服务器的配置文件中可以改)。以后如果要开放一些其他端口也可以类似于这样做。

sudo ufw allow 25565

4.固定树莓派的ip

  在使用树莓派的过程中,DHCP往往会自动分配树莓派的IP,因此树莓派的IP地址并不是固定的,那么每次在远程登录树莓派前都需要查看一下树莓派的IP地址,非常麻烦。因此,我们手动给树莓派设定一个静态IP地址后,树莓派的IP地址就是固定的了。
首先安装文本编辑器vim

sudo apt-get install vim

这个命令是安装vim编辑器,它是vi编辑器的升级版,更人性化些。
在树莓派终端输入:

sudo vim /etc/dhcpcd.conf

进入文件后找到

# Example static IP configuration:
#interface etho
#static ip_address=
#static ip6_address=
#static routers=
#static domain_name_servers=

将这几行的注释符号#删除,如果是固定树莓派使用网线时的IP,需要将第三行static ip_address后面改为使用网线时的树莓派IP,第五行static routers修改为网关IP。
如果固定树莓派使用无线时的IP,你需要将第二行interface后的eth0改为wlan0,将第三行static ip_address静态IP改为连接无线时的树莓派IP,第五行static routers修改为路由器IP。
修改完成后按ESC键,输入:wq保存并退出。
执行命令

ifconfig

会发现IP地址已经发生改变。接着测试树莓派是否能联网:

sudo apt-get update

另外,手动设置的静态IP不能跟路由器DHCP所自动分配的IP重复,否则树莓派就有可能无法正常联网。

5.winscp使用

  winscp可以进行远程操作文件传输文件,相较于命令行而言更加友好。
另推荐winscp可以向树莓派发送文件,需要root用户登录。
在这里插入图片描述
主机名填写树莓派ip,用户名用root用户登录。
如果出现:WinSCP 无权访问。 错误码:3 服务器返回的错误消息:Permission denied

sudo vi /etc/ssh/sshd_config

同样按i编辑

如果有这段,将其注释:
#PermitRootLogin without-password
添加如下两行
PermitRootLogin yes 
StrictModes yes  

后按ESC键输入:wq保存后退出。
重启ssh服务,即可root用户登录winscp了。

service sshd restart

6.远程连接图形桌面

  看腻了黑乎乎的命令行,做到这里可以进入图形桌面了,没有安装图形桌面可跳过。
用windows自带远程桌面连接进入树莓派图形界面:
首先安装xrdp(建议在换源后进行,不然下载速度奇慢)

 sudo apt-get install xrdp

搜索mstsc在这里插入图片描述
输入树莓派ip后连接即可。

二、云服务器配置(树莓派搭建跳过此部分)

购买服务器

  首先肯定是购买一台云服务器,市面上的云服务供应商有很多,可以挑选正在做活动的购买即可。
这里以阿里云为例:进入阿里云官网:https://www.aliyun.com/
注册账号实名认证后点击最新活动查看活动。没有优惠活动则选择产品->热门产品->云服务器ECS
在这里插入图片描述
配置方面按照需求购买,镜像选择ubuntu或者debian
  购买完成后点击控制台->左上角三条杠->云服务器ECS->实例与镜像->实例(上方地域要选择购买的地域,不然看不到服务器)
然后可以看到服务器的公网ip地址,需要重置root密码,之后点击远程连接输入账号密码登录即可。
  之后需要进入管理->安全组->配置规则,我们要做的就是开放25565端口(这个端口是MC服务器的默认端口,当然在MC服务器的配置文件中可以改)。以后如果要开放一些其他端口也可以类似于这样做。点击添加安全组规则,然后如图所示填上去然后点击确定就可以了。
在这里插入图片描述

也可以使用putty等工具远程连接。

三、我的世界环境搭建

1.准备工作

可能用到的软件

sudo apt-get install screen

这个命令是指安装一个叫做screen的软件,用于在远程连接断开的时候不至于服务器关闭。

配置java环境

首先先安装一些必备的软件:

sudo apt-get install default-jdk

sudo apt install openjdk-8*

第一个命令是指安装java(MC必备);如果需要安装mod则用第二条命令安装版本较低的java
如果安装较低版本java失败可以去官网:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
下载.tar.gz格式的文件。这是一个压缩包。可以远程连接桌面解压压缩包。
利用vim在/etc/profile.d/目录下新建一个jdk的配置文件java-env.sh

vim /etc/profile.d/java-env.sh

写入

export JAVA_HOME=/data/service/jdk
export PATH=$PATH:$JAVA_HOME/bin

JAVA_HOME后面的路径为压缩包解压的目录
执行刚修改的初始化文件命令

source /etc/profile.d/java-env.sh

查看当前jdk安装的路径命令,显示前jdk的安装路径

echo $JAVA_HOME

运行查看命令

java -version

显示java版本号,说明java环境已安装成功。

建立新用户

下面要创建一个文件夹并将权限给新用户,不能一直用root用户啊。
云服务器需要创建新用户名为mc

useradd mc
passwd mc

树莓派可以直接使用pi用户,创建完用户后需要建立游戏文件存放的文件夹并移交权限。

mkdir /srv/mc_server
ls -l /srv
chown -R pi:pi /srv/mc_server
chown -R mc:mc /srv/mc_server
ls -l /srv

三、四条命令中树莓派可以执行第三条命令,云服务器执行第四条命令。
第一个命令用于创建文件夹;第二个和第五个命令用于查看刚创建的文件夹的详情信息;第三、四个命令用于把原来root用户的所有权变成新用户,-R参数用于把这个目录下的所有文件及文件夹地所有权变成新用户的。因为是root用户创建的,所以一开始的所有权也是root用户的。(当然,在任何情况下root用户都可以操作这个文件夹,因为它是管理员)。
第二和第四个命令是一样的,但是输出结果却不同,表明所有者已更改。

2.我的世界原版服务器配置

  打开这个网站https://mcversions.net/
可以看到各个版本的MC都有,从左到右有四列,分别是:稳定版、快照、beta版和alpha版,推荐选择稳定版(如果要尝试新功能则可以选择其它版本,正常开服的话选稳定版就可以了)。找到你想下载的版本,点击"Download"(比如1.12.2),之后弹出一个页面,要你选择"Download Server Jar"还是"Download Client Jar",由于我们是开服,所以选择"Download Server Jar"。复制到它的下载地址。

cd /srv/mc_server
mkdir <MC版本>
cd <MC版本>

/srv/mc_server目录下建立名为版本号的文件夹,便于管理。
其中第一个命令用于确保你的工作目录是mc_server,不然等下的命令会出错。
第二个命令用于新建一个文件夹(文件名是版本号),推荐这样做,这样你可以在不同时间运行不同版本的MC服务器。
第三个命令把工作目录切换到刚创建的目录。

wget <复制到的下载地址>
ls
mv <ls命令查看到的.jar文件> minecraft_server.<MC版本>.jar

可以用wget加复制的下载地址下载,
也可以直接下载后用winscp将文件传输到文件夹下。
第一个命令用于下载MC运行服务器的文件。
第二个命令用于查看当前工作目录下的文件,一般情况下可以看到多了一个server.jar
第三个命令把下载到的文件改个名字。注意,这是必须的,要不然配置mod的时候会出错,一定要每一个字符都相同!!!比如1.12.2版本就是minecraft_server.1.12.2.jar,如果不配置mod这个名字可以随意。
在开服之前可以通过free命令来查看现在还有多少内存:

free -h

Mem:下的available就代表着现在可用的内存空间。

然后开启服务器:

java -Xms256M -Xmx512M -jar minecraft_server.<MC版本>.jar nogui

java命令的第一个参数-Xms256M用于指定初始内存是256M(当然,这个参数可有可无),第二个参数-Xmx512M用于指定最大内存是512M,服务器内存小的同学两个参数可以改小一点(别太小啦)注意最大内存别超过刚才用free命令看到的available内存(也别刚好,留几十兆或多一点,要不然都会内存溢出)。-jar参数用于指定要启动一个.jar包(jar文件就是java编程语言的代码文件和各种多媒体文件的集合)。nogui参数表示不开启图形界面。
然后等一会,发现会有报错信息,用ls命令可以看到多了一些文件(其中有eula.txt),之后输入命令打开eula.txt

vim eula.txt

打开eula.txt后可以看到最后一行写着eula=false,表示未同意用户许可,现在用键盘上的上下左右把光标定位到最后一行的最后一个字符,然后按a键,可以看到左下角变成了-- INSERT --,表示现在可以编辑文本了。删除false,加上true。然后按ESC键返回,输入:wq再回车就保存退出了。

之后再执行一次开服的命令(PS:可以用键盘上的上下键输入之前的命令,文件名输入到一半可以按TAB键来补齐),等几十秒钟可能会看到一些警告提示,可以忽略,之后会有加载地图的进度。完成之后它会提示你已完成。现在输入stop然后回车关掉服务器,我们来配置服务器配置文件。

vim命令打开当前目录下的server.properties文件(可以用ls命令查看),如果要在文件中查询指定字符,可以输入按下ESC之后输入/<你要查找的文本>,用n搜索下一个,用N搜索上一个。这里推荐一些要改的设置:

参数名及默认值说明
allow-flight=false允许玩家在安装添加飞行功能的mod前提下在生存模式下飞行。允许飞行可能会使恶意破坏者更加常见,因为此设定会使他们更容易达成目的。在创造模式下无作用false - 不允许飞行。悬空超过5秒的玩家会被踢出服务器。true - 允许飞行。玩家得以使用任何能飞行的mod飞行。
difficulty=0游戏难度:0-和平(peaceful),1-简单(easy),2-普通(normal),3-困难(hard)
gamemode=0默认游戏模式:0-生存(survival),1-创造(creative),2-冒险(adventure),3-观察(spectator)
level-seed=生成的地图种子,只有在新建地图之后才有用
level-name=生成的地图名称,填上之后会新建一个地图,这时可以指定level-seed
max-players=20最大玩家数量,可以根据自己需求来改(小服务器别太大)
motd=设置在连接服务器页面的个性化提示语,让你的好友马上就能知道这是你的服务器
online-mode=true检查玩家是否为正版用户,所以设置为false(如果为true,那么盗版用户进不了服务器)
op-permission-level=4设置op(MC游戏里的管理员)的权限等级,最好设置为2(为2可以使用单人游戏里的所有命令,为4则可以指定op,关闭服务器等),为2只有远程连接到了服务器才可以设置
view-distance=10默认加载区块半径,以服务器性能而定

更多设置参考:https://minecraft-zh.gamepedia.com/Server.properties
基本配置就完了,然后输入开服指令就可以开服了!
但是,在直接开服的情况下打开MC然后连接到自己的服务器,这当然可以,但是你一旦关掉远程连接窗口MC服务器也会关掉,这时候screen就派上用场了!输入指令:

screen -ls
screen -S mc
screen -ls

第一和第三个命令用于查看当前有哪些screen窗口;第二个命令用来新建并进入一个叫做mc的screen窗口。在进入了一个窗口之后就可以输入开服指令了!那和正常开服有区别吗?当然有!这时按下Ctrl + A + D或输入screen -d(如果开服了用快捷键,或者直接关闭远程连接窗口也行)就会退出screen窗口,然后再用screen -ls命令可以看到刚才的mc窗口还在!!!这时候打开MC就可以正常连接。那还要进入screen窗口怎么办?输入screen -r <窗口名>就可以了。

提示:在开服窗口中可以输入/op <玩家名>用来指定MC游戏中的管理员。输入/deop <玩家名>可以取消一个玩家的op权限。当然也可以在这里输入单人游戏中的所有指令。

3.我的世界mod版服务器配置

  在原版服务器的基础上可以安装mod以提升趣味性。出于树莓派或云服务器性能考虑,不能选用太多或太吃性能的模组。
forge官网:https://files.minecraftforge.net/复制所安装的原版mc版本号对应的forge的下载链接。
在原版游戏的文件夹下使用wget指令

wget <复制到的下载链接>
ls
mv <ls命令查看到的.jar文件> minecraft_forge.<MC版本>.jar

这里也可以下载到电脑上用winscp向服务器传输。
然后开启服务器:

java -Xms256M -Xmx512M -jar minecraft_forge.<MC版本>.jar nogui

第一次运行会失败,这是需要将电脑上的.minecraft文件夹下的libraries文件夹用winscp放入服务器的文件夹就好了,但是记住一定要是对应版本的。
然后再次开启服务器:

java -Xms256M -Xmx512M -jar minecraft_forge.<MC版本>.jar nogui

出现Done就说明开服成功了,此时目录下会再生成一个叫做mods的文件夹,顾名思义,它是用于存放你想要加载进服务器的mod的

最后一步,把你想要玩的mod下载到mods文件夹,重启forge进程,你的mod服务器就搭建完成了。
可以用同样的方法screen让后台运行进程。

四、内网穿透

  如果你是云服务器就不用看这里了,有公网ip可以直接看第五步。
树莓派需要使用内网穿透,才可以实现公网访问,让小伙伴们也加入服务器一起玩。
这里以sakura frp为例,官网:https://www.natfrp.com/
注册后进入管理面板。
在软件下载中选择自己的树莓派系统版本号,复制下载链接

cd /srv
mkdir frpc
cd frpc
wget <复制的下载链接>
ls
mv <ls命令查看到的文件> frpc
chmod +x frpc

前三条命令用于创建并进入存放frpc的文件夹,第四条命令是下载frpc,第六条命令是更改文件名,便于输入指令,第七条命令赋予权限。
在同目录下新建文件frpc.ini
选择创建隧道,穿透节点选择离自己近的,最好选择多线。本地地址填写树莓派ip地址,端口写80,点击确认创建。在隧道列表中点配置文件,复制’其他版本的 frpc 使用下面的配置‘下面的内容到frpc.ini中(这一步建议用winscp进行)。
接下来运行文件,./frpc,即可登录成功。

./frpc

成功后在管理面板查看地址及端口号,就可以通过多人游戏连接。

五、客户端配置

  这里推荐使用hmcl启动器:https://www.minecraftforum.net/forums/mapping-and-modding-java-edition/minecraft-tools/1265720-hello-minecraft-launcher-2-6-0-4-forge-liteloader
在版本列表中安装服务器安装的同版本游戏,如果是mod服务器也需要安装对应的forge和mod。hmcl可以一键安装非常方便在这里插入图片描述
下载源选择:我的世界中文论坛
安装完成后进入游戏
在这里插入图片描述

选择多人游戏,选择添加服务器。服务器地址填写公网ip地址或内网穿透的地址,刷新后就可以进入游戏了。


总结

这就是如何在云服务器/树莓派搭建我的世界服务器的流程,如果发现文章中出现错误,欢迎留言指正。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值