☰
雾锁王国自建服务器全攻略:从硬件选型到长期运维
2026/9/29 18:36:56 网站建设 项目流程

1. 开服之前:先搞清楚雾锁王国联机的底层逻辑

1.1 这游戏为什么值得自己搭服务器

雾锁王国(Enshrouded)这游戏我从首发就开始玩,最大的感受就是:它把生存建造和动作探索揉得特别顺,但官方服务器的体验一直不太稳定。尤其是你想跟三五个朋友长期在一个世界里造房子、打Boss、探迷雾,官方那套临时房间的机制根本撑不住——房主一下线,世界就关了,别人进不来。所以自己搭一个独立服务器,让世界24小时在线,才是长期玩下去的正解。

自己开服的核心价值有三个:第一,世界持久化,服务器不关,你建的城堡、挖的矿、养的NPC都在;第二,联机人数可控,官方合作模式一般就支持有限人数,自建服务器可以按配置调整;第三,存档自己说了算,备份、迁移、回滚都方便,不怕哪天官方抽风把存档搞没了。

这篇文章适合谁看?如果你有一台闲置的云服务器,或者家里有台性能还行的旧电脑,想跟朋友稳定联机玩雾锁王国,那这篇就是给你写的。我会从选机器、装环境、配参数、开端口、排故障一路讲到底,尽量把每个"为什么"都说清楚,让你不只是照抄命令,而是真明白自己在干什么。

1.2 自建服务器和官方联机的本质区别

很多人搞不清"官方联机"和"自建服务器"到底差在哪。简单打个比方:官方联机就像你去网吧开黑,房间是网吧提供的,时间到了或者网管下班了,房间就没了;自建服务器就像你自己租了个房子,钥匙在你手里,想什么时候来就什么时候来。

技术上,雾锁王国用的是客户端-服务器架构,服务器端负责维护世界状态、处理玩家动作、同步实体位置。官方联机模式下,这个"服务器"其实跑在房主的客户端里,所以房主一退,服务就断了。而独立服务器(Dedicated Server)是把这套服务端逻辑单独跑在一台机器上,客户端只负责渲染和输入,世界状态始终在服务器那边。

这就带来几个实际差异:独立服务器对上行带宽要求更高,因为所有玩家的数据都要经过它转发;对CPU单核性能比较敏感,因为游戏逻辑主循环是单线程的;对内存的需求随玩家数量和建造规模增长。理解这三点,后面选配置和调参数就有依据了。

2. 硬件与系统选型:别花冤枉钱,也别省错地方

2.1 云服务器还是家里旧电脑

这是最多人纠结的问题。我两种都试过,直接给结论:如果你追求省心和长期稳定,选云服务器;如果你预算紧且不介意折腾,家里旧电脑也能跑,但要接受公网访问的麻烦。

云服务器的优势是公网IP固定、带宽稳定、不用管电费和噪音。国内主流云厂商的轻量应用服务器,4核8G的配置跑雾锁王国4到6人完全够用。价格上,新用户首年通常有折扣,折算下来一个月几十块,比一顿饭贵不了多少。选的时候注意两点:一是带宽,建议至少5Mbps上行,人多了要10Mbps以上;二是地域,选离你和朋友都近的节点,延迟能低不少。

家里旧电脑的方案,硬件成本几乎为零,但你要解决公网访问问题。这里我不展开讲具体网络方案,只说思路:核心是让外网的朋友能连到你家这台机器。这件事的复杂度取决于你的网络环境,有些人十分钟搞定,有些人折腾一整天。如果你对网络配置不熟,我建议直接上云服务器,省下的时间够你多玩好几个小时。

2.2 配置怎么算才不浪费

雾锁王国服务端的资源消耗,我实测下来大概是这样的:

玩家数量CPU核心内存上行带宽磁盘
2-4人2核4GB3Mbps20GB
4-8人4核8GB6Mbps40GB
8-16人6核+16GB10Mbps+60GB

这里要特别说明:CPU看的是单核性能,不是核心数堆得多就好。游戏主循环跑在单线程上,所以一颗高主频的4核,往往比低频的8核更流畅。内存方面,建造规模越大、地图探索越多,占用越高,8G是舒适线,4G是及格线。磁盘用SSD,机械盘加载存档会明显卡顿。

带宽这块很多人会低估。每个玩家的位置、动作、建造操作都要同步,人越多数据量越大。5Mbps上行大概能稳住4到6人,如果你朋友多,建议直接上10Mbps,别等到卡了再升级,那时候体验已经毁了。

2.3 操作系统的选择

服务端支持Windows和Linux两大平台。我的建议是:如果你对命令行不熟,用Windows Server或者Windows 10/11;如果你有Linux基础,用Ubuntu 22.04 LTS。

Windows的好处是图形界面直观,装SteamCMD、改配置文件都能用鼠标点,出问题了也好排查。缺点是系统本身占资源多,同样配置下能带的人少一些。

Linux的好处是资源占用低、稳定性好、重启快,适合长期挂机。Ubuntu 22.04是目前最省心的选择,软件源新、社区资料多。装的时候选最小化安装,别装桌面环境,省下的内存都留给游戏。

提示:不管你选哪个系统,都建议单独一台机器专门跑服务端,别跟其他重负载服务混在一起,避免资源抢占导致游戏卡顿。

3. 手把手搭建:从零到能进游戏

3.1 安装SteamCMD和服务端文件

雾锁王国的服务端是通过SteamCMD分发的,所以第一步是装SteamCMD。以Ubuntu为例,先更新系统再装依赖:

sudo apt update && sudo apt upgrade -y sudo apt install -y lib32gcc-s1 lib32stdc++6 curl tar

这两条命令的意思是:更新软件源并升级已装软件,然后安装SteamCMD运行需要的32位兼容库。别小看这两步,很多人卡在SteamCMD启动报错,就是因为缺了lib32gcc。

接着创建独立用户来跑服务端,这是个好习惯,避免权限混乱:

sudo useradd -m -s /bin/bash steam sudo su - steam

然后下载并解压SteamCMD:

mkdir ~/steamcmd && cd ~/steamcmd curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -

第一次运行SteamCMD会自动更新自己:

./steamcmd.sh +quit

看到它自己更新完退出,就说明SteamCMD装好了。接下来下载雾锁王国服务端,它的Steam应用ID是2278520:

./steamcmd.sh +force_install_dir ~/enshrouded-server +login anonymous +app_update 2278520 validate +quit

这条命令拆开看:force_install_dir指定安装目录,login anonymous用匿名登录(服务端不需要账号),app_update 2278520下载指定应用,validate校验文件完整性。下载时间取决于网速,几个G的内容,耐心等。

3.2 配置文件怎么改才合理

服务端下载完后,目录里会有一个enshrouded_server.json配置文件。这个文件决定了服务器名字、密码、人数上限、存档位置等关键参数。用文本编辑器打开它:

nano ~/enshrouded-server/enshrouded_server.json

默认内容大概长这样,我逐项解释:

{ "name": "Enshrouded Server", "password": "", "saveDirectory": "./savegame", "logDirectory": "./logs", "ip": "0.0.0.0", "gamePort": 15636, "queryPort": 15637, "slotCount": 16 }
  • name:服务器名字,会显示在游戏内的服务器列表里,起个你和朋友都认得的名。
  • password:进服密码,留空就是无密码。强烈建议设一个,不然陌生人可能乱入。
  • saveDirectory:存档目录,默认在服务端根目录下的savegame文件夹。
  • logDirectory:日志目录,出问题第一时间看这里。
  • ip:监听地址,0.0.0.0表示监听所有网卡,一般不用改。
  • gamePort:游戏主端口,默认15636,客户端连的就是这个。
  • queryPort:查询端口,默认15637,用于服务器列表展示。
  • slotCount:最大玩家数,默认16,按你配置和带宽调整。

改完保存退出。这里有个实操心得:slotCount别设太大,设成你实际能带的人数就行。设16但机器带不动,玩家进来就卡,体验反而差。我一般按配置表来,4核8G就设8,稳一点。

3.3 启动服务端并验证

配置文件改好后,就可以启动了。在服务端目录下执行:

cd ~/enshrouded-server ./enshrouded_server.exe

等等,Linux下不是exe。雾锁王国服务端在Linux下的启动脚本叫enshrouded_server,直接运行:

./enshrouded_server

如果看到类似"Server started"、"Listening on port 15636"的日志,说明启动成功。这时候别关终端,服务端就在前台跑着。想让它后台运行,用screen或者systemd,后面会讲。

验证服务端是否真的在监听,可以另开一个终端:

ss -tulnp | grep 15636

看到有进程在监听15636端口,就说明服务端正常工作了。这时候你可以先在本机用客户端连一下,确认能进游戏,再去搞公网访问。

3.4 用systemd做开机自启和后台守护

前台跑服务端有个致命问题:你一关终端,服务就停了。所以生产环境一定要用systemd托管。创建一个服务文件:

sudo nano /etc/systemd/system/enshrouded.service

写入以下内容:

[Unit] Description=Enshrouded Dedicated Server After=network.target [Service] Type=simple User=steam WorkingDirectory=/home/steam/enshrouded-server ExecStart=/home/steam/enshrouded-server/enshrouded_server Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target

这里几个关键点:User=steam指定用steam用户跑,避免root权限风险;WorkingDirectory必须设对,否则存档路径会乱;Restart=on-failure让服务崩溃后自动重启,RestartSec=10是重启前等10秒,避免疯狂重启。

保存后启用并启动:

sudo systemctl daemon-reload sudo systemctl enable enshrouded sudo systemctl start enshrouded

查看状态:

sudo systemctl status enshrouded

看到绿色的active (running)就成功了。以后管理服务就用systemctl start/stop/restart enshrouded,日志用journalctl -u enshrouded -f实时看。

4. 网络与端口:让朋友能连进来的关键一步

4.1 端口转发和防火墙的正确姿势

服务端跑起来了,但朋友连不上,九成是端口没通。雾锁王国需要放行两个端口:15636(游戏)和15637(查询),协议都是UDP。

如果你用的是云服务器,去云厂商的控制台找到"安全组"或"防火墙"设置,添加入站规则,放行这两个UDP端口。这一步很多人会漏,以为在系统里开了防火墙就行,其实云厂商那层还有一道。

系统层面的防火墙,Ubuntu默认用ufw:

sudo ufw allow 15636/udp sudo ufw allow 15637/udp sudo ufw reload

如果你用的是家里电脑,需要在路由器上做端口转发,把外网的15636和15637 UDP转发到内网这台机器的对应端口。具体怎么设置每个路由器不一样,找"端口映射"或"虚拟服务器"那一栏。

注意:端口转发只做UDP,别做TCP,雾锁王国用的是UDP协议。做错了端口协议,照样连不上。

4.2 怎么确认端口真的通了

端口放行后,别急着让朋友试,自己先验证。最靠谱的方法是用在线端口检测工具,输入你的公网IP和15636端口,选UDP检测。如果显示开放,说明通了;如果显示关闭或超时,说明还有地方没配对。

另一个方法是让朋友直接连,看游戏内报什么错。如果是"连接超时",基本是端口或网络问题;如果是"服务器已满",那是人数满了;如果是"密码错误",那就是密码填错了。根据报错定位问题,比瞎猜快得多。

还有个踩坑经验:有些云厂商的轻量服务器,安全组和系统防火墙是两层独立的,你只配了一层,另一层没配,照样不通。我第一次搭的时候就栽在这,配了系统防火墙忘了安全组,折腾了半小时才发现。

4.3 动态IP和域名解析的取舍

如果你用的是家里电脑,公网IP可能是动态的,过几天就变,朋友存的IP就失效了。解决办法是用动态域名解析(DDNS),把变化的IP绑定到一个固定域名上。很多路由器自带DDNS功能,填个域名服务商的账号就行。

云服务器一般是固定公网IP,不用操心这个。这也是我推荐新手用云服务器的原因之一——省心。

5. 存档管理与备份:别等丢了才后悔

5.1 存档结构长什么样

雾锁王国的存档在saveDirectory指定的目录下,默认是./savegame。里面通常有几个文件,记录世界状态、玩家数据、建造信息等。这个目录就是整个世界的命根子,丢了就全没了。

我见过太多人因为没备份,服务器崩了或者误操作,几十小时的建造付诸东流。所以备份这件事,开服第一天就要做,别等出事。

5.2 自动备份脚本怎么写

手动备份容易忘,写个定时脚本最省心。创建一个备份脚本:

nano ~/backup-enshrouded.sh

内容如下:

#!/bin/bash BACKUP_DIR="/home/steam/backups" SAVE_DIR="/home/steam/enshrouded-server/savegame" DATE=$(date +%Y%m%d_%H%M%S) mkdir -p "$BACKUP_DIR" tar -czf "$BACKUP_DIR/save_$DATE.tar.gz" -C "$SAVE_DIR" . # 只保留最近30个备份 ls -t "$BACKUP_DIR"/save_*.tar.gz | tail -n +31 | xargs -r rm

这个脚本做三件事:打包存档、按时间命名、只保留最近30份。给脚本加执行权限:

chmod +x ~/backup-enshrouded.sh

然后用crontab定时执行,比如每小时备份一次:

crontab -e

添加一行:

0 * * * * /home/steam/backup-enshrouded.sh

这样每小时整点自动备份,存档安全多了。实操心得:备份目录最好跟存档目录不在同一块盘,万一盘坏了,备份也跟着没。有条件的话,定期把备份下载到本地或者传到对象存储。

5.3 存档迁移和回滚

换服务器或者想回滚到某个时间点,操作很简单:停掉服务端,把备份解压覆盖到savegame目录,再启动就行。

sudo systemctl stop enshrouded tar -xzf /home/steam/backups/save_20240101_120000.tar.gz -C /home/steam/enshrouded-server/savegame sudo systemctl start enshrouded

回滚前记得先备份当前存档,万一回滚错了还能救回来。这个习惯能帮你避免很多"手滑"事故。

6. 常见故障排查:卡顿、连不上、崩溃怎么办

6.1 玩家连不上服务器的排查顺序

连不上是最常见的问题,按这个顺序排查,基本能定位:

现象可能原因排查方法
连接超时端口未放行检查安全组和系统防火墙
连接超时公网IP错误确认朋友填的IP是公网IP
服务器列表搜不到查询端口未通检查15637 UDP是否放行
密码错误密码不一致核对配置文件里的password
服务器已满人数达上限调整slotCount或踢人

排查的核心思路是从外到内:先确认公网能不能通(端口检测),再确认服务端在不在跑(systemctl status),最后确认配置对不对(看json文件)。一层层排除,别跳步。

6.2 游戏卡顿和延迟高的优化

卡顿分两种:一种是服务器卡,所有人一起卡;一种是个人网络卡,只有某个人卡。区分方法是问其他玩家,如果大家都卡,那是服务器问题;如果只有一个人卡,那是他自己的网络。

服务器卡顿的常见原因和对策:

  • CPU单核跑满:升级到高主频CPU,或者减少同时在线人数。
  • 内存不足:加内存,或者清理不必要的建造物。
  • 磁盘IO瓶颈:换SSD,机械盘在自动保存时会明显卡顿。
  • 带宽跑满:升级带宽,或者限制人数。

我实测下来,自动保存是卡顿的高发时刻。服务端每隔一段时间会保存一次世界状态,这时候磁盘IO和CPU都会飙升。如果你的盘慢,保存时就会卡一下。换SSD能明显改善。

6.3 服务端崩溃和日志分析

服务端偶尔崩溃是正常的,关键是崩了能自动起来,并且能从日志找到原因。systemd的Restart=on-failure已经帮你自动重启了,你要做的是看日志:

journalctl -u enshrouded -n 200 --no-pager

或者直接看服务端自己的日志目录:

tail -f ~/enshrouded-server/logs/*.log

常见的崩溃原因有:内存溢出(加内存)、存档损坏(回滚备份)、端口冲突(换端口)。日志里一般会有明确的错误信息,看不懂就搜一下,社区里基本都有人遇到过。

提示:养成定期看日志的习惯,很多问题在崩溃前就有征兆,比如内存持续上涨、保存时间越来越长,早发现早处理。

7. 长期运维:让服务器稳定跑下去的几个习惯

7.1 定期更新服务端

雾锁王国会不定期更新,服务端也要跟着更新,否则客户端版本不匹配就进不去。更新方法很简单,重新跑一遍SteamCMD的下载命令:

./steamcmd.sh +force_install_dir ~/enshrouded-server +login anonymous +app_update 2278520 validate +quit

更新前一定要先备份存档,万一更新出问题,还能回滚。更新完重启服务:

sudo systemctl restart enshrouded

我一般会在更新前看一眼更新日志,确认没有破坏性改动再更。如果是大版本更新,建议先在测试环境验证,别直接在生产服上更。

7.2 监控资源占用

长期跑的服务,得知道它吃多少资源。简单的监控用htop看CPU和内存,df -h看磁盘,iftop看带宽。想省事的话,装个轻量监控面板,把CPU、内存、磁盘、网络都画成曲线,一眼就能看出异常。

我自己的习惯是每周看一眼资源趋势,如果内存持续上涨不回落,可能是内存泄漏,重启一下服务能缓解。如果磁盘快满了,清理旧备份和日志。

7.3 玩家管理和权限

雾锁王国服务端本身没有复杂的权限系统,主要靠密码控制进服。如果你想更精细地管理,比如踢人、封禁,目前官方支持有限,主要靠社区工具或者手动改配置。

实际运营中,我的建议是:密码只给信得过的人,定期换密码。人多了难免有摩擦,与其事后处理,不如事前控制进服门槛。如果朋友带朋友,提前说好规矩,避免陌生人进来搞破坏。

8. 我踩过的坑和给你的建议

搭雾锁王国服务器这件事,我从一开始的手忙脚乱到现在能十分钟开一个服,中间踩的坑不少。说几个最有代表性的,帮你省点时间。

第一个坑是端口协议搞错。我一开始把15636做成了TCP转发,结果怎么都连不上,查了半天才发现游戏用的是UDP。这个错误很隐蔽,因为端口号是对的,就是协议不对。

第二个坑是存档路径没设对。有次我改了WorkingDirectory,结果服务端在新目录下重新生成了一个空存档,老存档还在旧目录里躺着。发现的时候朋友已经在新世界里玩了两小时,白玩。所以改配置前一定确认路径,改完先验证存档加载对不对。

第三个坑是备份没做异地。有次服务器磁盘出问题,存档和备份在同一块盘上,一起没了。从那以后我坚持备份至少存两份,一份本地一份异地。

最后给个建议:别追求一步到位。先把服务跑起来,能进游戏,再慢慢优化配置、加备份、做监控。很多人卡在前期配置太复杂,还没开玩就放弃了。先跑通,再优化,这个顺序很重要。

如果你按这篇走下来还有问题,大概率是网络环境或者系统差异导致的,把日志贴出来,基本都能定位。开服这事,折腾一次就熟了,后面再开就是复制粘贴的事。祝你和朋友在雾锁王国里建出满意的城堡。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询