网站Logo 雪花凌落的盛夏

我的世界服务端搭建

admin
77
2025-05-24

我的世界服务端搭建

使用forge搭建服务端

访问forge官网,下载forge安装包,已Forge 1.20.1为例
Minecraft Forge 下载:https://files.minecraftforge.net/net/minecraftforge/forge/

image-oYEj.png

确保服务器的 Java 环境

Java 版本:Forge 1.20.1 需要 JDK 17(建议使用 OpenJDK 17)。
验证 Java:在命令行输入以下命令,确认 Java 是否已正确安装

java -version

安装1.20.1服务端

# 创建服务端核心
java -jar forge-1.20.1-47.4.0-installer.jar --installServer

# 生成配置文件
bash run.sh
  • --installServer 参数表示安装服务端。
    • 安装完成后,命令行会生成以下文件和文件夹:
    • server.jar(核心服务端文件)
    • mods/(存放模组的文件夹)
    • config/(配置文件)
    • eula.txt(用户协议文件)

配置文件修改

接受用户协议

  • 打开 eula.txt 文件,将其中的 eula=false 修改为 eula=true。
  • 保存文件并关闭编辑器。
  1. 生成的文件

    • server.properties(服务器主配置文件)
    • level-name/(世界存档文件夹)
    • users.json(玩家白名单和权限文件)
  2. 编辑 server.properties 文件

    # 服务器端口
    server-port=25565
    # 最大玩家数
    max-players=20
    # 游戏模式(survival, creative, adventure, spectator)
    gamemode=survival
    # 是否允许作弊
    allow-cheats=true
    # 是否启用正版验证
    online-mode=true
    

    修改完成后保存文件。

启动游戏服务器

bash run.sh

Minecraft server.properties 文件解析

server.properties 是 Minecraft 服务器的核心配置文件,位于服务器根目录。它定义了服务器的运行参数(如端口、难度、玩家上限等)。以下是常见配置项的详细解析:


基础设置

配置项 默认值 说明
server-port 25565 服务器监听的端口(需确保端口未被占用且防火墙放行)。
server-ip 绑定服务器的 IP 地址(留空则使用所有可用 IP)。
motd A Minecraft Server 服务器描述(显示在玩家列表中的第二行)。
max-players 20 最大玩家数量(受服务器性能限制)。

世界设置

配置项 默认值 说明
level-name world 世界文件夹名称(对应 ./world/ 目录)。
gamemode survival 默认游戏模式:survival(生存)、creative(创造)、adventure(冒险)、spectator(旁观)。
difficulty easy 游戏难度:peaceful(和平)、easy(简单)、normal(普通)、hard(困难)。
hardcore false 是否启用极限模式(死亡后无法复活)。
pvp true 是否允许玩家互相攻击。
generate-structures true 是否生成自然结构(村庄、地牢等)。
level-type default 世界类型:default(标准)、flat(超平坦)、largebiomes(巨型生物群系)。

网络与安全

配置项 默认值 说明
online-mode true 是否开启正版验证(false允许盗版玩家加入)。
white-list false 是否启用白名单(需在 whitelist.json 添加玩家)。
enforce-whitelist false 是否强制检查白名单(开启后需重启生效)。
enable-rcon false 是否启用远程控制(RCON)。
rcon.password RCON 远程管理的密码(需 enable-rcon=true)。

性能优化

配置项 默认值 说明
view-distance 10 玩家可视区块范围(值越大越吃性能,建议 6-12)。
simulation-distance 10 服务器模拟实体/红石的范围(1.18+ 版本关键设置)。
network-compression-threshold 256 网络压缩阈值:-1(禁用压缩)、0(压缩所有数据包)。

高级功能

配置项 默认值 说明
allow-flight false 是否允许飞行(需为 true 才能使用鞘翅或飞行模组)。
enable-command-block false 是否启用命令方块。
spawn-protection 16 出生点保护半径(设为 0 可禁用保护)。
resource-pack 强制客户端加载的资源包 URL(需配合 SHA-1 校验)。
max-tick-time 60000 单次 tick 最大耗时(毫秒),超时则服务器强制关闭。

配置文件示例

# 基础设置
server-port=25565
motd=My Awesome Server
max-players=50

# 世界设置
level-name=survival_world
gamemode=survival
difficulty=hard
pvp=true

# 网络与安全
online-mode=true
white-list=true
enable-rcon=true
rcon.password=StrongPassword123

# 性能优化
view-distance=8
simulation-distance=6

注意事项

  1. 修改后重启:大部分配置需重启服务器才能生效。
  2. 备份文件:修改前建议备份 server.properties
  3. 参数格式:布尔值用 true/false,字符串无需引号。
  4. 版本差异:部分参数随 Minecraft 版本更新而变化(如 simulation-distance 替代了旧版的 max-tick-time)。

Minecraft 白名单系统详解:white-listwhitelist.json

白名单系统是 Minecraft 服务器的重要安全功能,用于控制哪些玩家可以进入服务器。以下是完整的使用指南:


一、启用白名单的步骤

  1. 修改 server.properties
    开启白名单功能:

    white-list=true
    enforce-whitelist=true  # 设为 true 时,服务器会主动强制执行白名单
    
  2. 重启服务器
    修改后必须重启服务器才能生效。


二、管理白名单的 3 种方式

▶ 方式 1:游戏内命令(推荐)

在服务器控制台或由 OP 玩家在游戏内执行:

# 添加玩家
/whitelist add <玩家名>

# 移除玩家
/whitelist remove <玩家名>

# 查看当前白名单
/whitelist list

# 重新加载白名单(修改文件后使用)
/whitelist reload

▶ 方式 2:直接编辑 whitelist.json

文件位置:服务器根目录/whitelist.json
正确格式

[
  {
    "uuid": "e9b9d8e7a6f5c4d3b2a1f0e1d2c3b4a5", 
    "name": "Steve"
  },
  {
    "uuid": "d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9", 
    "name": "Alex"
  }
]

▶ 方式 3:服务器控制台

在服务器终端输入(不需要 / 前缀):

whitelist add Notch

三、获取玩家 UUID 的方法

UUID 是玩家的唯一标识符(即使改名也不会变)

  1. 官网查询(需要正版账号)
    访问:https://mcuuid.net/

  2. 服务器日志获取
    当玩家尝试加入服务器时,日志会显示其 UUID:

    [12:34:56] [User Authenticator/INFO]: UUID of player Notch is 069a79f444e94726a5befca90e38aaf5
    
  3. 游戏内命令
    OP 玩家对目标玩家执行:

    /data get entity <玩家名> UUID
    

四、whitelist.json 文件规范

字段 必填 说明
uuid 玩家的唯一标识符(32位十六进制,带连字符)
name 玩家当前用户名(区分大小写)
ignoresPlayerLimit 是否绕过人数限制(默认 false)

完整示例

[
  {
    "uuid": "069a79f444e94726a5befca90e38aaf5",
    "name": "Notch",
    "ignoresPlayerLimit": true  // 此人可绕过人数上限
  },
  {
    "uuid": "853c80ef3c3749fdaa49938b674adae6",
    "name": "Jeb_"
  }
]

五、白名单系统注意事项

  1. 用户名更改处理
    当玩家改名时:

    • 白名单 仍然有效(通过 UUID 识别)
    • 建议更新 name 字段保持可读性:/whitelist reload
  2. 文件编辑规则

    • 修改时必须 停止服务器 或使用 whitelist reload
    • JSON 文件必须使用 UTF-8 无 BOM 编码
    • 最后一个玩家数据后 不能有逗号
  3. 权限优先级

    graph LR A[尝试加入服务器] --> B{白名单开启?} B -->|是| C{UUID在whitelist.json中?} C -->|是| D[允许加入] C -->|否| E[拒绝加入] B -->|否| D

六、常见问题解决

问题现象 解决方案
玩家在白名单中仍被拒绝 1. 检查 UUID 是否正确 2. 执行 /whitelist reload
修改文件后无效 1. 确认 JSON 格式正确 2. 检查文件权限 3. 重启服务器
OP 玩家是否需要白名单 需要!OP 权限和白名单是独立系统
白名单与正版验证关系 白名单开启时,盗版服务器(online-mode=false)仍需 UUID

⚠️ 重要提示:当 enforce-whitelist=true 时,任何不在白名单的玩家(包括 OP)都无法加入服务器!


七、高级管理技巧

  1. 批量导入玩家
    使用脚本转换 CSV 到 JSON:

    import csv, json, uuid
    with open('players.csv') as f:
        data = [{"uuid": row[0], "name": row[1]} for row in csv.reader(f)]
    with open('whitelist.json', 'w') as f:
        json.dump(data, f, indent=2)
    
  2. 自动同步白名单
    通过 Discord 机器人管理(使用 bot 如 DiscordSRV):

    !whitelist add Notch
    
  3. 白名单备份
    定期备份 whitelist.json 文件,防止数据丢失。

通过合理使用白名单系统,您可以打造安全的私密服务器环境!

动物装饰