一. 开服准备
1.寻找合适的设备
你需要一台满足以下要求的服务器/电脑:
服务端分配内存>2GB
如果你选择使用Windows电脑开服,你需要至少4GB运行内存
硬盘可用空间>10GB
上传宽带>10Mbps,下载宽带>5Mbps
不知道带宽?可以前往测速网进行测试(绝大多数家庭宽带均满足此要求)。
你还需要:
基础的电脑知识
一个好用的搜索引擎
虚心请教的心
2.下载文件并配置环境
下载JavaJDK并安装。
不推荐修改安装地址,使用默认安装地址即可。
下载服务端:Vanilla/Spigot(本文着重介绍)/Paper(Spigot下游)/Fabric服务端
功能 | 优点/缺点 | |
---|---|---|
Vanilla | Mojang的原版服务端 | 版本新,但是无任何扩展,不支持插件/mod |
Spigot | 支持大部分插件 | 各类以传送门复制为主的重力放块复制机无法运作、有时内存占用高 |
Paper | 支持大部分插件 | 可自定义部分原版特性,性能占用低,但原版特性阉割严重(如刷线机) |
Fabric | Fabric模组服务端 | 启动速度快,但不支持插件 |
二.初始化服务器
选择一个剩余空间较大的盘,新建文件夹,然后新建StartServer.bat,将以下内容写入Bat:
1 | java -Xmx2048M -Xms2048M -jar server.jar nogui |
-Xms对应服务器分配最小内存大小,-Xms对应服务器分配最大内存大小。
然后复制你下载的服务端文件到此文件夹,并命名为server.jar。
双击bat,此时会在目录下生成eula.txt。
将eula=false修改为eula=true,然后保存并关闭。
再次双击bat,如果你看到了
1 | [Server thread/INFO]: Done (35.522s)! For help, type "help" |
则代表服务器启动成功
三.修改服务器配置文件
server.properties
我们需要修改的是
online-mode:true改为false以允许盗版玩家进入。
server-port:修改为你希望开放的端口。
其他配置的具体翻译:
属性 | 类型 | 描述 |
allow-flight | 布尔值 | 允许玩家在安装添加飞行功能的mod前提下在生存模式下飞行。 |
允许飞行可能会使恶意破坏者更加常见,因为此设定会使他们更容易达成目的。在创造模式下无作用。 | ||
false - 不允许飞行。悬空超过5秒的玩家会被踢出服务器。 | ||
true - 允许飞行。玩家得以使用任何能飞行的mod飞行。 | ||
allow-nether | 布尔值 | 允许玩家进入下界。 |
false - 下界传送门不会生效。 | ||
true - 玩家可以通过下界传送门前往下界。 | ||
broadcast-console-to-ops | 布尔值 | 向所有在线OP发送所执行命令的输出。 |
broadcast-rcon-to-ops | 布尔值 | 向所有在线OP发送通过RCON执行的命令的输出。 |
difficulty | 字符串 | 定义服务器的游戏难度(例如生物对玩家造成的伤害,饥饿和中毒对玩家的影响方式等)。 |
如果设置了旧的数字ID,则会自动转化为英文的难度名称。 | ||
peaceful (0) - 和平 | ||
easy (1) - 简单 | ||
normal (2) - 普通 | ||
hard (3) - 困难 | ||
enable-command-block | 布尔值 | 是否启用命令方块。 |
enable-jmx-monitoring | 布尔值 | 暴露一个具有对象名net.minecraft.server:type=Server的MBean和两个属性averageTickTime和tickTimes用于暴露以毫秒为单位的tick时间。 |
为了启用JRE的JMX,你需要添加在此处所述的一些JVM标志。 | ||
enable-query | 布尔值 | 允许使用GameSpy4协议的服务器监听器。用于获取服务器信息。 |
enable-rcon | 布尔值 | 是否允许远程访问服务器控制台。 |
由于RCON协议传输数据时没有加密,所以不建议把RCON暴露在互联网上。RCON客户端和服务端交换的所有数据(包括RCON密码)都会泄露给正在监听此连接的人。 | ||
enable-status | 布尔值 | 使服务器在服务器列表中看起来是“在线”的。 |
enforce-secure-profile | 布尔值 | 要求玩家必须具有Mojang签名的公钥才能进入服务器。 |
true - 不具有Mojang签名的公钥的玩家不能进入服务器。 | ||
false - 不具有Mojang签名的公钥的玩家也可进入服务器。 | ||
enforce-whitelist | 布尔值 | 在服务器上强制执行白名单。 |
当启用后,不在白名单(前提是启用)中的用户将在服务器重新加载白名单文件后从服务器踢出。 | ||
true - 不在白名单上的用户会被踢出。 | ||
false - 不在白名单上的在线用户不会被踢出。 | ||
entity-broadcast-range-percentage | 整数(10-1000) | 此选项控制实体需要距离玩家有多近才会将数据包发送给客户端。更高的数值意味着实体可以在更远的地方就被渲染,同时也可能提高增加延迟的概率。 |
这个值是以默认值的百分比来表示的。例如:将此值设为50,表示将渲染正常情况下一半距离以内的生物。 | ||
此功能模仿了客户端视频设置中的功能,而不像客户端的渲染距离设置一样只能在服务器设置的限制下调整渲染距离。 | ||
force-gamemode | 布尔值 | 强制玩家加入时为默认游戏模式。 |
false - 玩家将以退出前的游戏模式加入 | ||
true - 玩家总是以默认游戏模式加入 | ||
function-permission-level | 整数(1-4) | 设定函数的默认权限等级。 |
4个等级的详情见 #op-permission-level。 | ||
gamemode | 字符串 | 定义默认游戏模式。 |
如果值是旧用的数字,会静默转换为对应游戏模式的英文名称。 | ||
survival (0) - 生存模式 | ||
creative (1) - 创造模式 | ||
adventure (2) - 冒险模式 | ||
spectator (3) - 旁观模式 | ||
generate-structures | 布尔值 | 定义是否能生成结构(例如村庄)。 |
false - 新生成的区块中将不包含结构。 | ||
true - 新生成的区块中将包含结构。 | ||
注:由于地牢和沙漠水井在技术上属于地物,因而即使此项设为false,其仍然会生成。 | ||
generator-settings | 字符串 | 本属性质用于自定义世界的生成。详见超平坦世界和自定义了解正确的设定及例子。 |
hardcore | 布尔值 | 如果设为 true,服务器难度的设置会被忽略并且设为hard(困难),玩家在死后会自动切换至旁观模式。 |
hide-online-players | 布尔值 | 如果设为 true,服务端在响应客户端状态请求时不会返回在线玩家列表。 |
initial-disabled-packs | 字符串 | 需要在创建世界过程中禁用的数据包名称,以逗号分隔。 |
initial-enabled-packs | 字符串 | 需要在创建世界过程中启用的数据包名称,以逗号分隔。特别地,功能数据包必须在此指定才能生效。 |
level-name | 字符串 | “level-name”的值将作为世界名称及其文件夹名。你也可以把你已生成的世界存档复制过来,然后让这个值与那个文件夹的名字保持一致,服务器就可以载入该存档。 |
部分字符,例如 ‘ (单引号)可能需要在前面加反斜杠号 \ 才能被正常应用。 | ||
level-seed | 字符串 | 与单人游戏类似,为你的世界定义一个种子。 |
这里有一些例子:minecraft,404,1a2b3c。 | ||
level-type | 字符串 | 使用世界预设ID,确定地图所生成的类型。 |
使用世界预设ID时,需要在其中的“:”前加“\”转义。原版世界预设ID可以省略其前面的“minecraft:”(即命名空间)。 | ||
minecraft:normal - 带有丘陵、河谷、海洋等的标准的世界。 | ||
minecraft:flat - 一个没有特性的平坦世界,可用generator-settings修改。 | ||
minecraft:large_biomes - 如同默认的世界,但所有生物群系都更大。 | ||
minecraft:amplified - 如同默认的世界,但世界生成高度提高。 | ||
minecraft:single_biome_surface - 单一生物群系世界,可用generator-settings修改。 | ||
log-ips | 布尔值 | 是否在有新玩家加入游戏时,在服务器日志中记录其IP地址。 |
true - 在日志中记录新加入玩家的IP地址。 | ||
false - 在日志中隐藏新加入玩家的IP地址。 | ||
max-build-height | 整数 | 玩家在游戏中能够建造的最大高度。可能会在该值较小时生成超过该值的地形。 |
max-chained-neighbor-updates | 整数[需要更多信息] | 限制连锁NC更新的数量,超过此数量的连锁NC更新会被跳过。若为负数则无限制。 |
max-players | 整数(0-2147483647) | 服务器同时能容纳的最大玩家数量。请注意,在线玩家越多,对服务器造成的负担也就越大。同样注意,服务器的OP具有在人满的情况下强行进入服务器的能力:找到在服务器根目录下叫ops.json的文件并打开,将需要此能力的OP下的bypassesPlayerLimit选项设置为true即可(默认值为false),这意味着OP将不需要在服务器人满时等待有玩家离开后再加入。过大的数值会使客户端显示的玩家列表崩坏。 |
max-tick-time | 整数(0–(2^63 - 1)) | 设置每个tick花费的最大毫秒数。超过该毫秒数时,服务器watchdog插件将停止服务器程序并附带上信息:服务器的一个tick花费了60.00秒(最长也应该只有0.05秒);判定服务器已崩溃,它将被强制关闭。遇到这种情况的时候,它会调用 System.exit(1)。 |
译者注:如果你监测服务程序的返回代码,此时返回代码会为1。(习惯上,程序正常退出应当返回0) | ||
-1 - 完全停用watchdog插件(这个停用选项在14w32a快照中添加) | ||
max-world-size | 整数(1-29999984) | 设置可让世界边界获得的最大半径值,单位为方块。通过成功执行的命令能把世界边界设置得更大,但不会超过这里设置的最大方块限制。如果设置的max-world-size超过默认值的大小,那将不会起任何效果。 |
例如: | ||
设置 max-world-size为1000将会有2000×2000的地图边界。 | ||
设置 max-world-size为4000将会有8000×8000的地图边界。 | ||
motd | 字符串 | 本属性值是玩家客户端的多人游戏服务器列表中显示的服务器信息,显示于名称下方。 |
MOTD 支持样式代码。 | ||
MOTD 支持特殊符号,比如”♥”。然而,这些符号需要转换为Unicode转义字符。你可以在这里找到一个转换器。 | ||
如果MOTD超过59个字符,服务器列表很可能会返回“通讯错误”。 | ||
network-compression-threshold | 整数 | 默认会允许n-1字节的数据包正常发送, 如果数据包为n字节或更大时会进行压缩。所以,更低的数值会使得更多的数据包被压缩,但是如果被压缩的数据包字节太小将反而使压缩后字节更大。 |
-1 - 完全禁用数据包压缩 | ||
0 - 压缩全部数据包 | ||
注:以太网规范要求把小于64字节的数据包填充为64字节。因此,设置一个低于64的值可能没有什么好处。也不推荐让设置的值超过MTU(通常为1500字节)。 | ||
online-mode | 布尔值 | 是否让服务器对比Minecraft账户数据库验证登录信息。只有在你的服务器并未与Internet连接时,才将这个值设为false。如果设为false,黑客就能够使用任意假账户连接服务器!如果minecraft.net服务器宕机或不可访问,那么该值设为true的服务器会因为无法验证玩家身份而拒绝所有玩家加入。通常,这个值设为true的服务器被称为“正版服务器”。故意设定该变量为false的服务器称为“破解服务器”(也称离线服务器),这类服务器允许拥有未授权的Minecraft副本的玩家加入。 |
true - 启用。服务器会认为自己具有Internet连接,并检查每一位连入的玩家。 | ||
false - 禁用。服务器不会尝试检查玩家。 | ||
op-permission-level | 整数(1-4) | 设定使用/op命令时OP的权限等级。所有存档会从之前的存档继承能力和命令。 |
1 - OP可以绕过重生点保护。 | ||
2 - OP可以使用所有单人游戏作弊命令(除了/publish,因为不能在服务器上使用;/debug也是)并使用命令方块。命令方块和领域服服主/管理员有此等级权限。 | ||
3 - OP可以使用大多数多人游戏中独有的命令,包括 /debug,以及管理玩家的命令(/ban,/op等等)。 | ||
4 - OP可以使用所有命令,包括 /stop, /save-all, /save-on 和 /save-off。 | ||
player-idle-timeout | 整数 | 如果不为0,服务器将在玩家的空闲时间达到设置的时间(单位为分钟)时将玩家踢出服务器 |
注:当服务器接受到下列数据包之一时将会重置空闲时间: | ||
点击窗口 | ||
附魔物品 | ||
更新告示牌 | ||
玩家挖掘方块 | ||
玩家放置方块 | ||
更换拿着的物品 | ||
动画(挥动手臂) | ||
实体动作 | ||
客户端状态 | ||
聊天信息 | ||
使用实体 | ||
prevent-proxy-connections | 布尔值 | 如果服务器发送的ISP/AS和Mojang的验证服务器的不一样,玩家将会被踢出。 |
true - 启用。服务器将会禁止玩家使用虚拟专用网络或代理。 | ||
false - 禁用。服务器将不会禁止玩家使用虚拟专用网络或代理。 | ||
pvp | 布尔值 | 是否允许PvP。也只有在允许PvP时玩家自己的箭才会受到伤害。 |
true - 玩家可以互相伤害。 | ||
false - 玩家无法互相造成伤害(也称作玩家对战环境(PvE))。 | ||
注:由玩家造成的间接伤害(例如熔岩,火,TNT等,某种程度上还有水,沙子和沙砾)还是会伤害其他玩家。 | ||
query.port | 整数(1-65534) | 设置监听服务器的端口号(参见 enable-query)。 |
rate-limit | 整数 | 设置玩家被踢出服务器前,可以发送的数据包数量。 |
设置为0表示关闭此功能。 | ||
rcon.password | 字符串 | 设置RCON远程访问的密码(参见enable-rcon)。RCON:能允许其他应用程序通过互联网与Minecraft服务器连接并交互的远程控制台协议。 |
rcon.port | 整数(1-65534) | 设置RCON远程访问的端口号。 |
require-resource-pack | 布尔值 | 当此选项启用(设为true)时,玩家会被提示作出选择(是否启用服务器资源包)。如果玩家拒绝则会被服务器断开连接。 |
但是,若玩家使用Linux系统加入服务器,游戏目录内的server-resource-packs没有写权限,则会提示“无法应用服务器资源包”“所有依赖自定义资源包的功能都有可能不按预期工作”,并提示玩家“继续”或“断开连接”。若玩家选择“继续”,则仍可在此服务器中游戏。 | ||
resource-pack | 字符串 | 可选选项,可输入指向一个资源包的URI。玩家可选择是否使用该资源包。 |
注意若该值含”:”和”=”字符,需要在其前加上反斜线(),例如 http://somedomain.com/somepack.zip?someparam=somevalue 资源包大小理应不能超过 | ||
50 MiB(1.15-pre5前) | ||
100 MiB(1.15-pre5到1.18-pre8) | ||
250 MiB(1.18-rc1起) | ||
注意,下载成功或失败由客户端记录,而非服务器。 | ||
resource-pack-prompt | 字符串 | 可选,用于在使用require-resource-pack时在资源包提示界面显示自定义信息。 |
与聊天组件语法一致,可以包含多行文本。 | ||
resource-pack-sha1 | 字符串 | 资源包的SHA-1值,必须为小写十六进制,建议填写它。这还没有用于验证资源包的完整性,但是它提高了资源包缓存的有效性和可靠性。 |
server-ip | 字符串 | 将服务器与一个特定IP绑定。强烈建议留空该属性值! |
留空,或是填入你想让服务器绑定(监听)的IP。 | ||
server-port | 整数(1-65534) | 改变服务器(监听的)端口号。如果服务器在使用NAT的网络中运行,该端口必须被转发(在你有家用路由器/防火墙的前提下)。 |
simulation-distance | 整数(3-32) | 设置服务端可更新实体范围的最大值,即玩家各个方向上的区块数量(是以玩家为中心的半径,不是直径)。超出此范围的实体不会被更新,对玩家也不可见。 |
默认/推荐设置为10,如果有严重卡顿的话,减少该数值。 | ||
spawn-animals | 布尔值 | 决定动物是否可以生成。 |
true - 动物可以正常生成。 | ||
false - 动物生成后会立即消失。 | ||
提示:如果你有严重的卡顿,可以设为false。 | ||
spawn-monsters | 布尔值 | 决定攻击型生物(怪物)是否可以生成。 |
true - 启用。怪物会生成于夜晚和黑暗处。 | ||
false - 禁用。不会有任何怪物。 | ||
如果difficulty=0(即难度设置为和平)的话,该属性值不会有任何影响。 | ||
提示:如果你有严重的卡顿,可以设为false。 | ||
spawn-npcs | 布尔值 | 决定是否生成村民。 |
true - 启用。生成村民。 | ||
false - 禁用。不生成村民。 | ||
spawn-protection | 整数 | 通过将该值进行2x+1的运算来决定出生点的保护半径。设置为1会保护以出生点为中心的3×3方块的区域,2会保护5×5方块的区域,3会保护7×7方块的区域,以此类推。这个选项不在第一次服务器启动时生成,只会在第一个玩家加入服务器时出现。如果服务器没有设置OP,这个选项会自动禁用。设置为0将不会禁用出生点保护,但会保护位于出生点的那一个方块(13w05a前)。 |
设置为0会禁用出生点保护(13w05a起,参见MC-666)。 | ||
sync-chunk-writes | 布尔值 | 启用后区块文件以同步模式写入。 |
text-filtering-config | 字符串[需要测试] | 服务器中需要被屏蔽的文本。[需要测试] |
use-native-transport | 布尔值 | 是否使用针对Linux平台的数据包收发优化。此选项仅会在Linux平台上生成。 |
true - 启用。启用Linux数据包收发优化。 | ||
false - 禁用。禁用Linux数据包收发优化。 | ||
view-distance | 整数(3-32) | 设置服务端发送给客户端的世界数据量,也就是设置玩家各个方向上的区块数量(是以玩家为中心的半径,不是直径)。它决定了服务端的可视距离。(另见渲染距离) |
默认/推荐设置为10,如果有严重卡顿的话,减少该数值。 | ||
white-list | 布尔值 | 启用服务器的白名单。 |
当启用时,只有白名单上的用户才能连接服务器。白名单主要用于私人服务器,例如提供给相识的朋友、通过应用流程谨慎选择的陌生人等。 | ||
false - 不使用白名单。 | ||
true - 从whitelist.json文件加载白名单。 | ||
注: OP会自动被视为在白名单上,所以无需再将OP加入白名单。 |
Spigot.yml
四.大功告成!
下一篇我会介绍一些服务器实用插件&其配置文件的修改。
存在疑问/不懂的地方?私信我的b站账户,我会尽力帮你解答。