【我的世界】如何简单的在国际服开启服务器?(Java Edition限定)【上篇】
我的世界虽然是一个单机游戏,但是它更多的乐趣还是在于玩家之间的联机,单人肝帝固然存在,但一大群人一起,爆肝大型工程或者大型建筑明显更让人舒畅,这其中就涉及到一个相当重要的问题,那就是如何开启MC的服务器了。
虽然网易国服提供了简单的服务器开启方式,Mojang官方也提供了领域服,但二者其实都有一些相对明显的缺点。
网易对玩家的限制,以及对游戏的各种魔改在各大MC社区已经可以算是人尽皆知了,当然如果你不在乎的话也可以选择他,相对来说还是比较方便的(而且算是相对靠谱的面板服)。
Mojang官方提供付费的领域服,月租9.99美元(使用PayPal或者支付宝支付的话可能要给不大约5%左右的汇率折算手续费?),性能尚可,能够支持基本的生电红石,10人以下的基友团体生存还是相当不错的,但缺点在于,你玩游戏的时候还需要使用加速器(因为服务器是亚马逊美国的),购买手续上也没那么方便,只支持正版验证模式。
那么有人会问了,除了这两种方式之外,不是还有类似游侠对战平台这类联机平台吗?
实际上,这类平台只是稍微简化了个人开服的流程,本质上还是本地开服再联机,既然如此,为何我们不考虑直接自己开服呢?实际上想要自己开服并不算难。
想要自己开服,需要的知识储备并不需要太多,只要:
1、会使用基本的翻译工具(如http://translate.google.cn/),最好有一点初中到高中级别的英语能力(至少分得清主谓宾,知道基础的时态,就能通过翻译工具硬啃英文生肉了),因为不少资源网站都是全英文的,一键翻译有时候可能会词不达意。


2、对计算机的构成和电脑的操作有基本的了解,会简单的安装和使用软件。只要会看自己的电脑配置,能看懂任务管理器的性能显示,会复制粘贴代码启动服务端就可以。


倍频乘以总线速度就是处理器睿频的最高频率,手动超频不算
3、一个高级文本编辑工具,如Notepad++,打开yml文件时会自动识别并标记,很方便。

4、读完这篇教程(至少你需要的部分)的耐心。

开服基础:
首先,在开服之前,我们需要了解一些基础的背景知识,比如说开服方式,还有不同服务器核心的区别。
开服方式主要分为三种,一种是本地开服,一种是面板服,一种是vps开服。



本地开服
本地开服,是利用自己的电脑进行开服,服务端既可以和客户端运行在同一台电脑上,也可以分离,对于服务器信息的设置是最简单的,但同时,配置网络方面会比较麻烦。
在自己的电脑上启动服务器相对来说比较简单,难度在于如何让别人能链接上你的服务器,如果你家的网络是相对独立的宽带,你可以考虑参考MCBBS上关于内网映射开服的教程,那样子开服相对要稳定很多,不需要看服务商的心情。
如果你看不懂映射开服的配置方式,又或者你所在的网络是一个大局域网(比如在学校,连接校园网),那么你就只能选择使用内网穿透软件了。
内网穿透软件的原理就是通过转发服务器作为中介,将你的电脑和玩家的电脑连接起来,因为使用了别人的服务器,所以多半是要收钱的,免费提供的服务也有,但是稳定性相对来说要差一些,简单点来说就是容易掉线,目前最大的应该是花生壳,MCBBS上也有发布一个樱花的,根据自己需求来选择即可。
面板服
面板服,是专门提供MC开服服务的服务商提供的一种服务,通过面板你可以有限度地修改部分服务器信息,但你对于服务端的修改是受到服务商提供的网页面板的限制的,同时你对服务器的硬件配置等信息同样是完全不了解。
MC的运行主要依赖于CPU和内存两个硬件,很多面板服仅仅标注了内存信息,对于CPU信息并没有标注。
毕竟当不少玩家在电脑无法启动MC的时候,去搜索问题的时候,尤其是用百度搜索问题的时候,无一例外都是让他们增加内存分配,更换64位java以增加内存分配,对于CPU的问题鲜有提及。


在这样的大背景下,只标注内存的面板服依旧能瞒天过海,吸引不少小白购买。


与此同时,还有一个很关键的影响因素,不同版本的服务端对内存的使用情况是不一样的,甚至可以说相去甚远,简单举个例子,1.14.4的服务端,在服务器上设置6G内存,基本能完全使用完,甚至人多了还会OOM崩服,但如果是1.12.2,哪怕是模组服,内存的占用也不会很高,一般也就大概能用个2到3G左右吧,也正是因为这一点,再加上不少服务器小白对服务端机制的不理解,不少面板服都严重超售。
超售是什么意思呢?假设这一台服务器使用的是两颗24核48线程的洋垃圾E7CPU【洋垃圾:指通过走私或者正规渠道进口回来的,从退役服务器上拆卸下来的电子元件,通常是CPU和内存】,主频只有1.9GHz的那种,(即从国外退役服务器上拆下来再通过走私/电子废物回收等渠道进入国内的),配置的是128G的DDR3内存,然后在不作系统隔离的前提下租给32个不同的用户,对外标榜都是8G的服务器,同时为他们设置的也是看上去没问题的8G启动内存(启动指令反正随便写的,不同进程之间又互相检测不到),此时会发生什么?
32×8=256,也就是这32个服务端需要使用256G的内存,但实际内存只有128G,但又因为如果只是运行1.7.10或者1.12.2的服务端根本用不到那么多内存(1.12.2的模组服内存占用能上4G都已经偷笑了),所以一般来说不会出现内存出问题的情况。
但只是一般!如果这里面混进去了几个1.14的原版服务器,还是看着8G内存便不限制玩家探索地图的那种,那么最后的结果就是大家一起Out of memory内存溢出崩服。
面板服的启动配置文件往往你又不能修改,你甚至没办法设置一个崩溃自动重启,这时候就令人烦躁无比了。
同样的,因为你不知道具体服务器采用的是什么核心,而MC服务端(包括单机的本地服务端)运行主要依赖的是单核心性能,低主频的CPU势必导致各种各样的卡顿,让人难受无比。
所以出于种种原因,我都不推荐大家去租赁面板服,哪怕面板服真的很便宜(200块钱2年的价格你怕了没有)。
目前淘宝上的面板服,基本上都是尽可能往大了吹,数据好看,但实际没有用,大公司【猪厂也不算小了】的价格虽然要高一些,但也不至于贵上那么多(对比一下前后两个价格)。
这里有个挺有意思的事情,一个up花200块钱租了2年的面板服,原本是打算几个人一起录录视频玩玩小游戏的,然而等他想起来录视频的时候,用了一次却是直接放弃了,选择了使用映射开服。
虽然出于各种原因我不喜欢网易版MC,但起码网易的租赁服(也是面板服)要比淘宝上的面板服要靠谱一些,如果你看完后面说的教程还是不懂的话,还是去玩网易的租赁服吧(或者全员加速器玩realms自然是更好的,毕竟亚马逊的服务器比网易的好)。
vps开服,和家用机开服其实没什么区别,只是将服务器的运行位置转移到了vps上,也就是服务器运营商提供的独立虚拟服务器,通常是将完整的服务器资源分割成一份份的独立资源在运行,因为相互之间独立,所以其他服务器上发生的事情不会影响到你的服务器。一般来说vps服务器都很稳定,因为商业性质的机房一般都会做一些防御和保障措施,除非是管理者蠢到关错服务器电源——这是有可能发生的,否则基本不会出现问题。


使用vps开服是通过远程桌面对服务器进行访问,电脑和手机都能访问,当然,手机上操作要复杂一些,除了需要隔一层进行操作之外(其实就像你用手机模拟器一样的),其他的基本都是和在自己电脑上一样的,难度并没有那么可怕(模组服除外,你主要解决的是不同模组之间冲突的问题,而不是服务端本身的问题)
实际上对于与陌生人一起玩的,我最为推荐的是这一种开服方式,因为开服时间不受你开关电脑的控制,明显要好很多。如果只是和基友一起玩,游戏时间固定的话,家用机开服也无所谓。
通常为了节省时间,我们可以在自己的电脑上将服务器完全配置好在迁移到服务器上开服,毕竟不少人自己的电脑肯定要比vps的要好上一些的(租用i9或者R7的除外)。
如果换用vps开服,首先每个月肯定有一笔租用服务器的固定开销,如果服务器比较小,这个价格并不会太高,单核2G的E5服务器大概在50块钱一个月左右,这种配置的服务器已经基本满足10人以内服务器的稳定运行了。足以负担小型高级红石服的i9-9900kf服务器大约300出头一个月(小型:人不算多,30人以内,平均在线10人,且集中活动,高级:高频红石设备多),一般红石玩家不玩世吞或者全区块TNT炸怪场这类卡服装置的话折中选取就可以了。
vps开服的好处在于服务器的状态会比家用机开服稳定,毕竟服务器常年都是不关机的,但你在家,长时间不关机可能会被父母揍一顿,甚至有可能被家里的老人直接拔了电源(他们不懂这些,以为直接拔掉电源就能省点电费,不知道损坏机器的损失比电费要贵得多)。
同时对家用机开服来说难度比较大的内网穿透也不需要自己操心,因为服务器运营商自己有提供数据转发业务,能够帮助你去配置好网络,甚至部分还能帮你转接到自己的申请的域名上,一般来说都很方便。
使用Windows电脑访问vps,只需要在【开始菜单】→【Windows附件】中找到【远程桌面连接】,输入服务商给你提供的后台地址(注意不是服务器访问地址),然后打开下面更多的选项,输入用户名,再点击连接,输入密码就可以进入后台了。

大多数服务商都支持直接从本地电脑复制文件到vps上,拖动有时候可能不行,麻烦一点右键复制粘贴吧,这个复制速度主要取决于你家的网速,和vps分配的带宽,速度还是可以接受的,起码比没开会员的垃圾百度云和面板服提供的ftp文件传输要快(一般手机同局域网下远程文件访问就是ftp传输,不仅慢,文件大的时候更慢,而且极容易进程卡死)。
配置好的服务端复制到vps上就能直接开服了,除了需要注意修改好配置文件中的端口地址,关闭服务器的防火墙(否则其他人连不到你的服务器,一般运营商都是关的),有问题就直接问客服,一般都会耐心地解答。
服务器正常启动之后,日后维护的时候,就不用局限于使用自己的电脑进行访问了,只要有任何能够连接远程桌面的设备,都是可以进行远程维护的。
这种小维护,往往可能是修改某个插件的参数,在不方便启动mc的时候直接从后台给白名单、踢人之类的操作。
一般来说服务商都会提供手机端的远程桌面连接软件,以方便安卓手机用户的使用,不过这里也简单介绍一下吧。
远程桌面一般能在手机自带的应用商店中找到,名字就叫远程桌面,因为它本身只是一个相当基础的软件,是微软官方开发的,注意别下到什么奇怪的东西。
点击右上角的加号,剩下的操作和在电脑上就差不多了,界面也很简洁,点击上方三道杠的菜单按钮可以切换控制方式,通常建议选择触控模式,通过中间的小圆点来拖动屏幕,这样操作起来要方便得多。

服务端的选取
了解了3种不同的开服方式之后,不同服务端之间也有不少的区别。
目前服务器的版本主要有五类:1.6.4、1.7.10、1.12.2、1.13.2和1.14.x
其中前三个,都主要是模组服,1.6.4主要是一些老版本的mod,因为作者弃坑,没有升到1.7.10,所以停留在这个版本,一般不建议玩家自己开1.6.4的服务器,停留在这个版本的服务器已经相当少了。
1.7.10,可支持内容模组数量最多的版本(目前总模组数量最多的已经是1.12.2了),大名鼎鼎(并不)的科技mod格雷科技6只支持到1.7.10版本,并不支持更高的版本。这个版本的服务器开服,因为笔者没有亲自用过,所以没有经验,但专门为MC提供vps的服务商一般都非常有经验(因为目前来说国内的1.7.10模组服还是最多的),也能为你提供配置好的服务端,你或许还能在服务器的售后群里认识一些1.7.10的服务器大佬。
1.12.2,主流内容模组支持的最高版本,也是现在大多数主流模组服所选择的版本,因为自1.7.10之后,MC本体又作出了不少更新,其中一些非常重要的特性,1.7.10并没有,加上1.12.2的版本很稳定,所以不少主流模组都选择了支持1.12.2。
1.13.2,相对稳定的一个版本,但是因为forge的大修,1.13.2的正式版forge甚至在1.14.4正式版(1.14.4最后一个稳定版)发布之后才出来,所以基本没有内容模组支持这个版本。通常1.13.2的服务器都是插件服或者原版服,插件服也能通过插件的形式实现部分内容模组的功能,比如粘液科技(slimefun)其实是个插件而不是模组。目前这也是免费空岛插件Askyblock稳定支持的最高版本。
1.14.x,泛指1.14的所有版本,因为1.14推出时间并不长,所以有不少服务器的小版本都比较混乱,因为某种原因而停留在某个小版本,这个版本基本上只有原版服和插件服两种类型,Askyblock不支持1.14,但是你可以使用一些其他的空岛生成插件,比如付费的FabledSkyblock(12美刀)。
Fabric模组服也有,但是数量比较少,通常都是为了安装carpet模组所使用的。
【当你用百度搜索不到某样东西的时候,可以尝试一下微软的必应国际版,或者是Google,百度搜索不到的东西,一般国内的其他引擎也差不多的】


百度就是个弟弟。
除了服务器版本之外,服务器使用的核心也有讲究,因为我对1.12.2以下的版本不了解,所以这里不介绍,反正1.7.10配置好的服务端在MCBBS上多得是,租用vps的话服务器运营商也基本都会提供最基础的包,好友自己玩是足够了,我这个教程也不是面向氪金服的服主的。

简单点来说,目前主流的服务端有这几种:
Vanilla,即原版端,MC官方发布的端,支持版本包括所有版本。【谷歌翻译:香草】
Forge Vanilla,安装了forgeAPI的原版端,不支持插件,所以基本没人用,本身的性能优化也比较糟糕。
Sponge,海绵端,最高只支持1.12.2,有原版和Forge两个版本,后者是1.12.2模组服的其中一个选择,使用自己的插件API,插件与Bukkit系不通用,上手比较难。
Cat Server,猫端,1.12.2服务端的另一个选择,但是已经出现过开发者跑路的情况,而且开发过程中似乎有违反开源协议的情况。但目前社区版的性能比较稳定,支持bukkit系插件,加上使用起来比较简单,如果不是开设商业服的话,可以使用这个作为1.12.2模组服的开服核心。
Spigot,水龙头,基于bukkit的插件端,提供插件API支持,主流的插件基本都是Bukkit系插件,因此在插件适用性上很好,支持至最新版本。
PaperSpigot,纸龙头,简称paper,在Spigot基础上进一步优化得到的服务端,Spigot不提供技术保障(也就是paper有bug,spigot不负责解决,你们得找paper开发团队的意思),对于多人游戏的优化最好,但是因为对原版特性的大量修改,一些特性会失效。
Fabric Vanilla,1.14.x的模组端,通常选择这个的原因主要是为了添加Carpet模组,即地毯端,少量内容模组如BOP(更多生物群系)也需要Fabric提供的API支持。
当然还有类似Rift Vanilla之类的服务端配置方式,但因为用的人太少,我也不会,所以就不讲了。【TIS内服是carpet Vanilla,本质还是原版端,同时由Chino_desu大佬提供原版端插件支持】
当然,今天我不会全部都讲一遍,一个是没有那么多时间,一个是我也不是所有方面都完全了解的,如果有什么说的不对的地方,还希望大佬一起交流指正。
今天我想给大家讲的主要是家用机开服、以及vps开服两种情况,涉及版本仅包括1.12.2的猫端模组服,和1.14.x的开服。

开服条件
家用机开服是比较简单的,而且不需要额外花钱去租赁服务器,因此我先介绍这种方式。
使用家用机开服,首先要确保硬件条件足以满足需求。
首先确认一点,你的CPU线程数应该在4以上,线程太少的话,基本无法满足你在开服的同时,系统仍然能够正常稳定运行,最高主频不低于2.5Ghz(包括睿频之后的结果),内存应当有至少8G(底线是4G),如果更低的话,还是去租赁vps开服吧,否则即便能开起来,也会很难受。
想要确认电脑的配置,打开任务管理器就可以查看到这些信息了,或者你也可以通过娱乐大师(鲁大师)、CPU-z等辅助软件进行确认。

举个例子,我这个E3 1230 v3,就是8线程,最大睿频3.7Ghz的,内存16G,这些信息在Win7以上的任务管理器应该都能看出来。
虽然一般来说有英特尔的CPU比AMD的CPU在同代上优化更好的说法,不过一般来说中高端的AMD处理器并不会出现明显的性能差异(顶多电费有些差异)。
之所以服务器单核1G也能开服,但家用机不可以,这是因为二者的系统需求是不一致的,家用机还有很多用户组之类为个人用户提供服务的进程,而这些进程在服务器中是不需要的。
当然,还有另一个确认方法,便是通过第三方启动器,以离线模式同时开启两个MC客户端,创建新世界,使用默认生成,游戏难度困难,跑出出生点超过500格范围之后,再确认机器的运行状况,如果电脑没有满载运行的话,应该是可以本地开启服务端的,区别是是卡顿和流畅而已。
想要极限一点的测试结果,你也可以看完之后,本地开服本地连接进行尝试。
因为客户端在进行本地游戏的时候,相当于同时运行一个内置服务端和一个游玩服务端的图形界面,只不过因为二者不独立,图形计算会影响到服务端的性能,一般来说,两个本地游戏中客户端的性能消耗,肯定要比一个服务端加一个游玩服务端的客户端要大得多。
然后下一步便是获取服务端本体,这也是开启服务端最重要的一步,获取服务端。
原版纯净服务端可以在官方启动器上进行下载获取,修改过的服务端可以在各自的官网上下载,也可以在MC镜像资源站上下载(就是上面截图展示的那个网站):
https://mcmirror.io/
当然了,网页是全英文的,找到自己需要的服务端下载使用就行了。
下载下来的服务端,是一个.jar的文件,这是一个java的程序包,你双击它是不行的,需要通过命令行来启动,具体实现方式也不难。
首先新建一个文本文档,将下面的代码选择一个自己需要的复制进去,然后保存,出来之后将文本文档的文件扩展名从【.txt】改成【.bat】,会提示更改文件类型可能导致文件不可用,确定即可。
如果没有提示这个框,说明你的文件夹设置有问题,你需要在文件夹属性中奖显示文件扩展名的选项勾选开启,再进行修改,如果双击之后不是打开黑漆漆的命令行窗口而是文本文档的话,也是一样的原因,同样操作即可。
一次执行,关服之后需要重新打开才能重新开服的代码:
@echo off
java –Xmx128M –Xms2048M -jar 核心名.jar nogui
pause
一次执行,崩溃自动重启的代码:
@echo off
:restart
java –Xmx128M –Xms2048M -jar 核心名.jar nogui
goto restart
当然这仅仅只是最简单的,确保你能启动服务器的命令行,想要服务器运行得更流畅一些还可以增加一些优化参数。因为不同服务器适用的参数不一致,下面提供的仅适用于64位系统安装了java8的spigot系服务端(包括paper和cat)
-XX:+UseG1GC -server -XX:+UseFastAccessorMethods -XX:+OptimizeStringConcat -XX:+AggressiveOpts -XX:MaxGCPauseMillis=10 -XX:+UseStringDeduplication
将这一段放在【-jar】的前面,内存设置的后面即可。
其中需要注意的是,这里的-Xms2048M,是将服务器的最大内存设置为2G(1G=1024M),对于一般的服务器是够了,1.12.2模组服基本不需要更大的内存,因为即便是多人模组服,运行时的内存也很少有需要更多内存的情况,通常卡服的原因在处理器性能上(后面再讲)。
如果你是原版端,或者是1.13以上的服务端,请将这个数值尽可能得设大,以减少多人探索地图时,地图生成与加载导致的严重内存消耗,这个上限如何判断呢?
首先,如果你的系统是Windows系统,首先要减去你MC客户端使用的内存(一般客户端设置2G玩服务器够用了),然后再减去硬件内存的25%(对于win7以上系统,这个系统占用最少1G),剩下的就是你能给服务端配置的最小内存。
举个例子,你电脑内存是8G的,扣去2G你自己玩的,系统预留2G,你服务器还能设置4G的内存,如果你这电脑不玩MC,只是开服,那么可以设置成6G。
如果你这电脑还是8G内存,但使用的是Linux系统,同时没有使用图形界面,那么你设置成7G甚至7.5G都没有问题。
不少人常说Linux比Windows更适合开服,就是因为Linux可以没有图形界面,也没有太多只是为了提升用户互动体验但是消耗系统资源的服务性进程。
完成了启动配置之后,双击刚刚编辑好的.bat文件,你会看到一个命令行提示窗口一闪而过,然后啥都没发生,是服务器坏了吗?
并不是,只是你需要首先同意一个协议,打开同一目录下刚刚新生成的eula.txt,将其中的eula=false改为eula=true即可。
完成这一步之后,你就可以重新双击刚刚的bat文件了。值得一提的是,如果你选择的是崩溃自动重启的脚本,记得在闪烁1次之后直接×掉提示窗口,否则会进入无限重启的情况。
正常启动服务器之后,命令行提示窗口之中最后几行会有一个【done!】加上一个以毫秒计算的时间,这时候就是服务器开启完成了,但是服务器这个时候还不能玩,因为最关键的东西——服务端配置我们还没做!

在命令行提示窗口之中输入【stop】(方括号【】不用打,后面同理),记住在这里输的一切指令都是不用加斜杠【/】的,与在客户端内输入指令不同。
输入stop之后,提示窗口之中会有一串保存信息,等没有新信息出现的时候,关掉窗口即可,带自动重启的在进入启动界面时及时×掉窗口,否则马上就重启了。
之所以要先启动一次服务器,其实也是没有办法的,因为纯净服务端文件的配置文件是在第一次正常执行之后才会生成,所以相关的配置工作我们也只能在这之后做。
这里的配置首先只介绍原版的服务端,添加插件以及添加模组的介绍在后面再说,无论你是选择什么服务器,这一步都是必不可少的。
首先,我们在刚刚服务器jar文件的同目录下找到一个名字为【server.properties】的文件,这个文件无论你是什么端都会生成的,这是原版的配置文件。
为了方便的编辑它,我们最好需要一个具备代码编辑功能的文本查看器,程序员可以使用自己熟悉的vscode,一般人可以选择下载一个npp,也就是Notepad++,之所以选择这些工具,是因为他能够具备标注行和搜索高亮之类的功能,对于寻找需要的配置很方便,尤其是后期配置插件的时候,没有这些功能你会哭的,当然,如果你要坚持使用系统自带的记事本进行查看,我也不反对就是。
打开这个配置文件,其中会有很多项目,但是并不是每一项我们都需要进行修改,只需要修改其中的一部分就可以了。

请将文件重命名为默认文件名【server.properties】以使用这个汉化版的配置文件
【spawn-protection】出生点保护:
可填项目为正整数,即出生点保护范围,默认是16,实际保护半径为(x×2+1),这个范围内的方块玩家不能破坏,设置为0只保护1格,基友服建议设置为0,红石服一定要设置为0(因为出生点区块是相当重要的啊,指炸空)。
【max-tick-time】最大游戏刻时间:
原版的防死机设置,可填项目为正整数,默认60000,单位是毫秒,即60秒。这个设置建议调为0,设置为0即关闭游戏超时设置,否则很可能会因为某些奇怪的原因崩服,spigot和paper端都有自己的游戏刻限制,不需要原版带的这个控制。
【server-name】服务器名字:
这个不用管,因为这不是玩家在客户端加载服务器时的显示名字,而且容易和后面的motd弄混,为了避免大家搞不清楚,所以专门标注以下。
【gamemode】游戏模式:
这里需要注意的是,1.12及以下版本,和1.13以上版本的设置是不同的,1.12及以下版本以数字区分游戏模式,0生存,1创造,2冒险,3观察者。1.13版本扁平化之后,需要输入survival、creative、adventure、spectate来确认4种不同的模式,默认为0/survival,即生存
【difficulty】游戏难度
同样的,1.13版本以前和以后有不同的区别,1.12及以下是0和平,1简单,2普通,3困难,1.13开始改为使用peaceful、easy、normal和hard
【hardcore】硬核模式:
传说中只有1条命,死了进旁观的那个模式,使用true和false设置,默认false,建议不要作死调true。
【max-players】最大游戏玩家数量:
根据自己的内存酌情确定,原版mc服务端空载内存大约600m左右,每增加1名玩家需要多消耗50m,但是模组和大型红石机械都会增加内存消耗,有多少人玩就设置刚好多一点点的数量,不要贪多,假如是四五个人的基友服,调为10就好了,不要调太高,否则可能增加服务端的内存压力。
【level-type】地图类型
设置地图生成器类型的选项,包括default、superflat、largebiomes等,即我们单人生存时创建世界的更多选项之中的世界类型设置,不过这个地方一般不建议设置default之外的选项,实际设置中我们往往需要进行更多的设置,通常建议的选择是在单机中完成设置,生成存档之后,再将存档移到服务器文件夹之中,相关的操作后面会讲。
【online-mode】正版验证
设置为true时,进入服务器的玩家需要正版登录,即进入服务器瞬间需要通过mojang的正版服务器验证当前客户端的登录状态,进入服务器游玩过程中不会进行实时验证,但如果掉线重连则要再次检测当前客户端的登录状态。
设置为false时,不检测玩家的正版登录状态,即使用离线模式的玩家也可以游玩你的服务器,通常建议谨慎开启,一般不限制玩家正版登录的商业服务器都采用外置登录来确保服务器的安全性,私人服主如果关闭正版验证,请打开白名单以确保服务器安全。
需要注意的是,正版验证验证的是客户端的登录状态,也就是说,如果玩家使用第三方启动器再开一个MC,也是可以进行正版验证的,如果他需要,可以同时以正版模式游玩多个服务器,但登录第二个正版验证的客户端时,上一个经历验证的客户端就会自动失效(已经在服务器里的不会掉出来)。
【white-list】白名单
白名单是限制进入玩家的一个设置,开启白名单之后,需要服主或者管理员通过指令whitelist add 【玩家ID】或者编辑服务器根目录下的whitelist.json文档来添加白名单用户,通常推荐使用第一种方式,由服主在服务器的命令行窗口中先添加第一个用户,并设置为op,通过op管理员账户进行白名单的添加。
【level-seed】地图种子
影响地图初次生成的选项,和我们创建世界时候输入世界种子是一样的功能,留空则使用随机种子,但如果world存档文件夹中已经有level.dat文件,则这个选项不会影响已有世界的生成,想要利用这个种子生成世界,请将所有维度的世界存档删除之后再重启服务器。
【motd】标题栏
这里也就是服务器显示在标题上的字样,可以显示中文,但Windows系统下不支持直接输入中文(据说Linux可以),你需要将中文转为Unicode代码之后再输入其中,转换Unicode代码的工作可以在百度搜索Unicode转码找到相关网页工具。
【enable-command-block】允许命令方块
创造服中最重要的一个设置,默认为false,即关闭。
该选项关闭时,你可以正常放置并破坏命令方块,但是无法使用它的任何功能,只针对3种命令方块,结构方块不受影响。
如果想使用命令方块,请打开这个功能。
对于有人问为什么开创造服,还要开命令方块使用,这种创造服往往是进行红石电路的交流讨论,而命令方块在测试和调试方面的作用都很明显,利用计分板等指令可以实现对数据和方块的统计和操作简化(比如做了个树场,但是没涉及木料转运和TNT处理的时候,就可以用fill air来清除不需要的原木方块)
【view-distance】加载距离
虽然直译过来是视距,但实际上它表示的是每个玩家能加载的区块范围,这是以玩家为中心,加载区块的半径。我没记错的话这个数值代表的是,以玩家为中心,向各个方向延伸视距距离的一个正方形,将视距设置为10的话,就是每个玩家加载21*21=441个区块。
一般来说,玩家多的时候会导致大量的区块加载,将这个数字调小可以减轻服务器的压力。
同样的,因为怪物生成的范围是128格,所以将这个数值调为8,基本对游戏体验没有影响,调为6的话,卡顿会少很多,但是这样会轻微得牺牲游戏体验,当然,并不推荐你们将这个数值调得更小。默认值10的时候,每个玩家加载441个区块,但这个数值是8的时候,加载的区块数量就会降低到289个,设置为6是169个,差距还是挺大的。当然,因为玩家活动空间存在重叠,这个数字不能这样粗暴地计算,实际提升没有那么明显。
【pvp】玩家伤害
是否允许玩家伤害,默认是true,也就是玩家攻击其他玩家的时候会有伤害。
【server-port】服务器端口
使用内网穿透软件开服的服主不用管这个数字,如果你是自己做的内网映射,请按内网映射教程提供的更改,如果你是租用vps开服,将这个数字改为服务器提供商提供给你的端口名字。
配置错了别人会找不到你的服务器!
虽然我介绍了那么多,但实际上还有一些配置我没有介绍的,你们也不用去动它,有兴趣可以自己通过谷歌翻译看一下有什么用。
还有有一些看上去有用的配置项其实不用管,所以你也不要手多改了,出问题我不负**。
当然,这只是服务器的基础配置方法,想要对世界生成进行更多的设置的话,你需要首先在单机游戏之中进行设置,能设置的东西自然就更多了,设置完成之后,需要打开你的客户端安装文件夹,然后找到saves文件夹,找到你刚刚生成世界的存档,先删除服务器根目录下的world文件夹,再将你的存档整个复制到服务器的根目录下,将文件夹改名为world。
原版服务端的配置就这样,当然,如果你是spigot或者paper端的话,需要将存档下的DIM1和DIM-1剪切到服务器根目录下,并分别修改文件夹名为world_nether和world_the_end,因为这些服务端是将不同维度分开保存的。

对于spigot端和paper端,我们还有另外的配置文件可以设置,这也是这两个端在卡顿控制上优于原版端的一个原因(实际上就算是地毯端的优化都比原版好,至少地毯端能关掉经验吸收的CD)。
Spigot
Spigot端的额外配置文档是【spigot.yml】,其中重要的配置项有几项:

【merge-radius】掉落物合并范围:
将范围内的掉落物合并为最多一组的物品,当有大量产物的时候,这个设置能减少服务器中的实体,继而降低卡顿。
这个项目有两个选项,第一个选项【item】是掉落物合并范围,如果对物品合并有特殊需求的时候,可以将这个数值修改小一些,但同样的,这个数值不应该设置过大,维持原样即可。
第二个选项【exp】是经验球的合成范围,这个能够将多个小经验球合并成一个大经验球,在经验产出较多的设施比如小黑塔和主世界猪人塔之类的设施,能减少因为经验球累积导致的卡顿,无特殊需求维持默认值即可。
【entity-tracking-range】实体可视范围
即玩家可以通过目光发现实体的距离,同样设计到实体加载的问题,服务器中加载的实体越少,那么需要的运算量就越小,其中不同子项应该设置为不同的值。
第一项【player】,即玩家的可视范围,推荐保持原样48不变,否则会影响玩家之间的交互,因为玩家的数量是有限的,这一项影响其实很小。
第二项【animals】,动物,即非敌对生物的可视范围,这个推荐在服务器度过前期之后调整为8~16左右,调整为8一般不会有太大的影响,玩家圈养的动物在后期是非常严重的卡服来源,除了降低圈养动物数量之外,尽量减少其相关运算也是非常重要的。
第三项【monster】,怪物,包括原本中立但被攻击后会反击的生物也算在这个范围内,比如小黑和猪人。这个数值建议不要调整,因为调整过后对于玩家及时发现怪物会产生不利的影响。
第四项【misc】,装饰物,这个装饰物指什么呢?指能被放置,但仍是实体的物品,最简单的例子就是物品展示框,还有盔甲架。简单点来说,你按F3+B打开碰撞箱显示,有一条蓝线从物品上戳出来的,就是实体,而装饰物这个分类大部分是从创造模式装饰品(misc)栏里拿出来的物品。建议可以修改为16,更低的话估计会对室内装修、物品辨认产生较大的影响。
第五项【other】,其他实体,矿车、船这些都属于其他实体,因为他们往往有重要的作用,且数量一般不会太多,所以建议保持原数值不变。
【ticks-per】漏斗传输速度
有两个子项,第一个【hopper-transfer】是漏斗的传输速度,第二个【hopper-check】是漏斗检测掉落物的周期,单位都是gametick游戏刻。
修改第一个数字可以加快或减慢漏斗传输物品的速度,第二个数字是大家常见的漏斗上面放容器的主要原因,不过修改这个数字似乎会让漏斗的传输速度受到影响,所以不建议修改。
尤其是红石服,漏斗的性能是相当关键的因素,请不要修改这个设置。
还有一个【hopper-amount】指的是漏斗一次传输物品的数量,同样不建议随便修改,如果不是红石服,可以考虑延长漏斗传输物品的周期,同时增加一次传递物品数量来降低卡顿,比如一个周期为40,一次传输5个物品,总效率和原来是一样的,但是这样的话,漏斗计时器之类的东西都会失效。
需要注意的是,不同版本的配置文件,这个选项可能位于不同的位置,需要自己多多留意。
【growth】生长速度
这里主要指的是作物生长受到随机刻影响的效果,单位是%,但如果不受随机刻影响的生长则不受这个影响,比如0t的甘蔗等,骨粉催熟因为是强制进入阶段,所以也不受这个影响。
【entity-activation-range】实体活动范围
整个配置调整中相当重要的一个部分,这部分的配置决定了实体(相对玩家)的行为加载范围,单位是格。
这个实体活动范围是和玩家有关的,调整这部分的数值,就能有效减少玩家活动时加载过多的实体导致卡顿。
其中第一项【animals】动物是老生常谈了,建议设置为4~8,直接狠一点,基本不影响你下地去喂羊的。
第二项【monster】也很关键,这决定了你服务器里的游走式刷怪塔能否生效——这也是我为什么一再强调不要再服务器内建造低效的游走式刷怪塔的原因,默认值是32还是48来着,这意味着超出这个半径范围的怪物将会停止行动(是否消失依旧遵循怪物刷新规则),你在服务器里建了一个游走式刷怪塔,很可能有一半的刷怪面积都不在加载范围内,这个活动范围外的怪物很快填充了你的刷怪上限,然后刷怪塔就什么怪都摔不死了,解决这个问题的办法自然不是调大实体活动范围,而是直接采用水流刷怪塔——无糖雪梨有发过一个不需要红石的水流刷怪塔教学视频,虽然简陋,但即便是再低的条件也可以在前期使用作为过渡。
第三项【raiders】应该是指掠夺者?我不太确定,建议是维持原样,因为数量不多,而且在老版本的配置文件你是找不到的,调得太小的话,掠夺者刷在一些稀奇古怪的地方之后你就找不到了。
第四项【misc】也是装饰物,设置为2即可,因为你基本不需要和它远距离交互的,设为2能减少很多不必要的加载。
【item-despawn-rate】掉落物消失周期
单位是gametick,6000gt即5分钟,也就是我们常说的掉落物保留5分钟,如果你不怕被群友打的话,可以调小点,不过太小的话会对各类农场装置产生一些不好的影响。
与之相对的,还有【arrow-deswapn-rate】,这是箭矢消失周期,射出的箭如果没有扎在别的生物身上,便会作为实体保存下来,默认值1200,也就是1分钟,看个人需求了(因为某些奇怪的装置会用到箭矢插木按钮的方式来获得信号)
【max-entity-collisions】最大实体碰撞
这个是非常非常重要的一个设置!生物带来的卡顿,除了本身受到随机刻影响的各种行为之外,最大的便是因为相互碰撞所产生的卡顿了,默认值为8,将它调整为2能显著减少实体碰撞带来的卡顿,但是不建议调到更低的数字,否则你推矿车、推村民之类的行为是会产生不可描述的后果。
Spigot的配置文档之中,可以调整的配置项还有不少,但因为和卡顿控制方面关系不大,所以也就不多说了,有兴趣的可以自己用谷歌翻译查一下词条。
Paper
Paper端是基于spigot端修改过来的一个服务端,它提供了更多的优化选项,配置文件是【paper.yml】,其中大多数选项都不建议新手玩家去修改,除非你的服务器人太多,卡得不行,其中部分设置也可以用来防止某种事情导致服务器崩溃。
因为paper端的paper.yml配置文件会覆盖spigot.yml中的设置,所以其中同名设置需要记得在paper.yml中进行修改,比如上面提到的实体碰撞等。
我只挑选一些比较重要的来讲,这部分设置大部分都在【world-settings】的配置项之中,其他部分请善用谷歌翻译(如果有时间的话我可能会出一个1.14.4的配置文件汉化,但不是现在)。
【enable-player-collisions】允许玩家碰撞
【book-size】书的尺寸。
通过设置这个配置我们可以限制一本书的最大页数,以及容量比例,将这个数值调小,能够抑制玩家通过使用书的方式进行物品复制。物品复制虽然可以说是一项可以利用的游戏特性,但书本复制依旧是一个不应该提倡的选项,因为它是让区块无法保存达成物品复制的,而这意味着要占用大量的服务器资源,甚至可能导致崩服,相比之下溺尸复制和羊驼/驴复制则要相对友好得多,因为它并不需要令区块内容溢出。
但书本复制仍有存在意义,因为它可以直接复制实体,用于复制潜影贝达成伪和平,不过我的建议是,通常还是禁掉这方面的复制,原版红石服不应该使用paper端,而是更建议使用carpet端,而carpet端可以使潜影贝再生。
上面两条在配置文件的开头,下面的基本都是在世界设置选项了。
【max-entity-collisions】和spigot一样的设置,记住paper端要改的是这里。
【optimize-explosions】优化爆炸,估计是减少随机影响之类的
【portal-search-radius】传送门搜索范围,单位是格,即传送门绑定已有传送门的搜索范围,这在服务器之中相当重要,降低这个数字除了不容易让门绑定出错之外,也能减少开门瞬间搜索导致的服务器卡顿,不过不建议调整太小,否则会令门过度密集。
【keep-spawn-loaded】是否加载出生点,对于非红石服,卸载出生点能有效降低服务器的卡顿,因为常加载大量区块,还要计算其中的实体之类的信息,如果做了出生点欢迎之类的建设,无疑会增加不必要的卡顿。但对于红石服而言,出生点有着重要的意义,所以请保持这个配置开启。
【skeleton-horse-thunder-spawn-chance】雷雨天生成骷髅马的概率,单位是1,即0.01=1%
【experience-merge-max-value】经验值合并的上限,设置为-1即不设上限
下面是游戏机制相关
【disable-chest-cat-detection】禁用箱子检测猫,强烈建议开启,开启之后,就不用担心猫蹲在箱子上面箱子打不开的情况了。
【disable-end-credits】禁用片尾动画,就是杀完末影龙之后的那个滚动字幕。
【disable-unload-chunk-enderpearl-exploit】在未加载区块禁用末影珍珠,简单点来说这是防止玩家因为进入了未加载区块导致崩服的设置,建议保持开启。
【max-growth-height】最高生长高度,cactus是仙人掌,reeds是甘蔗
Paper端自带反矿透功能,即【anti-xray】,不过反矿透功能无法限制透视材质包,反作弊通常只能通过人工手段,或者直接删除所有矿物实时生成的方式来实现。下面的配置就是反矿透的配置文件。
【fishing-time-range】钓鱼时间范围,单位是gametick,100就是5秒,600就是30秒。
Spigot是原版玩家与低卡顿玩家想要兼备时候的一个最佳选择,相比paper端,它保留了更多的原版特性——至少它不会卸载出生点(因为出生点常驻内存其实也是很卡的)、能做刷沙机,绝大多数的红石设备都不会出问题,除了需要考虑一下关于实体加载和掉落物合并相关的问题(可能导致物品分类串线)之外,不需要考虑太多其他的因素。
如果你对模组没有要求,只想以相对较低的条件体验尽可能接近原版的服务器,那么你可以选择spigot。
当然,原版服务端并不是没有存在的价值,spigot因为是第三方内核,它是重写了部分服务器的实现代码,以提供更多的插件API,所以他与原版服务端的区别远比第三方启动器和官方启动器的区别大,因为后者实质上核心是一样的。
不过原版服务端往往需要更高的电脑配置才能带起来(因为优化相对较差),原版红石服的CPU主频至少4Ghz起步,这已经劝退了绝大多数的服务器U了,相反家用机U还有一战之力。
Paper端的优化相对spigot端要好很多,如果开启大型生存服,我更推荐你使用paper端,因为他对多线程的利用能力会更好,而且内存的优化也更佳。
因为mojang本身的优化问题,MC对于服务器级处理器的利用能力其实是并不太好的,因为服务器U一般都是主频不高,但是核心数量较多,擅长多线程任务,而目前最好的多线程服务端印象中只能利用4个线程,其他基本围观,反之对主频的要求很高,paper端基本上是大型(指人多)生存服与红石服的唯一选择,TIS外服便是运行在paper端上。
Carpet端是专门针对红石玩家的一种定制客户端,它能够在原版端上添加一些新的特性,并提供一些控制与统计的新指令,在1.14+的版本中,carpet首次作为独立mod出现,此前它都是通过直接嵌入minecraft本体实现对服务端的修改的(现在1.13.2和1.12.2的独立mod版本也发布了,不过还在测试阶段),老版本直接用GitHub上面的介绍安装,1.14直接拖到fabric端的mod文件夹就可以了。
简单点归纳一下,如果不添加模组的话,应该怎么选择服务端:
如果你想开人数比较少的亲友服:Spigot
如果你想开只是对内的红石服:spigot
如果你想开对外且人数比较多的红石服:paper
如果你想开对外且人数比较多的生存服:paper
如果你要完整的原版特性【需要超强的处理器】:
1.14.x Fabric + vanilla + carpet
1.13.2 vanilla + carpet
1.12.2 vanilla + carpet
更低的版本不推荐作为原版生存服务器游玩。
额外一提,目前如果你想玩1.14的空岛,有两个选择,一是选择1.14.4FabricVanilla+Carpet,然后安装SciCraft团队的Skyblock模组,要么你选择支持插件的spigot端或paper端,再去付费下载一个FabledSkyblock插件,前者适合基友服和红石服,后者适合对外开放的商业服,不过通常后者需要添加原版模组或者粘液科技之类的东西来弥补资源获取渠道的问题。
如果你只是想开个原版基友服,看到这里基本就结束了,模组安装和插件都是不需要理会的。
说完了原版服务器,本来接下来需要说的,是其中Spigot和Paper端提供的插件功能,但因为1.12.2的模组服中,存在forge+spigot的cat server,所以我打算将它放到后面讲,先讲解如何在服务端选择与安装模组。
下半篇的内容将会是关于如何开启模组服,以及在插件端安装插件。