目录

Ubuntu搭建minecraft服务器

题记

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

我的服务器配置

  • Ubuntu系统
  • 2G内存
  • 1核CPU
  • 带宽1M(我在使用1.15.2的版本进行多人游戏时,需要升级带宽到2M,否则当玩家大于2人时就会出现频繁断线,甚至连接不上的情况)

服务器搭建

  • mkdir minecraft 新建一个名为minecraft的文件夹

  • cd minecraft 进入minecraft文件夹

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

  • wget https://s3.amazonaws.com/Minecraft.Download/versions/1.12.2/minecraft_server.1.12.2.jar 下载minecraft服务器,这里版本为1.12.2.

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

  • sudo apt-get install screen 安装screen,用于让minecraft在服务器后台运行。

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

1
2
3
4
5
6
7
8
[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 运行minecraft服务器。

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

本地客户端连接

在本地(我是windows10系统,使用的HMCL启动器),打开minecraft(注意版本要和服务器一样),点击Direct ConnectAdd Server可以存下ip地址,就不需要每次输入了),输入你服务器的ip地址。 示意图

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

xxxxxxxxx@xxxxxxx[id=<null>,name=xxxxx,properties={},legacy=false] (/xxxxxxxx:50786) lost connection: Disconnected

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

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

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

最后一步

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

  • screen -S mc 创建名为mc的session。
  • java -Xms1024M -Xmx2048M -jar minecraft_server.1.12.2.jar nogui启动服务器。

Screen的指令:

screen -ls 查看所有session,会打印出如后台的名称。

screen -r mc 会切换到名为mc的session中。

先按住ctrl+a,然后按d. 能够跳出当前的session,但是后台程序依然会继续运行。

exit严格来说这不是Screen的命令,而是Linux中退出shell的命令,但是screen中的会在你退出最后一个程序(通常就是shell)的时候自动关闭,所以可以用来彻底关闭session用。

追加mod

Note:我自己重新搭建了1.15.2版本的服务器,注意与上文1.12.2区分开,请选择你需要的版本.

下载Forge

官网下载地址: http://files.minecraftforge.net

下载相应版本的Forge,我自己下载的是forge-1.15.2-31.1.0-installer.jar

运行Forge

java -jar ./forge-1.15.2-31.1.0-installer.jar nogui --installServer

将下载好的jar包放在minecraft_server.1.15.2.jar所在目录,然后在服务器上输入上面的命令,然后就会经过漫长的下载过程,途中可能因为下载的资源在外网,所以会由于网络问题断开,多重复输入命令就能全部下载下来。

执行完毕之后会生成几个新的文件夹,和forge-1.15.2-31.1.0.jar文件。

运行服务端

java -jar forge-1.15.2-31.1.0.jar

使用这个命令就会让服务器运行了。

在客户端追加mod

我自己是HMCL的客户端,直接在线安装就很方便地安装上了。

客户端追加mod

装载mod

有些mod需要同时装在服务器和客户端(比如矿工的优势)上,有的只需要装在客户端上(比如Xaero地图)。

客户端将jar包放在.minecraft\mods目录下,服务器将jar包放在mods目录下即可。需要重启程序才能装载mod。

参考资料