哈喽大家好,我是Benmao,最近在家闲着也是闲着,作为一位i人,no money and 不出门社交,所谓much too boring(也不知道这英语语法对不对...)。渴望在学校时和宿友一起在MC中探索与挖掘,思考了一些联机方式的不同。花了两天时间从各大资源up主学习和研究,总结出如何作为一位顶级小白开始搭建一件服务器。废话不多说,教程开始。
目录
一、所需要用到的资源
1. 服务器
很好理解,既然搭建服务器就是得有服务器。
什么还要服务器啊,哎有点看不下去了,走了...
哎等等,不看标题带有‘零成本’ 吗,本博主可不是标题党,想进办法把你们骗进来,既然来了,就绝对教学一步到位!回归正题:请点击 阿里云免费服务器 免费领取三个月的服务器,活动我也是最近看见的,不保证什么时候结束。如果结束了,那只能放弃了哦💔。
当然,不比像那些真正的高手自己购买配件手动搭建服务器,那需要更多相关专业的知识,本博主所提供的教程可以说小巫见大巫。
如需购买服务器的最低配置:
2核2g,最主要的看你有多少小伙伴一起玩
服务器镜像选择centos版本,为了教学方便,版本选择7.5即可,对于linux系统不太熟悉感觉不方便可以使用宝塔面板,是一个道理。后面需要填入密码,自己取即可但是需要记住。宝塔面板在此教程中与文件的传输作用一样,因为后续有些文件需要上传到服务器
服务器创建完毕之后,记录公网IP,后续我的世界加入服务器需要此地址
2. 远程连接工具Xshell 5和Xftp 5
如果你选择的镜像是宝塔,可以跳过远程连接步骤,直接在控制台创建会话,以下是需要使用到的一些工具
Xhsell工具: 一款极为强大的安全终端模拟软件,这款软件主要运用于网络管理领域以及系统维护领域。ssh远程连接服务器创建会话,为我们后续命令操作极为方便,此外你也可以直接在控制台连接数据库。
下载地址:Xshell 5
Xftp工具: 一个功能强大的SFTP、FTP 文件传输软件。使用了 Xftp 以后,MS Windows 用户能安全地在 UNIX/Linux 和 Windows PC 之间传输文件。后续服务器中文件上传需要用此功能
下载地址:Xftp 5
PCL启动器: 可以帮助玩家更轻松便捷地启动我的世界游戏。它支持各类版本的模组管理,我的世界版本为Java版本
下载地址:PCL
注意 |
|
二、配置服务器操作
1. 创建服务器会话
打开远程工具Xshell和Xftp,填入刚保持好的服务器IP。账号为root,密码是你所领取服务器所填写的密码。Xftp和Xshell一样,填写已保持的IP,Xshell协议选择ssh。Xftp连接时,协议分为两种,FTP和SFTP,选择SFTP
Xshell演示图
Xftp 演示图
2. 下载JDK并配置环境变量
我的世界服务器的整合包为Java语言所写,因此要在服务器上运行此项目,就必不可少的需要Java运行环境,下载JDK就能做到。打开ORACLE官网 JDK17下载地址 下载JDK压缩包。需要注意的是,JDK版本不能过低或者过高,如果你无法选择合适的版本,请选择本教程一致版本即可。
打开链接,选择JDK17(非21),由于我们的服务器镜像为centos,系统为linux,因此需要选择对于的Linux的JDK运行文件,找到并点击下载带有 x64 Compressed Archive 的这个压缩包。
接下来上传文件配置环境变量,打开Xftp,创建服务器会话。从左侧找到JDK17下载地址,在右侧传入到 路径为 /usr/java/ 中,Java文件夹可以直接在Xftp窗口化创建,也可以使用在Xshell使用命令创建。
#创建/usr/java文件夹
#mkdir /usr/java
检查上传是否正确可以使用命令查看文件,出现了包名代表上传成功total 395276 -rw-r--r--. 1 root root 189756259 8月 31 14:06 jdk-8u161-linux-x64.tar.gz(具体包名和文件名一样)
#上传完成后查看文件
#ll /usr/java/
由于服务器是新创建,本身就不包含Java运行环境省去了删除旧Java版本这一步骤,安装命令如下,将上传后的安装包解压到/usr/java/目录下。XXX代表整个包名,包括了后缀。压缩后可以继续使用查看文件命令,看是否解压完毕,也可以直接在此目录路径下使用ls命令查看
#cd /usr/java/
#tar -zxvf /usr/java/XXX
接下来设置Java环境变量,在Linux中设置环境变量的方法比较多,较常见的有两种:一是配置/etc/profile文件,配置结果对整个系统有效,系统所有用户都可以使用;二是配置~/bashrc文件,配置结果仅对当前用户有效。这里使用第一种方法。
运行此命令,打开对于文件,按 i 即可切换为编辑模式。
#vi /etc/profile
按键上下左右移动到最后,然后按回车新建一行。 在文件的最后增加如下两行。XXX代表整个包名,包括了后缀。
export JAVA_HOME=/usr/java/XXX #JAVA_HOME指向JAVA安装目录
export PATH=$JAVA_HOME/bin:$PATH #将JAVA安装目录加入PATH路径
执行source使环境设置生效,使用命令java -version查看是否配置成功,出现下图带有版本显示即为配置完毕。
#source /etc/profile #更新文件
#echo $JAVA_HOME #检查JAVA是否可用
3. 我的世界服务端文件
下载地址:搓我一下,文件名为 MCserve.jar ,使用同样的方法,用xftp上传此文件,任意一共位置都可以,但是为了方便,本博客教程放在/usr/java/同一个目录下。使用cd命令切换到此路径,然后Java命令运行此文件。
java -Xms1G -Xmx2G -jar MCserve.jar
命令参数解释
-Xms1G 分配的运行内存最小值
-Xmx2G 分配的运行内存最大值
最主要看你服务器配置能分配多少运行内存,同时考虑有多少小伙伴加入这个服务器
第一次运行文件之后,使用ls命令发现多出来几个文件,因为第一次运行需要配置服务器相关文件,找到eula.txt, 使用 vi eula.txt 命令编辑文件,把eula=flase改为eula=true, 这里我不知道对于布尔值是否区分大小写,使用小写即可。
再次使用命令运行JAR文件,运作时可以发现指针变为了 >,表示正在持续运行,输入stop回到主账号,找到名为 server.properties 文件,使用vi命令编辑。
第一步——把 online-mode=true改为false,这是运行非官方玩家也可以加入这个服务器。
第二步——记下端口号,server-port=2408,你可以自己填写直接喜欢的端口号,但是需要保证范围和端口规则。
4. 控制台部署
最后的一些操作是在控制台完成,由于在本地连接服务器一旦断开会话,就会默认关闭服务器的后台进程。想要持续运行此服务,就得到控制台完成。
首先,之前记下了服务器端口2408,或者你自己取的端口号。打开 控制台—安全组—管理规则
打开管理规则后,按图正确填入,最后保存
5. 连接启动服务
在控制台点击 概念—远程连接
根据本地Xshell如何运行文件,在这是一样的。找到对应的文件路径,使用运行命令。连接请选择你可以连接的一种方法,密码为你申领服务器所填写的密码, 根据图操作,主要包括横线两个命令。这样,我的世界服务器完美运行了。
6. 测试我的世界加入服务器
服务器地址就是为你服务器地址+:+你所设置的端口号。
如:127.0.0.1:2408
注意符号为英文符号
以下内容必须仔细完成,缺一不可!!!
服务器包版本和PCL运行的我的世界版本必须是一样的。MCserve.jar为1.20.1版本,因此PCl中下载的我的世界版本也必须是1.20.1,否则就版本不兼容,此外,离线玩家的名称必须是全名都为英文,不能包含任何中文。此外PCL中需要下载MOD——自定义局域网联机。
打开我的世界1.20.1,选择多人模式,点击添加服务器,输入服务器地址,发现这里已经找到服务器了,教程到此结束咯,有不懂的请评论区留言。
接下来是,一些关于我的世界操作讲解
三、其他知识解答
与本地搭建不同
细心的朋友在做用自己本地电脑作为服务器搭建时,可以发现还有一个配置需要添加本机IP地址在server.properties文件中,server-ip=,为什么服务器中却不需要呢。
解释:如果我们按照像本地一填写了IP地址,会发生此IP被占用,相当于本服务器就是自己运行,从当前IP运行其他IP,而且本地运行默认为127.0.0.1的,因此就不需要填写IP地址了。
添加服务器管理员权限
在服务器运行状态下,直接使用命令 op 名字。
比如我的玩家名为Benmao,那么命令就是 >op Benmao
server.properties文件参数解析(摘自官网解析 传送门)
属性 | 类型 | 默认值 | 描述 |
---|---|---|---|
allow-flight | 布尔值 | false | 允许玩家在安装添加飞行功能的mod前提下在生存模式下飞行。 允许飞行可能会使恶意破坏者更加常见,因为此设定会使他们更容易达成目的。在创造模式下无作用。 false - 不允许飞行。悬空超过5秒的玩家会被踢出服务器。 true - 允许飞行。玩家得以使用任何能飞行的mod飞行。 |
allow-nether | 布尔值 | true | 允许玩家进入下界。 false - 下界传送门不会生效。 true - 玩家可以通过下界传送门前往下界。 |
broadcast-console-to-ops | 布尔值 | true | 向所有在线OP发送所执行命令的输出。 |
broadcast-rcon-to-ops | 布尔值 | true | 向所有在线OP发送通过RCON执行的命令的输出。 |
difficulty | 字符串 | easy | 定义服务器的游戏难度(例如生物对玩家造成的伤害,饥饿和中毒对玩家的影响方式等)。 如果设置了旧的数字ID,则会自动转化为英文的难度名称。 peaceful (0) - 和平 easy (1) - 简单 normal (2) - 普通 hard (3) - 困难 |
enable-command-block | 布尔值 | false | 是否启用命令方块。 |
enable-jmx-monitoring | 布尔值 | false | 暴露一个具有对象名net.minecraft.server:type=Server 的MBean 和两个属性averageTickTime 和tickTimes 用于暴露以毫秒为单位的tick时间。 为了启用JRE的JMX,你需要添加在此处所述的一些JVM标志。 |
enable-query | 布尔值 | false | 允许使用GameSpy4协议的服务器监听器。用于获取服务器信息。 |
enable-rcon | 布尔值 | false | 是否允许远程访问服务器控制台。
|
enable-status | 布尔值 | true | 使服务器在服务器列表中看起来是“在线”的。 |
enforce-secure-profile | 布尔值 | true | 要求玩家必须具有Mojang签名的公钥才能进入服务器。 true - 不具有Mojang签名的公钥的玩家不能进入服务器。 false - 不具有Mojang签名的公钥的玩家也可进入服务器。 |
enforce-whitelist | 布尔值 | false | 在服务器上强制执行白名单。 当启用后,不在白名单(前提是启用)中的用户将在服务器重新加载白名单文件后从服务器踢出。 true - 不在白名单上的用户会被踢出。 false - 不在白名单上的在线用户不会被踢出。 |
entity-broadcast-range-percentage | 整数(10-1000) | 100 | 此选项控制实体需要距离玩家有多近才会将数据包发送给客户端。更高的数值意味着实体可以在更远的地方就被渲染,同时也可能提高增加延迟的概率。 这个值是以默认值的百分比来表示的。例如:将此值设为50,表示将渲染正常情况下一半距离以内的生物。 此功能模仿了客户端视频设置中的功能,而不像客户端的渲染距离设置一样只能在服务器设置的限制下调整渲染距离。 |
force-gamemode | 布尔值 | false | 强制玩家加入时为默认游戏模式。 false - 玩家将以退出前的游戏模式加入 true - 玩家总是以默认游戏模式加入 |
function-permission-level | 整数(1-4) | 2 | 设定函数的默认权限等级。 4个等级的详情见 #op-permission-level。 |
gamemode | 字符串 | survival | 定义默认游戏模式。 如果值是旧用的数字,会静默转换为对应游戏模式的英文名称。 survival (0) - 生存模式 creative (1) - 创造模式 adventure (2) - 冒险模式 spectator (3) - 旁观模式 |
generate-structures | 布尔值 | true | 定义是否能生成结构(例如村庄)。 false - 新生成的区块中将不包含结构。 true - 新生成的区块中将包含结构。 |
generator-settings | 字符串 | {} | 本属性质用于自定义世界的生成。详见超平坦世界和自定义了解正确的设定及例子。 |
hardcore | 布尔值 | false | 如果设为 true,服务器难度的设置会被忽略并且设为hard(困难),玩家在死后会自动切换至旁观模式。 |
hide-online-players | 布尔值 | false | 如果设为 true,服务端在响应客户端状态请求时不会返回在线玩家列表。 |
initial-disabled-packs | 字符串 | 空白 | 需要在创建世界过程中禁用的数据包名称,以逗号分隔。 |
initial-enabled-packs | 字符串 | vanilla | 需要在创建世界过程中启用的数据包名称,以逗号分隔。特别地,功能数据包必须在此指定才能生效。 |
level-name | 字符串 | world | “level-name”的值将作为世界名称及其文件夹名。你也可以把你已生成的世界存档复制过来,然后让这个值与那个文件夹的名字保持一致,服务器就可以载入该存档。 部分字符,例如 |
level-seed | 字符串 | 空白 | 与单人游戏类似,为你的世界定义一个种子。 这里有一些例子:minecraft,404,1a2b3c。 |
level-type | 字符串 | minecraft:normal | 使用世界预设ID,确定地图所生成的类型。 使用世界预设ID时,需要在其中的“:”前加“\”转义。原版世界预设ID可以省略其前面的“minecraft:”(即命名空间)。 minecraft:normal - 带有丘陵、河谷、海洋等的标准的世界。 minecraft:flat - 一个没有特性的平坦世界,可用generator-settings修改。 minecraft:large_biomes - 如同默认的世界,但所有生物群系都更大。 minecraft:amplified - 如同默认的世界,但世界生成高度提高。 minecraft:single_biome_surface - 单一生物群系世界,可用generator-settings修改。 |
log-ips | 布尔值 | true | 是否在有新玩家加入游戏时,在服务器日志中记录其IP地址。 true - 在日志中记录新加入玩家的IP地址。 false - 在日志中隐藏新加入玩家的IP地址。 |
max-build-height | 整数 | 256 | 玩家在游戏中能够建造的最大高度。可能会在该值较小时生成超过该值的地形。 |
max-chained-neighbor-updates | 整数[需要更多信息] | 1000000 | 限制连锁NC更新的数量,超过此数量的连锁NC更新会被跳过。若为负数则无限制。 |
max-players | 整数(0-2147483647) | 20 | 服务器同时能容纳的最大玩家数量。请注意,在线玩家越多,对服务器造成的负担也就越大。同样注意,服务器的OP具有在人满的情况下强行进入服务器的能力:找到在服务器根目录下叫ops.json的文件并打开,将需要此能力的OP下的bypassesPlayerLimit选项设置为true即可(默认值为false),这意味着OP将不需要在服务器人满时等待有玩家离开后再加入。过大的数值会使客户端显示的玩家列表崩坏。 |
max-tick-time | 整数(0–(2^63 - 1)) | 60000 | 设置每个tick花费的最大毫秒数。超过该毫秒数时,服务器watchdog插件将停止服务器程序并附带上信息:服务器的一个tick花费了60.00秒(最长也应该只有0.05秒);判定服务器已崩溃,它将被强制关闭。遇到这种情况的时候,它会调用 System.exit(1)。 译者注:如果你监测服务程序的返回代码,此时返回代码会为1。(习惯上,程序正常退出应当返回0) -1 - 完全停用watchdog插件(这个停用选项在14w32a快照中添加) |
max-world-size | 整数(1-29999984) | 29999984 | 设置可让世界边界获得的最大半径值,单位为方块。通过成功执行的命令能把世界边界设置得更大,但不会超过这里设置的最大方块限制。如果设置的max-world-size超过默认值的大小,那将不会起任何效果。 例如:
|
motd | 字符串 | A Minecraft Server | 本属性值是玩家客户端的多人游戏服务器列表中显示的服务器信息,显示于名称下方。 |
network-compression-threshold | 整数 | 256 | 默认会允许n-1字节的数据包正常发送, 如果数据包为n字节或更大时会进行压缩。所以,更低的数值会使得更多的数据包被压缩,但是如果被压缩的数据包字节太小将反而使压缩后字节更大。 -1 - 完全禁用数据包压缩 0 - 压缩全部数据包 注:以太网规范要求把小于64字节的数据包填充为64字节。因此,设置一个低于64的值可能没有什么好处。也不推荐让设置的值超过MTU(通常为1500字节)。 |
online-mode | 布尔值 | true | 是否让服务器对比Minecraft账户数据库验证登录信息。只有在你的服务器并未与Internet连接时,才将这个值设为false。如果设为false,黑客就能够使用任意假账户连接服务器!如果minecraft.net服务器宕机或不可访问,那么该值设为true的服务器会因为无法验证玩家身份而拒绝所有玩家加入。通常,这个值设为true的服务器被称为“正版服务器”。故意设定该变量为false的服务器称为“破解服务器”(也称离线服务器),这类服务器允许拥有未授权的Minecraft副本的玩家加入。 true - 启用。服务器会认为自己具有Internet连接,并检查每一位连入的玩家。 false - 禁用。服务器不会尝试检查玩家。 |
op-permission-level | 整数(1-4) | 4 | 设定使用/op 命令时OP的权限等级。所有存档会从之前的存档继承能力和命令。 1 - OP可以绕过重生点保护。 2 - OP可以使用所有单人游戏作弊命令(除了 |
player-idle-timeout | 整数 | 0 | 如果不为0,服务器将在玩家的空闲时间达到设置的时间(单位为分钟)时将玩家踢出服务器注:当服务器接受到下列数据包之一时将会重置空闲时间: |
prevent-proxy-connections | 布尔值 | false | 如果服务器发送的ISP/AS和Mojang的验证服务器的不一样,玩家将会被踢出。 true - 启用。服务器将会禁止玩家使用虚拟专用网络或代理。 false - 禁用。服务器将不会禁止玩家使用虚拟专用网络或代理。 |
pvp | 布尔值 | true | 是否允许PvP。也只有在允许PvP时玩家自己的箭才会受到伤害。 true - 玩家可以互相伤害。 false - 玩家无法互相造成伤害(也称作玩家对战环境(PvE))。 |
query.port | 整数(1-65534) | 25565 | 设置监听服务器的端口号(参见 enable-query)。 |
rate-limit | 整数 | 0 | 设置玩家被踢出服务器前,可以发送的数据包数量。 设置为0表示关闭此功能。 |
rcon.password | 字符串 | 空白 | 设置RCON远程访问的密码(参见enable-rcon)。RCON:能允许其他应用程序通过互联网与Minecraft服务器连接并交互的远程控制台协议。 |
rcon.port | 整数(1-65534) | 25575 | 设置RCON远程访问的端口号。 |
require-resource-pack | 布尔值 | false | 当此选项启用(设为true)时,玩家会被提示作出选择(是否启用服务器资源包)。如果玩家拒绝则会被服务器断开连接。
|
resource-pack | 字符串 | 空白 | 可选选项,可输入指向一个资源包的URI。玩家可选择是否使用该资源包。 注意若该值含":"和"="字符,需要在其前加上反斜线(\),例如 http\://somedomain.com/somepack.zip?someparam\=somevalue 资源包大小理应不能超过
注意,下载成功或失败由客户端记录,而非服务器。 |
resource-pack-prompt | 字符串 | 空白 | 可选,用于在使用 与聊天组件语法一致,可以包含多行文本。 |
resource-pack-sha1 | 字符串 | 空白 | 资源包的SHA-1值,必须为小写十六进制,建议填写它。这还没有用于验证资源包的完整性,但是它提高了资源包缓存的有效性和可靠性。 |
server-ip | 字符串 | 空白 | 将服务器与一个特定IP绑定。强烈建议留空该属性值! 留空,或是填入你想让服务器绑定(监听)的IP。 |
server-port | 整数(1-65534) | 25565 | 改变服务器(监听的)端口号。如果服务器在使用NAT的网络中运行,该端口必须被转发(在你有家用路由器/防火墙的前提下)。 |
simulation-distance | 整数(3-32) | 10 | 设置服务端可更新实体范围的最大值,即玩家各个方向上的区块数量(是以玩家为中心的半径,不是直径)。超出此范围的实体不会被更新,对玩家也不可见。 默认/推荐设置为10,如果有严重卡顿的话,减少该数值。 |
spawn-animals | 布尔值 | true | 决定动物是否可以生成。 true - 动物可以正常生成。 false - 动物生成后会立即消失。 提示:如果你有严重的卡顿,可以设为false。 |
spawn-monsters | 布尔值 | true | 决定攻击型生物(怪物)是否可以生成。 true - 启用。怪物会生成于夜晚和黑暗处。 false - 禁用。不会有任何怪物。 如果difficulty=0(即难度设置为和平)的话,该属性值不会有任何影响。 提示:如果你有严重的卡顿,可以设为false。 |
spawn-npcs | 布尔值 | true | 决定是否生成村民。 true - 启用。生成村民。 false - 禁用。不生成村民。 |
spawn-protection | 整数 | 16 | 通过将该值进行2x+1的运算来决定出生点的保护半径。设置为1会保护以出生点为中心的3×3方块的区域,2会保护5×5方块的区域,3会保护7×7方块的区域,以此类推。这个选项不在第一次服务器启动时生成,只会在第一个玩家加入服务器时出现。如果服务器没有设置OP,这个选项会自动禁用。 设置为0会禁用出生点保护。 |
sync-chunk-writes | 布尔值 | true | 启用后区块文件以同步模式写入。 |
text-filtering-config | 字符串[需要测试] | 空白 | 服务器中需要被屏蔽的文本。[需要测试] |
use-native-transport | 布尔值 | true | 是否使用针对Linux平台的数据包收发优化。此选项仅会在Linux平台上生成。 true - 启用。启用Linux数据包收发优化。 false - 禁用。禁用Linux数据包收发优化。 |
view-distance | 整数(3-32) | 10 | 设置服务端发送给客户端的世界数据量,也就是设置玩家各个方向上的区块数量(是以玩家为中心的半径,不是直径)。它决定了服务端的可视距离。(另见渲染距离) 默认/推荐设置为10,如果有严重卡顿的话,减少该数值。 |
white-list | 布尔值 | false | 启用服务器的白名单。 当启用时,只有白名单上的用户才能连接服务器。白名单主要用于私人服务器,例如提供给相识的朋友、通过应用流程谨慎选择的陌生人等。 false - 不使用白名单。 true - 从whitelist.json文件加载白名单。 注: OP会自动被视为在白名单上,所以无需再将OP加入白名单。 |