部署属于自己的MC服务器
dokcer一键部署的轮椅服务器
开MC服
主包经常在寒暑假开MC服玩,每次租一个月面版服然后一周目大伙只玩半个月,这么算一个月就是几十块,没人玩就感觉有点小亏。正好手边有闲置的Mac,于是想了个开服方案:本地部署MCSM+内网穿透。
Docker部署MCSM
Macos上整这些环境也挺麻烦的,这边直接上Docker了。这里不讲docker教程,如果遇到下载镜像太慢或者是无法下载的问题,自行搜索相关镜像加速与Docker代理教程。下边我写了个Docker Compose一键部署。
# MCSManager Docker Compose 配置
services:
web:
image: githubyumao/mcsmanager-web:latest
ports:
- "23333:23333"
volumes:
- /etc/localtime:/etc/localtime:ro
- ./mcsmanager/web/data:/opt/mcsmanager/web/data
- ./mcsmanager/web/logs:/opt/mcsmanager/web/logs
extra_hosts:
- "host.docker.internal:host-gateway"
- "localhost:host-gateway"
restart: unless-stopped
daemon:
image: githubyumao/mcsmanager-daemon:latest
restart: unless-stopped
ports:
- "24444:24444"
- "24445:24444"
# 此处可以任意设置范围,供暴露服务器端口使用
- "25565-25575:25565-25575"
environment:
- MCSM_DOCKER_WORKSPACE_PATH=./mcsmanager/daemon/data/InstanceData
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- ./mcsmanager/daemon/data:/opt/mcsmanager/daemon/data
- ./mcsmanager/daemon/logs:/opt/mcsmanager/daemon/logs
- /var/run/docker.sock:/var/run/docker.sock
把上面复制到dokcer-compose.yml中,并把这个compose文件放到你方便找到的文件夹里边去。然后在终端输入命令下边的启动。
docker compose up -d
配置MCSM节点与实例
在部署完后,MCSM默认会在http://localhost:23333上打开。进入页面,首先点击👉节点-新增节点进行配置。
关于此处的远程节点密钥,需要到你docker-compose文件夹下找到mcsmanager/daemon/data/Config/global.json这个文件,其中"key": "15****************403"即为远程节点密钥。填写完毕后提交即可。接下来到应用实例或点击应用市场。
在应用实例中配置MC服务端
在你上传完了服务端整合包后,进入到设备实例设置里。
如果你的整合包里有启动脚本(如start.sh、start.bat),那么就只需要在启动命令里输入这么一段命令:
如果你的整合包没有启动脚本文件,只有个server.jar这样的服务器核心,则需要输入以下命令:
#!/bin/bash
# 最小&最大内存占用
java -Xms12G -Xmx12G -jar 你的服务端核心文件名.jar --nogui
如果你使用的是 Paper、Purpur 或 Fabric 等高性能核心,强烈建议使用带有 Aikar's Flags 优化的启动参数。这套参数能显著降低服务器的垃圾回收(GC)卡顿,提升 TPS(每秒刻数),让游戏体验更丝滑。
#!/bin/bash
java -Xms12G -Xmx12G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar 你的服务端核心文件名.jar --nogui
现在基本完成了开服工作,记得调整服务器各种设置文件。
联机网络方案
服务器跑起来了,现在就要解决联机的网络问题了,考虑到现在运营商严查上行带宽跑PCDN,个人申请公网IP的开服的难度越来越高。这里提供两种更稳妥的替代方案:
异地组网
如果你主要和固定的几个朋友联机,这是目前最稳定、延迟最低且成本最低的方案。通过组建虚拟局域网,让朋友的设备和你本地的服务器 处于同一个“虚拟网络”下,就像下连同一个 WiFi 一样。
EasyTier (首选推荐):一款开源、去中心化的内网穿透工具。它支持全平台(Mac/Windows/Android等),配置极其简单。
Tailscale / ZeroTier:老牌且成熟的虚拟组网工具,稳定性极佳。有时受限于中转节点速度,但是开un始砍免费用户的接入设备数了,人多的话不太方便。
内网穿透
如果你想开一个公开服务器,或者朋友不方便安装组网软件,可以选择商业内网穿透服务。它们通过中间服务器转发流量,无需好友配合操作,方便得多。
Cpolar / NATAPP:国内老牌的内网穿透服务商,提供免费的基础隧道(通常是随机端口/地址或限制带宽),付费后可以获得固定的端口/地址,避免了经常换服务器地址。
ChmlFrp:性价比高,对于 15 人左右的小服,一个月 8 块钱的会员通常就够用了,线路相对稳定。
Cloudflare Tunnel:需要一个域名,配置起来可能有些麻烦(曾经尝试过用这个方法,但是暴露出来的服务器tcp端口开了游戏一直连不上去),对于大陆网络环境来说延迟可能有点大。
