前言

今天应朋友要求也是顺合自己心意自己折腾了一下mc的服务器,虽然不是很难,但是想记下来。

环境

- 安装java

我的系统是Debian9。没有内置java,所以要自己安装,百度了一下都不靠谱,最后用谷歌的一个方法成功了。

首先安装jre/jdk,更新索引。

sudo apt-get update

然后安装运行环境jre

sudo apt-get install default-jre  

如果你需要开发工具,可以使用jdk安装。

sudo apt-get install default-jdk

- 安装Oracle JDK

如果你想安装Oracle JDK

sudo apt-get install software-properties-common   

如果你想正确运行,需要运行以下代码。

sudo add-apt-repository "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main"

一旦执行了上一步骤,必须更新apt

sudo apt-get update

- 安装java(自由选择版本)

Oracle JDK 8是编写时的最新稳定版本的Java。执行以下命令。回车或者y

sudo apt-get install oracle-java8-installer

安装过程中还需要接受Oracle二进制代码许可条款。 使用箭头键选择“是”,然后按“Enter”接受许可证。
安装完成后你可以验证java版本。

java -version  

收到以下输出即可。

java version "1.8.0_91"
java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

安装

下载mc服务器端。
首先你可以创建一个目录来存放mc,比如我选择root

mkdir mc
cd /root/mc

你可以根据自己所需的版本号来安装对应的服务端,比如我是安装1.7.10

sudo wget https://s3.amazonaws.com/Minecraft.Download/versions/1.7.10/minecraft_server.1.7.10.jar

请自行更换对应版本号。然后minecraft_server.1.7.10.jar文件就存在于你的文件夹中了。

启动

根据你所需要的人数设置相应的内存。执行命令为:

sudo java -Xms[初始启动分配内存] -Xmx[最大分配内存] -jar [jar包所在路径]/minecraft_server.[版本号].jar nogui

nogui 就是no guigui是图形界面的意思,不用图形界面可以大大减少负载。
我这里用的命令为:

java -Xms512m -Xmx512m -jar /root/mc/minecraft_server.1.7.10.jar nogui

然后你就可以看到类似以下的输出信息

[05:58:08] [Server thread/INFO]: Loaded 488 advancements [05:58:08]
[Server thread/INFO]: Preparing start region for level 0 [05:58:09]
[Server thread/INFO]: Preparing spawn area: 0% [05:58:10] [Server
[thread/INFO]: Preparing spawn area: 41% [05:58:11] [Server
[thread/INFO]: Preparing spawn area: 76% [05:58:11] [Server
[thread/INFO]: Done (4.263s)! For help, type "help" or "?"

即便你做了上面的一切,大部分人会发现:还是连不上服务器,为什么?因为大部分人搭私服都是盗版,在服务器设置里面有一个验证正版的选项,不关闭是无法进入的。

vi server.propertices
online-mode=false  #将true改成false

其他的一些选项是服务器内容,你可以看着更改。
Tips:服务器默认是25565端口,记得在安全组里放行此端口,不然无法链接服务器。此端口在server.propertices里可更改。

其他

启动脚本
你每次如果都像上文一样输入一段命令是不是很麻烦呢?,我们可以写一个简单的shell脚本来实现便捷启动。
mc文件夹中新建一个mc.sh。输入以下内容保存即可。

#!/bin/sh  脚本申明
java -Xms512m -Xmx512m -jar /root/mc/minecraft_server.1.7.10.jar nogui;

赋予执行权限chmod -x mc.sh 运行./mc.sh,就可以看到上文中的输出。
screen新界面运行。
但是这样是不能进行其他操作的,也就是说你的服务器上只能进行这一个进程,如果你是专用mc服务器的话那没有什么影响,但是我是在博客服务器上搭建的,这样就很碍事,我们可以用screen命令进行这个过程。

screen -S mc
cd /root/mc
./mc.sh

输出上文内容即可。
即可成功联机,愉快的玩耍吧。

番外

当然了,上面只是纯净版,对于mc老玩家,纯净版是不能满足我们的,mc作为一个开放世界,最大的魅力除了可以随心所欲那一定是五花八门的mod了。局域网联机过的人都知道,如果主机,就是服务器端不安装mod的话,你是没有办法进入mc的。那么怎么才能在服务器端打上mod呢?
首先你需要一个对应mc版本的forge。(这个是外网链接,需要fq)然后把你电脑mc客户端的libraries文件夹和forge一起上传到你的mc服务器文件夹中。我是1.7.10.对应的forge版本有两个,forge-1.7.10-10.13.4.1558-1.7.10-universal.jarforge-1.7.10-10.13.4.1614-1.7.10-universal.jar,你可以随便选择一个,一般没有太大影响。然后执行。

java -Xms512m -Xmx512m -jar /root/mc/forge-1.7.10-10.13.4.1558-1.7.10-universal.jar nogui

执行成功后就会生成mods目录,然后将相关modjar包放到mods目录里,重启服务器就可以了。是的,你可以发现这和前面的mc启动命令是有相同之处的,你之后每次启动都需要用这个脚本,你可以更改启动脚本里的命令来达到快速启动的目的。

Tips: server.properties参数说明


// 以下是Minecraft服务器设置文件,true代表执行,false代表不执行。

Sun Mar 11 18:24:34 CST 2012 此为文件生成时间
// 是否开启地狱,不开启话地狱门将无效
allow-nether=true
// 地图文件夹名称,下界与末路之地将会自动以nether,ender加上并用下划线隔开
level-name=world
// 是否开启GameSpy4协议服务器监听器,用于获取服务器信息,国内应该用不上。
enable-query=false
// 是否允许飞行
allow-flight=false
// 远程访问服务器的密码,此项可以留空或删除
rcon.password=
// 服务器端口(25565为默认端口,联机时无需输入)
server-port=25565
// 第5行对应功能的端口
query.port=25565
// 地图类型,Default=默认,FLAT=超平坦,LARGEBIOMES=巨型生物群系
level-type=DEFAULT
// 是否开启远程访问服务器控制台。技术人员可选。
enable-rcon=false
// 地图种子,在生成地图文件夹之前填入此项,可生成特定的地图
level-seed=
// 服务器IP,不输入则为默认IP,内网用户的话请填内网IP
server-ip=
// 最大建筑高度,上限是256,因为Chunk的高度最大值是256
max-build-height=256
// 是否生成NPC
spawn-npcs=true
// 是否开启白名单,没有白名单的玩家尝试进入服务器会被自动拒绝
white-list=false
// 是否生成动物
spawn-animals=true
// 此处填写服务器默认材质下载链接,链接必须以.zip结尾
texture-pack=
// 用于给http://snoop.minecraft.net网站发送服务器数据,这样玩家可以从客户端上获取服务器信息,推荐关闭
snooper-enabled=false
// 是否开启极限模式,玩家死亡将自动被ban
hardcore=false
// 是否开启联网模式(正版专用,盗版必须改成false)
online-mode=false
// 是否开启PVP,不是战争服就不要开了
pvp=false
// 游戏难度,与单机相同
difficulty=1
// 玩家第一次进入游戏时的游戏模式
gamemode=0
// 同时在线的最大玩家数
max-players=20
// 远程访问服务器的端口号,此项可以留空或删除
rcon.port=25575
// 是否生成怪物
spawn-monsters=true
// 是否生成建筑物(包括村庄和地牢)
generate-structures=true
// 可见距离,最大值为10
view-distance=10
// 服务器欢迎信息(显示在玩家联机页面),中文需中文补丁支持和转码,推荐EmEditor文本编辑器,自带转码功能。
motd=A Minecraft Server

参考文章:

如何使用Apt-Get在Debian 8上安装Java 地址
如何在Linux上搭建Minecraft服务器 地址