前段时间的京东云49元云主机直接拿下,看着性能貌似能够开个游戏服务器,正好还可以写个文章。
本期我决定采用Spigot核心。
优势:
- 基于 CraftBukkit
- 可以 安装支持 BukkitAPI,SpigotAPI 的插件
- 稳定性好
- 性能较好
首先我们先登录到京东云服务器后台,为了便于管理,我建议大家可以选择创建一个目录用来专门存放我的世界的服务器。
我们在进入服务器之后,可以通过screen命令来创建一个专门的界面,方便去管理服务器
screen -s minecraft #创建 创建后默认会进入内 screen -r minecraft #加入 #如果出现加入不成功,应该是名字出错了。 screen -ls #显示可用的scrren #一般显示一个 PID.名字 把这个完整的复制之后当作screen名称进入就行(单独pid也可以) #如果会话一直提示Attached就可以用下面的指令 screen -D -r PID #同时也建议在每次关闭终端前,Ctrl+A D 退出会话,便于下一次返回!
首先输入 mkdir minecraft_sever 来创建一个目录,之后cd minecraft_sever 进入目录。
之后我们去获取服务端核心,我们不能直接下载服务器核心,需要我们自己去构建一次。我们首先打开下面网址:BuildTools [Jenkins] 把buildtolls工具下载下来,需要有java 8 环境去运行,如果你想要运行高版本服务器,可能还需要去下载java17,简易直接安装java17。
至于为什么要我们自己构建,当就得去问jong了,当然,保护自己的产权无可厚非。不过我其实更为推荐去 getbukkit ,在里面提供了构建完成的服务器核心,但是不知道为什么没办法下载,提示404,建议大家自己先去试试能不能下载,把buildtools放在第二位。
buildtools的使用方式也很傻瓜,并不难,只要是由于仓库在github速度很慢,简易大家挂个梯子,但是如果出现挂了梯子之后,下载直接报错,软件卡死,不用惊慌,证书问题,把梯子关了耐心等待吧。
我们解决了服务器核心的问题之后,把他传输的我们的服务器里面。
随后输入以下命令
dir #确定自己的jar文件名 java -Xmx2G -Xms1G -jar 你的服务器核心文件名称
按照这样子做,你的服务器应该会在运行一段时间后结束,这是因为我们需要先去同意一下eula规则。
输入
nano eula.txt
前去编辑eula规则
你可能会看到一下内容
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA).
#Sat Mar 22 11:21:18 HKT 2025
eula=false
将内部的false改为true,按下ctrl + o 保存,之后重新运行服务器。
当我们看到在日志的末尾出现done的字样,代表服务器已经在运行中了。
可以输入/help 来去测试一下,正常会输出很多的命令。
如果运行没错,我们再去服务器后台,把我们的服务器端口放行,协议是TCP,端口默认是25565,如果不确定,可以去打开服务器的server.properties,看看里面的server-port后面的值是什么,就是端口号。
如果你想要用离线游玩,也是打开server.properties,找到online-mode,把里面的true改为false。
如果你想要修改服务器描述,找到motd,就是服务器描述,同时他支持 § 如果你发现输入了颜色符号却没有变化,可以尝试将其修改为\u00A7,如果还是不行,那就只能尝试用插件了。
如果你想要修改服务器标题,你需要先找到一个64×64的png图片当作你的服务器图标,将其丢到你的服务器里面。
最后再附上一个对server.properties的解释
#Minecraft server properties enable-jmx-monitoring=false #是否启用 Java 管理扩展(JMX)监控,通常保持 false(仅用于高级调试) rcon.port=25575 #RCON(远程控制)端口,需配合 enable-rcon=true 使用,用于第三方工具管理服务器。 level-seed= #世界生成的种子(Seed),留空则随机生成。可填入特定种子(如 12345)生成固定地形。 gamemode=survival #默认游戏模式:survival(生存)、creative(创造)、adventure(冒险)。 enable-command-block=true #是否启用命令方块。开启后允许使用命令方块,但需注意安全性(可能被恶意利用)。 enable-query=false #是否开启查询服务(用于获取服务器状态),通常保持关闭。 generator-settings={} #自定义世界生成器设置(JSON格式),留空使用默认生成规则。 enforce-secure-profile=true #是否强制玩家使用 Mojang 签名皮肤(仅正版有效)。若 online-mode=false 此项无效。 level-name=world #存档文件名称 motd=§a这是我自己一个人快乐玩耍的服务器,嘿嘿 #服务器描述,支持§ query.port=25565 #查询服务端口(需 enable-query=true),通常与 server-port 一致。 pvp=true #是否允许玩家间攻击(PvP)。关闭则玩家无法互相造成伤害。 generate-structures=true #是否生成村庄、神殿等结构。关闭后世界无自然生成的结构。 max-chained-neighbor-updates=1000000 #连锁方块更新最大数量限制,防止红石装置卡服。默认值足够应对常规场景。 difficulty=easy #游戏难度:peaceful(和平)、easy(简单)、normal(普通)、hard(困难)。 network-compression-threshold=256 #网络压缩阈值(单位:字节)。数据包超过此大小时压缩,降低带宽消耗。推荐默认值。 max-tick-time=60000 #服务器单次计算最大耗时(毫秒),超时则重启。默认 60000(60秒),防止服务器卡死。 require-resource-pack=false #是否强制玩家加载服务器资源包。开启后玩家必须下载资源包才能进入。 use-native-transport=true #是否使用原生网络传输优化(Linux 建议开启,提升性能)。 max-players=10 # 服务器最大玩家数。根据硬件性能调整(1核1G内存约支持5-10人)。 online-mode=false #是否开启正版验证。关闭后允许非正版玩家加入,但存在安全隐患(建议配合白名单使用)。 enable-status=true #是否允许玩家飞行(非创造模式)。开启后可能被作弊工具利用。 allow-flight=false #初始禁用的数据包列表(通常留空)。 initial-disabled-packs= #初始禁用的数据包列表(通常留空)。 broadcast-rcon-to-ops=true#是否向OP玩家广播RCON命令执行结果。需 enable-rcon=true。 view-distance=7 #玩家视距(区块数)。值越大,可见范围越广,但内存和CPU消耗越高(推荐 6-10)。 server-ip= #服务器绑定的IP地址,留空则监听所有网络接口。 resource-pack-prompt= #资源包下载提示信息(需 require-resource-pack=true)。 allow-nether=true #是否允许玩家进入下界。关闭后下界传送门无效。 server-port=25565 #服务器主端口,默认 25565。需在防火墙/安全组中开放此端口。 enable-rcon=false #是否启用RCON远程控制。开启后需设置 rcon.password,建议保持关闭以提升安全性。 sync-chunk-writes=true #是否同步区块写入磁盘。关闭可能提升性能,但增加数据丢失风险。 op-permission-level=4 #OP玩家权限等级(1-4)。4级拥有所有权限(包括命令方块和踢人)。 prevent-proxy-connections=false #是否阻止通过代理连接的玩家。开启后可能误封正常用户。 hide-online-players=false #是否隐藏在线玩家列表。开启后客户端无法查看服务器在线人数。 resource-pack= # 服务器资源包下载链接(需 require-resource-pack=true)。 entity-broadcast-range-percentage=100 #实体广播范围百分比(默认100%)。降低可减少网络流量,但可能影响玩家可见性。 simulation-distance=6 #服务器模拟计算的区块范围(玩家周围加载的区块)。值越小性能越好,但可能影响游戏体验(推荐 4-8) rcon.password= #RCON远程控制密码(需 enable-rcon=true)。 player-idle-timeout=0 #玩家挂机超时时间(分钟)。设为 0 禁用此功能,玩家不会因挂机被踢出。 debug=false #是否启用调试模式。开启后生成详细日志,仅用于故障排查。 force-gamemode=false #是否强制玩家使用默认游戏模式。开启后玩家无法切换模式。 rate-limit=0 #玩家聊天速率限制(字符/秒)。设为 0 表示不限制。 hardcore=false #是否启用极限模式。开启后玩家死亡后无法复活(需同时设置 difficulty=hard)。 white-list=false #是否启用白名单。开启后需在 whitelist.json 中添加允许的玩家ID。 broadcast-console-to-ops=true #是否向OP玩家广播控制台命令执行结果。 spawn-npcs=true #是否生成村民等NPC。关闭后世界无村庄和交易系统。 spawn-animals=true #是否生成动物(牛、羊等)。关闭后世界无自然生成的动物。 function-permission-level=2 #函数文件(.mcfunction)的执行权限等级(1-4)。2级允许OP玩家执行。 initial-enabled-packs=vanilla #初始启用的数据包列表,通常保持 vanilla(原版)。 level-type=minecraft\:normal #世界类型:normal(标准)、flat(超平坦)、large_biomes(巨大化生物群系)等。 text-filtering-config= #文本过滤配置文件路径(用于屏蔽敏感词)。 spawn-monsters=true #是否生成怪物(僵尸、苦力怕等)。关闭后夜晚和洞穴无怪物。 enforce-whitelist=false #是否强制启用白名单(需 white-list=true)。开启后未在白名单的玩家立即被踢出。 spawn-protection=16 #出生点保护半径(区块数)。设为 0 禁用保护,OP玩家可绕过。 resource-pack-sha1= #资源包SHA1校验码(确保资源包完整性)。 max-world-size=29999984 #世界最大半径(区块数)