- 🎮 Minecraft 协议兼容: 完整支持 Minecraft 服务器状态查询和登录流程
- 🔄 上游服务器同步: 自动同步真实 Minecraft 服务器的状态信息
- 🛡️ 智能限流防护: IP 级别和全局限流,有效防止攻击
- 📊 详细监控记录: 记录所有连接和攻击行为,便于分析
- ⚡ 高性能架构: 支持大量并发连接
- 🔧 灵活配置: 简单的 YAML 配置文件
| 特性 | 指标 |
|---|---|
| 🔗 并发连接 | 10,000+ |
| ⚡ 响应时间 | < 100ms |
| 💾 内存占用 | < 50MB |
| 🌐 平台支持 | Windows / Linux / macOS |
- Go: 1.21 或更高版本
- 操作系统: Linux、macOS、Windows
- 端口: 25565 (Minecraft 默认端口)
- 内存: 至少 256MB 可用内存
🔧 点击展开详细步骤
# 克隆项目
git clone <repository-url>
cd FakeMCServer
# 安装依赖
go mod tidy
# 编译(Windows)
go build -o fake-mc-server.exe cmd/server/main.go
# 编译(Linux/macOS)
go build -o fake-mc-server cmd/server/main.go复制示例配置文件:
# Windows
copy config\example.config.yml config\config.yml
# Linux/macOS
cp config/example.config.yml config/config.yml编辑 config/config.yml 文件,重点配置以下项目:
server:
host: "0.0.0.0" # 监听地址
port: 25565 # Minecraft 标准端口
upstream:
enabled: true # 是否启用上游同步
address: "mc.hypixel.net" # 要模拟的真实服务器# Windows
fake-mc-server.exe -config config/config.yml
# Linux/macOS
./fake-mc-server -config config/config.yml🚢 点击展开 Docker 部署选项
# 构建镜像
docker build -t fake-mc-server .
# 运行容器
docker run -d \
--name fake-mc-server \
-p 25565:25565 \
-v $(pwd)/config:/app/config \
fake-mc-server创建 docker-compose.yml 文件:
version: '3.8'
services:
fake-mc-server:
build: .
ports:
- "25565:25565"
volumes:
- ./config:/app/config
restart: unless-stopped运行:
docker-compose up -d💡 提示: 推荐使用 Docker 部署方式,更加简单且易于管理!
📝 点击展开详细配置说明
# 🖥️ 服务器配置
server:
host: "0.0.0.0" # 🌐 监听地址,0.0.0.0 表示监听所有网卡
port: 25565 # 🔌 监听端口,Minecraft 默认端口
max_connections: 10000 # 🔗 最大连接数
# 🔄 上游服务器配置
upstream:
enabled: true # ✅ 是否启用上游同步
address: "mc.hypixel.net" # 🎯 要模拟的真实服务器地址
sync_interval: "10s" # ⏱️ 状态同步间隔
# 🛡️ 限流配置
rate_limit:
ip_limit: 5 # 🚦 单个 IP 每秒最大连接数
global_limit: 100 # 🌍 全局每秒最大连接数
# 📝 日志配置
logging:
level: "info" # 📊 日志级别: debug, info, warn, error
format: "console" # 🖨️ 日志格式: json, console| 格式类型 | 示例 | 说明 |
|---|---|---|
| 🔢 IP 地址 | 192.168.1.1:25565 |
直接 IP 连接 |
| 🌍 域名 | example.com:25565 |
域名解析 |
| 📋 SRV 记录 | mc.example.com |
自动 DNS SRV 查询 |
服务器启动后,Minecraft 客户端可以:
- ✨ 在服务器列表中看到这个服务器
- 📊 看到与真实服务器相同的 MOTD、在线人数等信息
- 🔒 尝试连接时会被记录但无法真正进入游戏
服务器会记录以下信息:
- 🔍 所有连接尝试的 IP 地址
- 👤 玩家尝试使用的用户名
- 📈 连接频率和攻击模式
- 🚨 限流触发情况
📋 点击查看日志示例
2024/08/14 10:30:45 [INFO] 新连接: 192.168.1.100
2024/08/14 10:30:45 [WARN] 登录尝试: ip=192.168.1.100 username=admin
2024/08/14 10:30:46 [WARN] 限流触发: ip=192.168.1.100 超过连接限制📝 点击展开 systemd 配置
创建 systemd 服务文件 /etc/systemd/system/fake-mc-server.service:
[Unit]
Description=Fake Minecraft Server
After=network.target
[Service]
Type=simple
User=minecraft
Group=minecraft
WorkingDirectory=/opt/fake-mc-server
ExecStart=/opt/fake-mc-server/fake-mc-server -config /opt/fake-mc-server/config/config.yml
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target启用服务:
sudo systemctl enable fake-mc-server
sudo systemctl start fake-mc-server
sudo systemctl status fake-mc-server🔧 点击展开高级 Docker 配置
使用持久化存储和日志:
docker run -d \
--name fake-mc-server \
--restart unless-stopped \
-p 25565:25565 \
-v /opt/fake-mc-server/config:/app/config \
--memory="256m" \
--cpus="1.0" \
fake-mc-server| 安全措施 | 重要性 | 说明 |
|---|---|---|
| 🔥 防火墙配置 | 🔴 高 | 只开放必要端口 (25565) |
| 📁 日志轮转 | 🟡 中 | 避免磁盘空间占满 |
| 📊 监控告警 | 🟠 中 | 异常连接数量告警 |
| 🔍 定期分析 | 🟢 低 | 分析攻击模式和来源 |
❓ 常见问题解答
💡 A: 检查 25565 端口是否被其他程序占用,使用 netstat -an | grep 25565 查看
💡 A: 检查防火墙设置,确保 25565 端口已开放
💡 A: 检查 upstream.address 配置是否正确,确保网络能够访问目标服务器
💡 A: 配置日志轮转或调整日志级别为 "warn" 或 "error"
启用调试日志查看更多信息:
logging:
level: "debug"| 项目信息 | 详情 |
|---|---|
| 🚀 当前版本 | v1.0.0 |
| 📅 最后更新 | 2024年8月14日 |
| 🌍 支持平台 | Windows / Linux / macOS |
| 🔧 Go 版本 | 1.21+ |
| 📦 依赖数量 | 最小化依赖 |
我们欢迎所有形式的贡献!
- 🍴 Fork 这个项目
- 🌿 创建你的功能分支 (
git checkout -b feature/AmazingFeature) - 💾 提交你的更改 (
git commit -m 'Add some AmazingFeature') - 📤 推送到分支 (
git push origin feature/AmazingFeature) - 🔄 开启一个 Pull Request
该项目采用 MIT 许可证 - 查看 LICENSE 文件了解详细信息。
© 2024 NewNanCity Team. All rights reserved.