开发者社区> 守望时空33> 正文

Linux服务器搭建Minecraft原版/Mod服务器详细教程

简介: Linux服务器搭建Minecraft原版/Mod服务器详细教程
+关注继续查看

Minecraft(我的世界)是一款非常好玩的游戏,其多人联机玩法,更是增加了许多乐趣。不过我们应当如何搭建服务器,才能和我们的小伙伴们一起玩呢?

今天我就来介绍一下,如何搭建Minecraft原版或者模组服务器。

1,准备

首先,我们需要购买一台Linux服务器,建议选择国内节点,延迟会低很多。

然后下载安装远程服务器管理软件FinalShell

2,服务器安装Java运行环境

说在前面的是,不同版本的Minecraft服务端需要使用的Java版本也可能有所不同。不过大多数使用Java 8即可。选择正确的Java版本或者jvm可以减少内存占用,提高CPU效率。

当然这里做一个推荐。

原版服务器:

  • 1.11.2版本及其以下:使用​Oracle JDK8​或者​Alibaba Dragonwell 8
  • 1.12版本及其以上:使用​Alibaba Dragonwell 11​或者​Alibaba Dragonwell 17

Forge服务器:

  • 1.12.2版本及其以下:使用​Oracle JDK8​或者​Alibaba Dragonwell 8
  • 1.13版本及其以上:使用​Alibaba Dragonwell 11

上面建议已经提供了各个Java下载地址,建议下载压缩包形式,下载好Java之后,将其上传至服务器解压或者安装,并进行JDK环境变量配置,环境变量配置可以看这个博客:链接

配置完成,断开重连服务器,输入命令:

java -version

有版本信息输出则成功:

image

在此Java配置就完成了!

如果想进一步了解不同的JDK对Minecraft服务端性能影响可以参考:文章

3,开服

到这里就可以启动Minecraft服务器了!这里我将分为原版和Forge模组服务器分别讲解。

(1) 原版

MCVersions下载你想要的版本的服务端核心,在网站左侧稳定版找到你想要的版本点击Download(我下载1.12.2版本):

image

进入下载页面,点击下载Server jar下载服务端核心:

image

然后将下载的jar文件上传至你的服务器的某个文件夹下,然后使用cd命令进入该文件夹(一定要使用cd命令进入!)

我下载文件为server.jar,上传并cd进所在文件夹之后执行命令启动服务端:

java -jar server.jar nogui

也可以加上jvm参数限制运行内存:

# 限制最小内存为256MB,最大内存为1024MB
java -Xms256M -Xmx1024M -jar server.jar nogui

第一次启动会失败,因为需要你同意一下EULA协议,刷新目录可见当前目录生成了个eula.txt

image

修改里面的falsetrue

image

然后重新执行上述命令,即可启动服务端,稍等片刻,最后显示 done! 字样说明启动成功:

image

不过因为是第一次启动,我们仍然需要修改一些配置才能玩,所以先输入stop停止服务端。

刷新目录,发现已经生成了很多文件,找到server.properties文件,这个是服务端配置文件,我们需要进行一些修改,里面内容如下:

image

上面的online-mode一定要改为false否则非正版玩家无法进入。

其余根据实际情况配置,端口的话即可也要配置一下服务器防火墙开放对应端口。

再次执行启动命令:

java -jar server.jar nogui

等待启动完成即可!

然后打开游戏->多人游戏->添加服务器(或者直接连接),地址填:你的服务器外网地址:服务器端口

然后就可以进入游戏了!

(2) Forge模组服务器

Forge官网下载你想要的版本的Forge,下载installer版(还是1.12.2为例):

image

得到一个jar文件,将其上传至服务器某个目录下,并使用cd命令进入该目录,执行安装命令:

java -jar "forge-installer文件名.jar" --installServer

例如我下载的文件文件名为forge-1.12.2-14.23.5.2855-installer.jar,那么我就使用cd命令进入其目录,执行:

java -jar "forge-1.12.2-14.23.5.2855-installer.jar" --installServer

然后它就开始下载相应的依赖库,需要等一会,因为是从外网下载因此可能很慢或者失败,可以多试几次。

如果一直下载不成功且你有代理的话,可以在执行Forge Installer时通过jvm参数指定代理:

# 例如:java -Dhttp.proxyHost="127.0.0.1" -Dhttp.proxyPort="1080" -Dhttps.proxyHost="127.0.0.1" -Dhttps.proxyPort="1080" -jar "forge-1.12.2-14.23.5.2855-installer.jar" --installServer
java -Dhttp.proxyHost="http代理地址" -Dhttp.proxyPort="http代理端口" -Dhttps.proxyHost="https代理地址" -Dhttps.proxyPort="https代理端口" -jar "forge installer文件" --installServer

最后出现successfully字样则成功:

image

刷新目录,我们发现会多出一个文件名形如forge-x.x.xx-xxx.jar的文件,这个就是主要的forge服务端文件,待会需要执行它启动。(如果是1.7.10版本或者低版本的forge那么这个主服务端文件名应该是forge-x.x.xx-xxx-universal.jar的形式):

image

我们可以先删除installer的jar文件和log,因为用不着了:

image

然后使用命令启动forge服务端,例如我这个1.12.2版本的:

java -jar "forge-1.12.2-14.23.5.2855.jar" nogui

第一次启动也会失败,这个和上面原版服务器一样,去同意一下eula就行。

可见启动命令也差不多的,都是执行相应的jar文件,只不过这里执行的是forge服务端文件,同样可以向上面一样加上jvm参数限制内存。

修改了eula之后再启动,出现done即成功:

image

还是和上面原版服务器一样,stop停止,找到配置文件server.properties,修改online-modefalse,其余按需修改。

这个时候我们发现已经生成了mods文件夹,我们就可以把模组文件上传至这个文件夹。

需要注意的是,一些模组例如工业2中一些东西需要自然生成,但是刚刚已经生成了世界了,这个时候我们可以先删除世界数据文件夹world(平时也可以用这个方法重新生成世界),待会启动服务端时重新生成:

image

这个时候配置完配置文件和mod,以及删掉世界后就可以重新执行上述命令启动服务端了,启动完成就可以打开游戏加入了!

不过有一个问题,当我们关闭FinalShell远程窗口会话之后,服务端也跟着终止了

我们需要借助screen软件使其后台运行。

首先安装screen

sudo apt install screen

然后新建一个名为mc的窗口:

# screen -S 新窗口名
screen -S mc

这个时候你就进入了这个新窗口了,这个窗口和我们远程会话进程是分离的,在这个窗口中,使用cd命令进入服务端核心所在文件夹并执行我们上面启动服务端的一系列操作即可。

在这个新窗口启动服务端之后,关闭FinalShell,服务端仍然还在运行,我们就可以正常进入游戏。

以后再连接服务器,可以使用screen命令再进入我们的服务端的命令窗口对服务端进行操作:

# screen -r 窗口名,进入窗口
screen -r mc

4,总结

看起来Minecraft开服的步骤很多,其实并不难,总结起来就是:运行服务端 -> 同意eula -> 第一次启动 -> stop -> 修改配置(加mod,删world) -> 再次启动

这样就完成了初步配置。

以后关闭服务端就是进入服务端运行的screen窗口,执行stop命令停止即可。

再启动只需使用java -jar命令运行服务端/Forge服务端核心jar文件即可。

如果想给你的MC服务器套上一个域名可以参考:文章

附上文一些文件备用下载地址(提取码都是2333):

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux服务器还有漏洞?建议使用 OpenVAS 日常检查!
Linux服务器还有漏洞?建议使用 OpenVAS 日常检查!
42 0
一台linux服务器最多能支持多少个TCP连接?(要区分客户端还是服务端)
一台linux服务器最多能支持多少个TCP连接?(要区分客户端还是服务端)
67 0
Linux 使用及配置 Samba 客户端访问Samba服务器
Linux 使用及配置 Samba 客户端访问Samba服务器
37 0
SpringBoot怎么获取到上传到Linux服务器(非项目内)的图片
SpringBoot怎么获取到上传到Linux服务器(非项目内)的图片
44 0
linux下fork函数创建父子进程的目的,模拟服务器与客户端通信
linux下fork函数创建父子进程的目的,模拟服务器与客户端通信
17 0
Linux:查看服务器信息,CPU、内存、系统版本、内核版本等
Linux:查看服务器信息,CPU、内存、系统版本、内核版本等
119 0
原来是Gson导致,本地和linux服务器不同的环境导致Date转换出现问题:Invalid time zone indicator ‘ ‘
看到报错日志,第一反应就是,date数据的问题,同时又能发现全是和gson相关 结合报错行数的代码,盲猜就是gson对时间处理的问题了 于是寻找解决方法
75 0
QGS
linux巡检服务器信息
记linux巡检服务器信息
34 0
修改Linux服务器时间的命令
修改Linux服务器时间的命令
44 0
如何在 Linux 服务器 部署 JavaWeb 程序?
如何在 Linux 服务器 部署 JavaWeb 程序?
19 0
+关注
守望时空33
业余Java开发者。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
网站/服务器取证 实践与挑战
立即下载
固守服务器的第一道防线——美联集团堡垒机的前世今生
立即下载
机器学习在大规模服务器治理复杂场景的实践
立即下载