部署minecraft服务器

部署开始前

其实mc开服是个很简单的操作,很容易就能学会。

准备

一颗炙热的心

“耐心是高尚的秉性,坚韧是伟大的气质。 无论何人,若是失去耐心,便失去了灵魂”——培根。

“每件事都需要有足够的耐心,才能获得成功。

硬件

能够运行服务器的方式有很多,面板,云服务器等等皆可,对于使用面板的读者,相信面板提供商会提供指导服务,不需要阅读此文章,那么本文将讲述如何在“云服务器”这一系列机器上开设服务器。对机器的需求取决于开的是个什么服务器,如果是朋友间联机,那根本不需要机器,自己的主机就能开,甚至可以用树莓派,但对于需要长时间运行的人来说,我们并不能使用消费级主机,需要专门组一台机器,或者去云服务器厂商购买主机。对于纯净服,不需要太高的配置,但是对于模组甚至是群组服,就需要注意配置的问题,这里的配置是指cpu,内存,宽带,单服一般不需要过多核心的cpu,内存尽量在一定范围内的多,宽带依人数而定,请注意,Mc非常吃单核性能,请优先选择单核性能强的机器。

操作系统

操作系统有多种,如linux,Windows,Ubuntu等,本文将以Ubuntu与Windows为例,系统安装不在本文阐述。

环境

在部署服务器前,我们需要部署Java

Ubuntu

镜像源更换

由于默认源可能很慢,所以我们要在此更换镜像源

右键我们电脑的windows徽标,使用以下命令链接服务器

1
ssh 用户名@服务器公网ip

Login

如遇无法打开锁文件的问题,请按下述步骤提升权限

1
2
sudo passwd root
su

我们使用vim编辑软件源文件,您将看到类似以下的界面,进入后,请不要乱动

1
vim /etc/apt/sources.list

vim

我们先依次按下999dd,此时文件应当清空。接下来,按下i,开始编辑。
粘贴以下内容。

1
2
3
4
5
6
7
8
9
10
11
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse

# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse

然后按ESC,然后输入**:wq,回车,使用以下命令更新列表。

1
apt update
Java部署

请检查将开设服务器的版本:

1
apt search openjdk

若我们将开设1.16及之前版本,需要安装Java8

1
apt install openjdk-8-jdk -y

若我们将开设1.17及以上版本,需要Java17或更高版本

1
apt install openjdk-17-jdk -y

安装完毕后使用此命令以检查是否成功安装,安装成功后,应当会反馈版本信息

1
java -version

Windows

首先下载java安装包java
一般选择“x64 Installer”即可,一路根据安装程序安装,记住java位置。
安装完毕后使用此命令以检查是否成功安装,安装成功后,应当会反馈版本信息,若提示“不是内部命令”,请尝试重启,若依旧提示,请配置环境变量,或记下安装目录在后文使用。

1
java -version

完成部署

至此,我们已经完成了所有前置步骤,接下来我们将正式开始部署mc服务器。

服务器核心选择

对于不同的服务器走向,有不同的核心选择,以下为几种常见的核心,选择好服务端后,复制对应的jar直链。

核心 版本 内容
PaperSpigot 1.8.8-最新 支持 CraftBukkit 和 Spigot 插件
Mohist 1.7.10-最新 支持 Forge mod 和 Paper 系列插件
Catserver 1.12.2,1.18.2,1.16.5 支持 Forge mod 和 Paper 系列插件
Minecraft Server all 原版
Bedrock Server all(基岩版) 原版
BungeeCord all 代理端,用于群组服
Spigot 1.4.6-最新 支持Bukkit 和 Spigot 插件
Sponge Forge 1.8-1.19.4 支持 Forge mod 和 部分插件
Velocity all 代理端,用于群组服

Ubuntu

使用以下命令,创建一个名为"mcserver"的文件夹,此条目可以依据喜好修改

1
2
3
cd ~
mkdir mcserver
cd mcserver

下载核心到服务端上

1
wget 刚刚复制的链接

wget
核心就部署好了!

Windows

下载对应的核心后,随便拖到一个空文件夹就可以使用了。
win

Mc,启动!

Ubuntu

使用此命令启动服务器

1
java -jar server.jar nogui

启动会在这样的反馈下停止,我们需要使用以下命令同意Eula条款。
stop

1
vim eula.txt

将其中的false修改为true
eula
完成后再次运行启动命令,完成!
done
client

Windows

在jar文件目录下新建一个文本文档修改后缀名为.bat
winp
右键编辑,填入以下内容,若运行后提示未知命令,则修改下文中java为"前文安装时所复制bin目录/java.exe"(注意引号)

1
2
java -jar server.jar nogui
pause

其余步骤同Ubuntu的安装方法,在此不再重复阐述。

进阶

Ubuntu screen

前面的步骤中,操作慢的同学可能发现连接超时了,那么当我们成功开服后还能回到后台吗?答案是不能,如果你不幸遇到了这种情况,请这样操作来先把服务端杀掉:

1
2
ps -aux | grep java
kill 查到的PID

接下来我们创建一个sceen,并把后面的内容作为他的名字

1
screen -S 一个名字

进入sceen后我们再启动服务器,如遇到上述情况,输入以下内容以回到后台

1
screen -r 那个名字

自定义域名

本文中不讲述如何购买域名。
打开dns解析页面,按如下操作配置,接下来,可以在游戏中使用该域名进入游戏了
dns

开整合包

本来mcbbs还在的时候能更简单的,可惜。前文提到的是最基础的服务器部署,其他核心也可以照葫芦画瓢跑起来。找到心仪的整合包,通常,整合包会有server包,如下,直接下载启动内容即可。
serverbag
若没有server包,则安装对应的整合包到客户端,将.minecraft目录下的文件(未启动版本隔离)全部拖到核心文件夹,选择适合的核心即可,若崩溃,请删除造成原因的mod。
许多整合包都来自国外,因此,汉化成为一个很重要的操作,对于大多数知名整合包通常有汉化,请去网上找,解压后拖入服务端文件夹及客户端文件夹。

server.properties注解

spawn-protection=16 出生点保护半径(若没有op则不生效)
max-tick-time=60000 设置每个tick花费的最大毫秒数
query.port=25565 设置监听服务器的端口号
generator-settings= 用于自定义超平坦世界的生成
force-gamemode=false 玩家加入服务器时强制变成默认游戏模式
allow-nether=true 是否开启地狱世界(关闭后删除将不会生成地狱世界)
enforce-whitelist=false 在服务器上强制执行白名单。
gamemode=survival 设置玩家的游戏模式
broadcast-console-to-ops=true *给op发送控制台信息?
enable-query=false 是否开启GameSpy4协议服务器监听器,用于获取服务器信息,建议不要修改
player-idle-timeout=0 当进入AFK模式,在规定时间内T出服务器,设置成0为不T出服务器
difficulty=easy 设置游戏的难度(peaceful(0)=和平,easy(1)=简单,normal(2)=普通,hard(3)=困难)
broadcast-rcon-to-ops=true *允许远程连接控制台给op发送信息?
spawn-monsters=true 是否生成怪物
op-permission-level=4 设定OP的权限等级
pvp=true是否可以打架
snooper-enabled=true一旦启用,将允许服务端定期发送统计数据
hardcore=false 极限模式(启用后,玩家死后会被服务器封禁)。
enable-command-block=false 是否启用命令方块
network-compression-threshold=256 默认会允许n-1字节的数据包正常发送, 如果数据包为 n 字节或更大时会进行压缩。所以,更低的数值会使得更多的数据包被压缩,但是如果被压缩的数据包字节太小将会得不偿失。
max-players=20 最大玩家数
max-world-size=29999984 设置世界边界的最大半径值,单位为方块。通过成功执行的命令能把世界边界设置更大,
resource-pack-sha1= 资源包的SHA-1值,必须为小写十六进制
function-permission-level=2 用于控制函数拥有的权限等级。
server-port=25565 设置服务器的IPv4端口号
server-ip= 将服务器与一个特定IP绑定。建议留空
spawn-npcs=true 决定是否生成村民
allow-flight=false 允许玩家在安装添加飞行功能的mod前提下在生存模式下飞行。
level-name=world 主世界名称
view-distance=10 设置服务端传送给客户端的区块量 (范围3-15) 
resource-pack= 可输入指向一个资源包的URI。玩家可选择是否使用该资源包
spawn-animals=true 动物是否可以生成
white-list=false 服务器的白名单,OP无须加入白名单
rcon.password= 远程访问密码
generate-structures=true 定义是否在生成世界时生成结构(如村庄)
online-mode=true 线上模式是否开启 (即正版模式)
max-build-height=256 玩家在游戏中能够建造的最大高度
level-seed= 世界种子
motd=A Minecraft Server 玩家客户端的多人游戏服务器列表中显示的服务器信息,显示于名称下方。
enable-rcon=false 是否允许远程访问服务器控制台。