最近几天心血来潮,想要和小伙伴们一起玩一下Minecraft,看了下官网的价格还是感觉略贵,由于之前玩过其他小伙伴的私人服务器,就特别想自己也搭建一个。
结果这两日一直在捣鼓这个东西并且发现实际时间都耗在:
- 找一个免费的服务器来搭建服务
- 找一个免费的客户端
实际情况就是,免费的服务器基本上没有找到,后来尝试重新注册一个AWS账号来获取免费的服务器配额,也实在感觉无法忍受其在国内访问的缓慢。最后干脆还是去阿里云先买了一个最便宜的ECS,包一个月玩一下先。下面具体介绍搭建的完整流程。
购买ECS
选择用阿里云的产品,主要是考量到:大公司,稳定可靠,在国内速度快,产品丰富网站的界面交互等都还不错。自从最近把博客架设到阿里云以后,对其好感就愈加强烈,并且最近准备把所有的域名都从其他网站上收敛过来统一管理。
废话不多,直接去阿里云的ECS推荐购买里面选择第一款:
确认配置后付钱。一个月60,大家自己看着办吧,可以先买一个月尝试:
购买完成以后,新实例会需要几分钟的激活和启动,可以在个人的管理控制台中看到新购买的这个实例:
待机器已经正常运行后,就可以进行连接了,点击 “管理”,然后在实例的信息页可以看到“连接帮助”:
点开后一目了然,windows用户自己去倒腾putty吧(反正我是没用过):
打开你的终端,我们开始进行连接到实例:
$ ssh root@你的公网ip(公网IP在实例页面有哦)
会提示你输入密码,是你阿里云账号的登录密码,成功登录你会看到:
Welcome to aliyun Elastic Compute Service!
Good Job!
搭建服务
下面我们要为开始搭建服务器做一些准备工作。首先更新一下yum的包,确保我们要安装的东西都能找到:
$ yum update
等好了之后我们安装 “screen”,linux下的一个终端进程和窗口的管理工具,简单来说有了它我们就可以:
- 同时运行多个会话,执行进程,并且可以在多个会话间切换
- 即使我们断开连接,进程还会继续维持运行,并且下次还可以回到之前启动的会话中
直接执行 yum install screen
就可以完成安装。接下来创建一个目录,把相关的操作都放到这个目录里面,方便整理:
$ mkdir minecraft
$ cd minecraft
$ mkdir server # 把server相关东西都放进去
$ cd server
创建完目录后,我们开启一个新的screen会话,后续我们就把所有mc相关的操作都放到这个会话中:
$ screen -S Minecraft # -S 是为会话取个名字
你会注意到整个终端被清空,其实已经在新建的这个会话中了,可以查看当前已经创建的会话:
$ screen -ls
There is a screen on:
6316.Minecraft (Attached)
1 Socket in /var/folders/mj/45h_01550mx6ph2jt8vy3_7h0000gn/T/.screen.
好,我们干正事。首先需要安装Java,有yum真是太简单了:
yum install java
So easy!下一步,下载minecraft的server文件,直接去minecraft的官网可以下载,在页面下面的”Multiple Player”部分,可以找到最新的下载链接,直接下载到server目录下:
$ wget https://s3.amazonaws.com/Minecraft.Download/versions/1.8.9/minecraft_server.1.8.9.jar
有了启动文件,我们就可以启动它,官网直接有提示如何启动:
$ java -Xmx1024M -Xms1024M -jar minecraft_server.1.8.9.jar
上面两个参数都是用来控制分配内存的,建议根据自己的ECS实例具体情况分配。直接在终端执行以上命令后,肯定会提示错误,要求你去修改一个文件来同意他们的条款。此时ls一下server目录,你会发现运行一遍后多了一堆文件。找到其中的evla.txt, 修改false为true:
By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
Fri Jan 29 20:40:42 CST 2016
eula=true
我们还需要禁用掉minecraft的用户在线校验,打开 server.properties, 修改:
$ online-mode=false
配置基本完成。补充一下 server.properties 可以用来配置很多游戏的特性,比如最多在线人数,具体的每个配置项可以参考wiki。
在正式启动server之前,为了后续的操作方便,我们可以专门新建一个启动脚本来包裹启动命令,新建一个 start.sh 然后输入下面的内容:
#!/bin/bash
java -Xincgc -Xmx512M -Xms512M -jar minecraft_server.1.8.9.jar
保存,然后添加可以执行权限:
$ chmod +x start.sh
启动脚本:
$ ./start.sh
Done! 我们的服务器就配置好啦!你可以拿着你的公网ip邀请小伙伴们加入游戏了。
关于Screen
下面再补充和总结下screen的一些操作。会话级别的操作:
$ screen -S sessionName # 创建会话
$ screen -ls # 查看已经创建的会话
$ screen -x sessionName # 重新进入之前已经创建的会话
有了上面三个命令,你就不怕不小心链接实例的ssh突然断掉等情况了。除了上面会话级别的操作以外,在一个会话里面,可以同时开启多个窗口来并行执行多个操做。当你在一个会话中时,就可以通过 ctrl + a 作为命令的开始,然后再按下下一个命令键来完成命令:
ctrl-a + w # 列出所有的打开的窗口(会显示在终端的标题栏上)
ctrl-a + c # 新建一个窗口
ctrl-a + n # 切换到第N个窗口
ctrl-a + space #切换到下一个窗口
ctrl-a + k # 关闭当前窗口
ctrl-a + d # detach 离开当前的会话(会话会继续在后台执行,后面你可以用上面的会话命令 screen -x 重新链接回来)
ctrl-a + [ # 进行copy模式,这个在窗口内容很多的时候比较有用,因为screen下的窗口是没法通过滚轮查看上面的内容的,开启copy mod就可以用vi的方式移动光标了
Minecraft客户端使用帮助
下面再说下客户端。不是所有的一起玩的小伙伴都是搞开发的,因此要想让一个正常的用户也能欢快的玩起来,还是需要一些工作要做。
首先,安装Java。直接官网下载即可,不多说。
其次,需要翻墙。在此正好安利一下某开源的免费翻墙工具,对于非技术人员来说使用太简单了。这个产品就是Latern(他们的官网被墙了):
好在他们的项目是在github上,可以直接在其github首页找到下载。下载完成后,直接启动就可以翻墙了。
要是Latern不可用了或者搞不定,请移步我写的另一篇科学上网教程《小白易学 Mac & iOS Shadowsocks 科学上网全攻略》
最后就是下载免费的minecraft客户端,可以直接使用teamshiginima.com。但是他家的广告真是有点多..要skip好久。(百度云盘)
开始游戏
直接双击从teamshiginima下载的文件中对应你自己系统的Shiginima Launcher SE v3.000.jar,等个一会儿会出现用户名设置:
然后点击play后进入配置页面:
右下角的问题如果是 “loading versions…” 则说明是在进行数据加载,此时先等待。正常显示后,点击play,然后会开始下载你选择的版本的资源文件(要自己决定哪个版本,可以edit profile),这个过程可能要很久,请耐心等待。而且如果出现加载完毕后没有反应点击了play又重新下载,可能是上一次的下载超时了。
因此这一步骤是最容易卡主的,需要耐心~待成功下载完成后,会自动开始游戏界面:
简直要喜极而泣。如果你的是英文界面,可以在下面左边的那个大按钮里面设置。选择多人游戏:
点击“添加服务器”来添加服务器,只要输入服务器的ip即可,名字随意:
然后直接双击创建好的服务器就可以进入游戏了!下面是我自己随便先进来造的小房子:
终于!祝大家玩的开心,
22 Comments
非常感谢,我试试:-P
话说。。怎么关掉服务器啊233
首先用文中的命令切回到你的开启服务器的会话: `screen -x sessionName`,然后进去一般 `ctrl + c` 即可。
嗯嗯谢谢_(:3)∠)_怎么加插件和mod呢
我暂时也还没有加过插件和mod,一直都在玩原版:)
感谢教程
想知道ECS使用windows server 2012的话是不是直接远程控制服务器,安装java和mc服务端就可以使用呢。。
不会linux,只在windows下用过傻瓜式的MC服务器搭建软件,不需要输入命令行,在GUI中就能修改各种服务器设置很是方便。不清楚这种软件在windows server系统中能不能使用呢。。
基本上是差不多的,java本身就是跨平台滴
额。。如果用multicraft,要备案吗。。。还望求解答!谢谢!
至少就我的经验来看是要的,只要是在阿里云的服务器上做web网站,如果你不做备案,访问的时候也会被阿里云直接拦截要求你先做备案的。
不过如果是购买的香港或者新加坡的机器可能就不需要备案,你可以具体咨询一下阿里云的客服
在下载到Minecraft之后,执行`java -Xmx…`的时候,发生了以下报错:
“`
Exception in thread “main” java.lang.ExceptionInInitializerError
at java.lang.Class.initializeClass(libgcj.so.10)
at net.minecraft.server.MinecraftServer.(SourceFile:49)
at java.lang.Class.initializeClass(libgcj.so.10)
Caused by: java.lang.UnsupportedOperationException: gnu::java::lang::management::VMThreadMXBeanImpl::getThreadInfoForId (jlong, jint) not implemented
at gnu.java.lang.management.ThreadMXBeanImpl.getThreadInfo(libgcj.so.10)
at java.lang.reflect.Method.invoke(libgcj.so.10)
at java.lang.Thread.getStackTrace(libgcj.so.10)
at org.apache.logging.log4j.status.StatusLogger.log(StatusLogger.java:182)
at org.apache.logging.log4j.spi.AbstractLogger.warn(AbstractLogger.java:1918)
at org.apache.logging.log4j.LogManager.(LogManager.java:114)
at java.lang.Class.initializeClass(libgcj.so.10)
…2 more
“`
在更新了java之后依然没有用,求解,,,
机智的我`yum -y remove java`然后`yum -y install java-1.8.0-openjdk`就解决了2333
百度云失效了
大概是因为包含Latern被和谐了,我更新了下,只保留Minecraft的客户端分享了
文中有个笔误:
online-mod=false 应该为
online-mode=false
感谢指正,已经修改
请问楼主,ls server说找不到这个目录是怎么回事?
如何升级版本呢
问一下,这个服务器搭建是否涉及游戏的版权,因为我不玩游戏不了解。如果没问题的话,我想按你的教程搭建一个,做个镜像,方便大家使用。
为什么我按照这个做一直提示fail to bind to port?
明明我已经运行25565端口开放了
我也在我的博客写了篇搭建方法,你们可以参考下http://blog.xuchang.kim/index.php/archives/59.html