题记

最近在b站刷了好几个游戏区up主更新了Minecraft(我的世界)的视频,心血来潮我也想玩一玩,依稀记得好像Minecraft可以装在远程,然后多人共同使用,查了一下同时联机人数为5或以下,内存需要512MB ,所以心血来潮在我的乞丐配置的服务器上建一个Minecraft服务器。我主要参照如何搭建一个“我的世界”服务器 - 快速指南进行搭建,这篇博客就来记录一下我搭建的过程。

我的配置

  • Ubuntu系统
  • 2G内存
  • 1核CPU

服务器搭建

  • mkdir minecraft

  • cd minecraft

  • 打开25565号端口,如果是阿里云服务器直接通过控制台的安全组就能配置。

  • wget https://s3.amazonaws.com/Minecraft.Download/versions/1.12.2/minecraft_server.1.12.2.jar

  • sudo apt install default-jdk 安装JDK,如果你的服务器执行javac -version命令,能够打印出javac版本号,则跳过此步。

  • sudo apt-get install screen

  • free -m查看内存(我的空闲内存只有986M(ㄒoㄒ))

​ total used free shared buff/cache available Mem: 1993 215 986 3 790 1601 Swap: 947 160 786

  • java -Xms1024M -Xmx2048M -jar minecraft_server.1.12.2.jar nogui

-Xms设置服务器最小内存 -Xmx是最大内存。

此时会报一个错,是正常的, 此时会生成一些文件,其中一个名为eula.txt。

[03:53:30] [Server thread/INFO]: Starting minecraft server version 1.12.2
[03:53:30] [Server thread/INFO]: Loading properties
[03:53:30] [Server thread/WARN]: server.properties does not exist
[03:53:30] [Server thread/INFO]: Generating new properties file
[03:53:30] [Server thread/WARN]: Failed to load eula.txt
[03:53:30] [Server thread/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
[03:53:30] [Server thread/INFO]: Stopping server
[03:53:30] [Server Shutdown Thread/INFO]: Stopping server
  • sed -i.orig 's/eula=false/eula=true/g' eula.txt 执行这个命令,来修改里面的内容,相当于安装软件时勾选同意协议的意思。

  • java -Xms1024M -Xmx2048M -jar minecraft_server.1.12.2.jar nogui

一切正常的话会显示 [04:05:03] [Server thread/INFO]: Done (4.439s)! For help, type “help” or “?“。此时服务器就在运行了。

注意,如果内存设置的不好的话很容易出现宕机的错误:

比如我设置最小内存为512M,最大内存为1024M时出现这个错误:

[03:58:04] [Server thread/WARN]: Can’t keep up! Did the system time change, or is the server overloaded? Running 2380ms behind, skipping 47 tick(s)

本地客户端连接

在本地,打开minecraft(注意版本要和服务器一样),点击Direct Connect,输入你服务器的ip地址。

示意图
示意图

如果此时你没有连上,且你的服务器显示如下的信息:

xxxxxxxxx@xxxxxxxid=,name=xxxxx,properties={},legacy=false lost connection: Disconnected

这是因为非正版玩家被设定成禁止进入了。

此时在服务器上修改server.properties文件,将online-mode=true修改成online-mode=false.

再次启动服务器之后,在本地就可以进入了!

最后一步

正式运行服务器,在之前的步骤中,启动服务器之后,窗口不能关闭,否则服务器就会断开,现在让服务器一直开启。

  • screen -S mc创建名为mc的窗口
  • java -Xms1024M -Xmx2048M -jar minecraft_server.1.12.2.jar nogui

参考资料