基于Windows 7(本地)和CentOS7.6(云端)的Minecraft服务器(无Forge/有Forge)搭建方法
炎炎夏日中想和小伙伴们开黑的同学可以进来看一下了,本教程教你搭建基于两个平台的Minecraft服务器,这里我以Minecraft 1.11.2版本为例给大家讲解搭建流程。其中有Forge版本可以加入mods。
一、Windows下的Minecraft纯净(无Forge)服务器搭建
1.获取服务器文件
首先我们先去网上下载JAR服务器文件minecraft_server.1.11.2.jar。不能访问国外网站的同学,可以去一些网盘分享网站搜索,一般都可以找得到这个文件。网盘链接
2.编写启动脚本
打开记事本,输入下列代码后保存在和服务器文件同一个目录下:
@echo off
java -Xms1024m -Xmx1024m -jar minecraft_server.1.11..jar nogui
这个脚本中,“java”表示运行javaw.exe,系统会自动在你的环境变量的path中寻找包含javaw.exe的目录,后面的参数表示一些限制条件,其中“Xms1024m”表示堆内存初始值为1024MB,“Xmx1024m”表示堆内存最大值为1024MB(这两个值可根据大家的电脑配置酌情更改即可),“-jar”表示运行jar包,“nogui”是jar包中的main方法的参数,表示不以图形界面运行。
3.修改配置文件
将启动脚本更换后缀名为".bat",双击启动:
这时会有一个黑框一闪而过,内容是这样的:
第三行的意思是说我们需要同意EULA协议才能启动我们的服务器。执行完启动脚本之后,我们发现文件夹下多了个“log”文件夹和两个文件,其中一个就是eula.txt文件。我们双击打开eula.txt文件,将eula=false改为eula=true,保存退出。
重新启动脚本,这时又弹出了刚才的黑框,不过这次不再是一闪而过了。如果看到最后一行的“Done”那么表示服务器创建成功了:
打开Minecraft 1.11.2客户端,选择“多人游戏”->“添加服务器”,服务器地址中输入"localhost:25565"(端口号可在server.properties中更改)。选中我们的服务器,点击“加入服务器”,却发现这样的提示:“无法连接至服务器”,“登入失败:无效的会话(请尝试重启你的游戏)”。
切换到服务器,发现有一条登录的消息,但是该消息中id的值是空的:
原来,Minecraft服务器默认开启了正版客户端验证,我们的客户端一般都是盗版的,所以服务器验证不通过,自然就不能够登录了。
在服务器文件夹下,找到server.properties,使用任意文本编辑器打开:
找到第33行,将online-mode=true改为online-mode=false,保存退出:
要使新配置生效,我们要切换到服务器的黑框,输入“stop”,回车后服务器就将数据保存好后安全关闭。再次双击打开我们的启动脚本重新打开服务器,这次就能连接得上我们的服务器了。
二、Windows下的Minecraft Forge服务器搭建
第一步创建的服务器是不能添加我们喜欢的MOD的,要想添加MOD,我们要换一个服务器。
1.获取Forge服务器文件
浏览器打开https://files.minecraftforge.net ,下载下图中的两个文件:forge-1.11.2-13.20.1.2588-installer-win.exe,forge-1.11.2-13.20.1.2588-universal.jar。其中exe文件是可选的,jar文件是必须要下载的。
说明一下两个文件的用途:exe文件负责下载libraries文件夹的内容,jar文件是我们新服务器文件。
没下载exe文件的同学,可以直接下载libraries文件,这里分享一个MCBBS上的整合包http://zsn741656478.ys168.com,下载对应版本的libraries即可。
下好之后的文件应该是这样的:
其中minecraft_server.1.11.2.jar是上一步我们下载的服务器,这里我们也要把它放在这个目录下。
下载了exe文件的同学看这一步:
双击打开exe文件,选择“Install server”,勾选Mercurius,选择服务器文件夹,点击确定。
等待后台下载对应版本的libraries即可。
程序下载完成后,我们可以看见服务器文件夹下多了一个libraries和mods文件夹。
没有下载exe文件的同学,直接把libraries文件解压到当前目录也可以:
当服务器文件夹下有了libraries文件夹之后我们就开始下一步了(mod文件夹不用管)。
2.编写启动脚本
到了这一步就和刚才配置服务器的步骤一模一样了。打开记事本输入以下指令,不过注意的是这次运行的jar文件是我们新添加的forge版本的文件:
@echo off
java -Xms1024m -Xmx1024m -jar forge-1.11.-13.20.1.2588-universal.jar nogui
3.修改配置文件
将.txt文件拓展名更改为.bat后双击启动,这时一个黑框一闪而过。打开文件夹下的eula.txt,将eula=false改为eula=true。双击启动脚本,黑框最后一行出现“Done”字样的时候,输入“stop”并回车,退出服务器。
记事本打开服务器目录下的server.properties,将online-mode=true改为online-mode=false,保存退出:
重新双击启动脚本,启动服务器,若无问题则进行下一步。
4.更改客户端
服务器更改了,客户端也要更改为对应的forge版本才能连的上。一般的客户端都是有启动程序的,这里我只试过了路由侠和HMCL,这两个启动程序都可以帮帮我们更新客户端的版本,具体操作看启动程序的说明。
路由侠:
HMCL:
客户端版本不是乱选的,一定要跟服务器的forge版本对应才行,这个千万要注意。
更新好客户端版本后,我们就可以连接服务器了。25565端口号可以自行更改,但是不能和其他端口号冲突。
想加入mod就直接在客户端的./minecraft/mods/文件夹中放入对应的.jar文件,重启客户端即可。(部分mod要求服务器端也要添加)
如果你想和其他小伙伴一起玩,如果搭建的是本地服务器那么需要开启外网端口映射,详见https://www.mcbbs.net/thread-622873-1-1.html;如果是云服务器那么所有人都可以直接连接。下面教大家搭建Minecraft云端服务器(敲黑板)。
三、CentOS下的Minecraft纯净(无Forge)服务器搭建方法
1.申请服务器
国内性价比比较高的三个云服务器:阿里云,腾讯云和景安公司的快云,大家可以去对应的官网选择适当的配置自行申请。
本来打算在阿里云租一个VPS的,但是我在快云抽到了1块钱30天体验券,就选快云的VPS了。
2.配置服务器
大家可以看到我申请到的服务器系统是Win2003的,所以我们还要重装一下系统(一般的云服务器供应商都会有这个功能)。Linux比Windows占用的资源更少,这里说明一下,Ubuntu和CentOS的最重要的区别是Ubuntu有图形界面而CentOS没有,而加载处理图形界面(哪怕你不显示)会占用不少CPU资源,所以强烈推荐使用最新版本的CentOS。
使用SSH工具登录你的VPS,XSHELL或者PUTTY都可以,这里我以XSHELL为例。
选择“文件”->“新建”,在“协议”中选择“SSH”,“主机”输入你申请到的VPS的公网IP地址,端口号输入云服务器供应商提供的端口号(默认)。
左侧的窗口点击“用户身份验证”,“用户名”一般是“root”,“密码”输入你设置的密码即可。
这里要注意的是,左侧窗口选择“隧道”,将“转发X11连接到”的多选框取消勾选:
点击“连接”即可远程连接服务器:
有的云服务器供应商会在重装系统后帮你配置好了一些常用命令,如wget等;而有的则是很纯净的系统,很多常用命令都没有,所以这里我给大家列举一些我们要用到的命令:
wget:文件自动下载工具,将远程服务器的文件下载到云服务器
lrzsz:文件上传下载命令,将本地文件上传到云服务器或者将云服务器的文件下载到本地
net-tools:用于查询端口状态,常用到的是netstat
screen:同一终端下的多会话管理器
首先我们先将系统的更新源更改为阿里云的源(当然也可以更改为清华大学或者163的源),这样我们下载镜像的时候就不会从外国网站下载而是转到我们指定的国内网站下载。下面以更改阿里云的源为例:
安装wget:
yum -y install wget
下载阿里云换源文件update_source.sh:(更新界面在这里:https://help.aliyun.com/knowledge_detail/41177.html)
wget http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/41177/cn_zh/1504061676920/update_source.sh
添加执行权限:
chmod 777 update_source.sh
执行换源脚本:
./update_source.sh
然后更新并升级系统:
yum -y update && yum -y upgrade
在yum库中查找java安装包:
yum -y list java*
我们可以看到可用java1.8的版本,我们这里就选1.8的java版本(要注意Minecraft 的1.7以下的版本最好选1.7的java,Minecraft 1.8+的选1.8的java)
yum -y install java-1.8.0-openjdk*
输入“java -version”我们可以看到已经安装配置成功:
安装GNU Screen:
yum -y install screen
如果有同学按照上一步在本地搭建好了Windows的Minecraft服务器那么这里可以直接上传到我们的云端服务器上。如果没有,那么我们用lrzsz命令将服务器文件上传到云服务器。
安装lrzsz:
yum install -y lrzsz
选中服务器文件Minecraft_server.1.11.2.jar,直接拖入XSHELL窗口中:
等待传输结束即可。
新建文件夹mc_server:
mkdir mc_server
切换工作目录到mc_server:
cd mc_server/
移动文件,将上一级目录下的minecraft_server.1.11.2.jar移动到当前目录下:
mv ../minecraft_server.1.11.2.jar ./
有了前面两次的搭建经验,那么大家应该知道接下来做什么了。
新建文件eula.txt,并将“eula=true”写入eula.txt中:
echo eula=true > eula.txt
新建启动脚本start.sh,并将启动命令写入start.sh中,同时赋予此脚本执行权限:
echo -e '#!/bin/sh \njava -Xmx768M -Xms512M -jar ./minecraft_server.1.11.2.jar' > start.sh && chmod 777 start.sh
由于我申请的VPS内存有点小,所以此处最小内存就设置了512MB,最大设置了768MB,这些参数大家可以根据自己的VPS配置酌情修改。
我们查看一下现在mc_server目录下的文件,如果按着步骤来那么就会得到这三个文件:
ls -l
运行start.sh启动我们的服务器:
./start.sh
启动成功最后一行就会出现“Done”等字样:
关闭服务器:
stop
查找server.properties文件中的online-mode=true并修改为online-mode=false:
find -name 'server.properties' | xargs perl -pi -e 's|online-mode=true|online-mode=false|g'
打开并启动防火墙:
systemctl start firewalld && systemctl enable firewalld
将端口设置为开放而不是阻止:(修改开放的端口号要在server.properties中更改)
firewall-cmd --zone=public --add-port=25565/tcp --permanent
立即应用防火墙改动:
firewall-cmd --reload
新建名称为“mc”的会话:
screen -S mc
在此会话下启动服务器:
./start.sh
启动成功后,按下Ctrl+A再按下Ctrl+C键离开此会话。
查看端口开放:
netstat -nltp
可见25565端口出现LISTEN说明打开成功,那么我们的客户端(无Forge版本)就可以连接上了。
客户端连接上后,我们可以随时切换到“mc”会话中查看服务器的消息:
按下Ctrl+A再按下Ctrl+N回到“mc”会话。
四、CentOS下的Minecraft Forge版本服务器
这里跟Windows下搭建的方法类似。
上传libraries.zip文件。选中并将libraries.zip拖入我们的服务器文件夹mc_server中:
或者直接把我刚才分享的网站的libraries.zip地址复制下来:
然后输入“wget 网址”回车即可,记得版本号要一致。我的下载命令是:
wget http://ys-o.ys168.com/557791622/i4N157N4H6JP2HSMTLs5/libraries.zip
同样要把forge的服务器文件也复制进来:
如果上传速度为0,那么我们需要关闭后台的“mc”的screen会话:
screen -S mc -X quit
查看所有screen会话:
screen -ls
可见已经没有后台screen会话了,我们继续上传文件,此时上传速度正常。
上传完成后,安装unzip解压命令:
yum -y install unzip
解压libraries.zip文件:
unzip libraries.zip
现在我们的服务器目录下的文件应该是这样的:
更改start.sh的内容,将启动minecraft_server.1.11.2.jar改为forge-1.11.2-13.20.1.2588-universal.jar:
find -name 'start.sh' | xargs perl -pi -e 's|minecraft_server.1.11.2|forge-1.11.2-13.20.1.2588-universal|g'
新建“mc”会话:
screen -S mc
在此会话下启动服务器(Forge版本):
./start.sh
客户端也要换为对应的Forge版本才能登陆。
我们可以尝试在mods文件夹中添加我们喜欢的mods。比如显示血量的Neat(下载地址:http://mods2.minecraftyard.com/1.11.2/Neat%201.4-13.jar ,其他版本的服务器请注意版本号),小地图JourneyMap(下载地址:http://ys-f.ys168.com/557791613/TKUJw4u4M1J6W44I6P3J/journeymap-1.11.2-5.4.7.jar,同样注意版本号),矿物位置透视xRay(下载地址:http://mods2.minecraftyard.com/1.12.2/xray-1.11.2-1.3.3.jar)。
我列举的这三个mods只需要客户端./minecraft/mods目录下添加即可,并不需要在服务器添加。
游戏内效果:
为了截图把自己害死了,切换到服务器端,把自己改为管理员:(dagger是我进入游戏取的名字)
op dagger
回到客户端发现自己已经是管理员了,那么可以用“/gamemode 1”命令进入创造模式,这样就不会受到蜘蛛伤害了:)
mods的使用方法大家就自行搜索吧,这里就不深入讨论了,反正我们的服务器已经搭建好了,可以呼叫小伙伴一起开黑了。记得把版本号跟他们说一下呀,不然会有大麻烦的。
参考文献:
1.《Minecraft个人私服搭建指南(3):服务端配置运行》,https://www.jianshu.com/p/ca27a32f7826
2.《在本地运行官方服务端以及服务端forge教程》,https://www.mcbbs.net/thread-829318-1-1.html
3.《服务器核心合集 建好的服务端》,https://www.mcbbs.net/thread-661632-1-1.html
基于Windows 7(本地)和CentOS7.6(云端)的Minecraft服务器(无Forge/有Forge)搭建方法的更多相关文章
- Windows 环境下基于 nginx 的本地 PyPI 源
Windows 环境下基于 nginx 的本地 PyPI 源的搭建: 1.登录 nginx 官网,下载安装包
- 为什么基于Windows Server 2008 R2的网络负载均衡(NLB)配置的时候总会报错“主机不可访问”?
配置基于Windows的网络负载均衡是很容易的,操作也很简单,点点鼠标基本上就能完成,但是在进行节点(真实服务器)操作的过程中有时候会遇到一些主机不可访问的报错信息.这个又是为什么呢? Figure ...
- Wizard Framework:一个自己开发的基于Windows Forms的向导开发框架
最近因项目需要,我自己设计开发了一个基于Windows Forms的向导开发框架,目前我已经将其开源,并发布了一个NuGet安装包.比较囧的一件事是,当我发布了NuGet安装包以后,发现原来已经有一个 ...
- 如何使用新浪微博账户进行应用登录验证(基于Windows Azure Mobile Service 集成登录验证)
使用三方账号登录应用应该对大家来说已经不是什么新鲜事儿了,但是今天为什么还要在这里跟大家聊这个话题呢,原因很简单 Windows Azure Mobiles Service Authenticatio ...
- 在使用Kettle的集群排序中 Carte的设定——(基于Windows)
本片文章主要是关于使用Kettle的UI界面: Spoon来实现基于集群的对数据库中的数据表数据进行排序的试验. 以及在实验过程中所要开启的Carte服务的一些配置文件的设置, 还有基于Windows ...
- MapReduce编程模型详解(基于Windows平台Eclipse)
本文基于Windows平台Eclipse,以使用MapReduce编程模型统计文本文件中相同单词的个数来详述了整个编程流程及需要注意的地方.不当之处还请留言指出. 前期准备 hadoop集群的搭建 编 ...
- 微服务架构 - 基于Harbor构建本地镜像仓库
之前写过<搭建docker本地镜像仓库并提供权限校验及UI界面>文章,然后有同仁评论道这样做太复杂了,如果Harbor来搭建会更简单同时功能也更强大.于是抽时间研究了基于Harbor构建本 ...
- 2019/01/17 基于windows使用fabric将gitlab的文件远程同步到服务器(git)
觉得django项目把本地更新push到gitlab,再执行fabric脚本从gitlab更新服务器项目挺方便的,当然从本地直接到服务器就比较灵活. 2019/01/17 基于windows使用fab ...
- 如何为基于windows验证的站点的某个页面、文件或文件夹单独设置匿名访问
在MOSS的项目中,我们经常碰到要单独为基于windows验证的站点的某个页面.文件或文件夹单独设置匿名访问即不登录就可以直接访问.比如说站点的A的某些图片或文件URL存在B站点下的文件夹下.此时访问 ...
随机推荐
- Kotlin中?和!!的区别
很多同学刚上手使用Kotlin知道它有针对Java NullPointerException的管理,而在Kotlin中?和!!均是和NullPointerException有关系,可他们的区别到底是什 ...
- 为什么单个binlog会大于max_binlog_size设置
查看参数设置mysql> show global variables like '%max_binlog_size%';+-----------------+------------+| Var ...
- Factory Methods
The static factory method pattern is a way to encapsulate object creation. Without a factory method, ...
- Ubuntu分区小知识与分区方案
Most PC operating systems still work with an ancient disk partition scheme that historically makes d ...
- springBoot01-helloworld-完成一个简单的RESTful API
1.访问http://start.spring.io/ 2.选择构建工具Maven Project.Spring Boot版本 2.0.1,以及一些工程基本信息 ,最后点击Generate Proje ...
- BZOJ 4484: [Jsoi2015]最小表示(拓扑排序+bitset)
传送门 解题思路 \(bitset\)维护连通性,给每个点开个\(bitset\),第\(i\)位为\(1\)则表示与第\(i\)位联通.算答案时显然要枚举每条边,而枚举边的顺序需要贪心,一个点先到达 ...
- [HDU4969]Just a Joke
题目:Just a Joke 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4969 分析: 呀,根本不会做,5555~(逃 http://blog.cs ...
- Spring通知类型及使用ProxyFactoryBean创建AOP代理
Spring 通知类型 通过前面的学习可以知道,通知(Advice)其实就是对目标切入点进行增强的内容,Spring AOP 为通知(Advice)提供了 org.aopalliance.aop.Ad ...
- 初识 ❤ TensorFlow |【一见倾心】
说明
- (转)使用InfluxDB+cAdvisor+Grafana配置Docker监控
文档来源 文档来源:How to setup Docker Monitoring 由garyond翻译.校正及整理 Docker监控简介 我们提供的Docker主机和容器越来越多,对Docker服务器 ...