Valheim 专属服务器与联机指南:跨平台、搭建与常见问题

开一个一直在线的 Valheim 世界:租用还是自建、PC 与主机跨平台联机、1.0 存档的正确迁移与备份,以及每个新房主都会遇到的那些问题怎么修。

Valheim 专属服务器与联机指南:跨平台、搭建与常见问题
本篇导航10 个章节

朋友联机开的世界只有房主在线时才存在,而专属服务器解决了这个问题:世界一直在线,小队成员随时都能上线;1.0 之后,PC、Xbox、PlayStation 5 和 Switch 2 玩家可以进入同一个世界。本篇讲怎么选、怎么搭、怎么长期维护一台服务器,包括 1.0 存档格式变化这个最容易让回归房主踩坑的地方。

先定玩法:你们小队适合哪种联机方式

一个 Valheim 世界最多支持 10 名玩家同时在线,联机方式有三种。游戏内直接开房免费又快,但房主一下线世界就关闭,而且主机玩家进不来。专属服务器跑在独立机器或租用的主机上,全天在线,是唯一能给主机玩家一个固定家园的方案。租服务器省去了网络配置的麻烦;自己搭几乎不花钱(如果你已有闲置机器),但半夜出问题时修服务器的人就是你。

专属服务器就是为了这样的时刻存在:全员同时在线,没人需要等房主上线。

表格可左右滑动,查看完整内容。

方式适合人群代价

游戏内联机开房

只玩一晚上、纯 PC 小队

房主下线世界就关闭

租用专属服务器

PC 与主机混合小队、怕折腾的人

按月付费,用面板而不是直接改文件

自己搭建专属服务器

有闲置电脑、想要完全控制权的人

端口、更新、备份都得自己管

只问一个问题就能定:小队里有没有主机玩家,或者有没有人会在你不玩的时间上线?只要有一个答案是肯定的,就选专属服务器。如果全是 PC 玩家且总是同时玩,游戏内开房就够了——而以后想迁移世界时,本篇的存档章节同样用得上。

Windows 自建服务器,一步一步来

专属服务器是一个独立的 Steam 工具,应用编号 896660,可以匿名下载,不需要再买一份游戏。通过 Steam 客户端的工具库或 SteamCMD 都能安装。安装文件夹里有 start_headless_server.bat,先把它复制一份再改你那份——因为每次服务器更新都会覆盖原文件,你的设置会跟着丢掉。

  • 安装 Valheim Dedicated Server 工具,应用编号 896660。

  • 把 start_headless_server.bat 复制一份,例如改名为 start-my-server.bat。

  • 编辑你那份启动文件:设置服务器名、世界名和密码,密码至少 5 个字符,且不能包含服务器名或世界名,否则服务器会拒绝启动。

  • 现在就决定是否开跨平台:如果小队里有主机或 Game Pass 玩家,启动参数里就要加 -crossplay。以后再切换联机后端,等于让所有人换一种连接方式。

  • 启动服务器,看日志确认世界已激活,再自己先连进去试一遍,没问题后再邀请其他人。

专属服务器会变成一座共用的生产基地:熔炉、风车和农田在两次上线之间一直都在。

Linux 上用 SteamCMD 自建

Linux 上用 SteamCMD 匿名登录安装同一个服务器应用。把安装目录单独指定,验证一次,然后用与 Windows 启动行相同的参数运行 valheim_server.x86_64。如果要开跨平台,先装好 libpulse-dev、libatomic1 和 libc6:缺了它们服务器能启动,但 PlayFab 注册会失败,日志里永远不会出现加入码。日志里没有加入码,基本就是 Linux 依赖库没装全。

  • 安装命令:steamcmd +force_install_dir /path/to/valheim +login anonymous +app_update 896660 validate +quit

  • 要开跨平台,首次启动前先通过系统包管理器装好 libpulse-dev、libatomic1 和 libc6。

  • 建议配一个 systemd 服务或计划任务,让服务器在重启或崩溃后自己恢复运行。

启动参数逐个讲清楚

Valheim 没有服务器配置文件。服务器的一切设置都在启动行里,外加下面要讲的三个小文本文件。一条完整的启动行是这样的:valheim_server.exe -nographics -batchmode -name My Server -port 2456 -world Midgard -password vikings -public 1 -crossplay。下表里除了服务器名、世界名和密码,其他参数都是可选的。

表格可左右滑动,查看完整内容。

参数作用默认值或说明

-name

服务器浏览器里显示的名字

必填

-port 2456

游戏端口;服务器还会用端口号加 1 做查询

2456,UDP 协议

-world

要加载的世界;不存在时首次运行自动创建

必填

-password

加入密码

至少 5 个字符

-public 1 或 0

是否在社区浏览器里公开显示

1 公开,0 隐藏

-crossplay

PlayFab 中继后端:主机玩家用加入码进入

不加即关闭

-savedir

世界与权限文件的存放位置

游戏默认存档目录

-saveinterval

自动保存世界的时间间隔(秒)

1800 秒

-backups

保留几份滚动世界备份

4 份

-preset

世界规则预设:Normal、Casual、Easy、Hard、Hardcore、Immersive 或 Hammer

不设即默认

-modifier 与 -setkey

逐项调整世界规则,例如突袭或传送门规则

可重复添加

专属服务器的意义就在这里:这座灯火通明的围墙基地在凌晨两点也在线,不管它的建造者有没有上线。

跨平台:各平台到底怎么进来

加了 -crossplay 后,服务器走 PlayFab 中继而不是直连。这就是 PlayStation

5、Switch

2、Xbox 和 Game Pass 玩家能与 Steam 玩家进入同一个世界的原因,也是跨平台服务器不需要做端口转发的原因:玩家凭日志里打印的 6 位加入码进入,而加入码每次重启服务器都会变。主机玩家只能用加入码进入,PC 玩家可以用加入码,也可以用浏览器。

不加 -crossplay 时,服务器走 Steam 后端。只有 Steam 客户端能加入,方式是 IP 加端口或浏览器直连,而且直连需要在路由器上把 UDP 2456 和 2457 转发到服务器机器,并放行服务器防火墙。Steam 后端也是唯一能用局域网或本机回环地址的方式:PlayFab 中继连不上本地或回环 IP,所以纯离线局域网之夜不该用跨平台服务器。

  • 开了跨平台:把 6 位加入码和密码一起发给队友,每次重启后都要重新发码。

  • 没开跨平台:发 IP 和端口,例如 203.0.113.10:2456,并转发 UDP 2456 和 2457。

  • 公开服务器会出现在社区浏览器里;设为私密的服务器用加入码或直连 IP 照样能进。

跨平台在 Boss 之夜最能体现价值:主机玩家和 PC 玩家站在同一个祭坛前。

1.0 存档:怎么迁移世界、怎么正确备份

这是回归房主最容易搞错的一节。1.0 之后,每个世界是一个文件夹,不再是两个文件。在 worlds_local 下面会有一个以世界名命名的文件夹,里面是 _main.db2 和 _main.fwl2 一对文件加一组 chunk 文件。整个文件夹就是这个世界:要拷就全拷,绝不要只抽其中几个文件出来。1.0 之前最后保存的世界则是两个文件,WorldName.db 和 WorldName.fwl,而且必须成对移动。老世界可以直接带进 1.0,极北深境的地形会在地图上尚未探索过的区域生成,所以想看终章并不需要开新世界。

  • 复制之前先停掉游戏或旧服务器。正在保存时复制的世界可能是写了一半的。

  • Windows 上玩家世界在 %USERPROFILE%\AppData\LocalLow\IronGate\Valheim\worlds_local;Linux 和 Mac 在 ~/.config/unity3d/IronGate/Valheim/worlds_local。专属服务器则用它 -savedir 指定的文件夹。

  • 把服务器的 -world 参数指向这个世界名,启动一次确认能正常加载,再告诉小队迁移完成了。

  • 备份要备整个世界文件夹,不只是两个主文件,并且至少留一份在服务器机器之外的地方。

  • 管理员、许可和封禁名单不会跟着世界走。它们是世界文件夹旁边的独立文本文件,新服务器上的这几份一开始都是空的。

迁移后的世界会保留一切:长屋、蜂箱、小路。唯一不跟着走的是管理员名单,所以迁移后要重新添加管理员。

管理员、封禁与白名单陷阱

存档目录里的三个纯文本文件控制着权限,每行一个玩家 ID,格式是 Platform_ID,例如 Steam_76561197960287930。管理员能用控制台命令,包括踢人、封禁、解封和强制保存。白名单就是那个陷阱:permittedlist.txt 里只要有任何一条记录,没在名单上的人就全被挡在外面。除非你真的想做纯邀请制服务器,否则让这个文件保持为空;改完三个文件中的任何一个都要重启服务器。

  • adminlist.txt:谁能用管理员命令。

  • bannedlist.txt:谁被禁止加入。

  • permittedlist.txt:白名单。只要有记录,其他人就全进不来。

  • 管理员按 F5 打开游戏内控制台,但客户端要先在 Steam 启动选项里加 -console。

  • 玩家 ID 从服务器日志或游戏内 F2 面板查看。ID 区分大小写。

世界规则存在世界里,不在服务器上

世界规则会改变一个世界的玩法,而且规则存在世界本身里,世界搬到哪规则就跟到哪。可以在游戏内的世界设置界面改,也可以在启动行用 -preset、-modifier 和 -setkey 改,或者在运行中的服务器上用管理员命令实时改。这对经常搬世界的团体很重要:休闲规则的世界搬到新服务器还是休闲,硬核规则的世界搬过去还是硬核。最好在打第一个 Boss 之前就把规则定下来,战役中途改规则等于预定一场队内争吵。

先排查这十个常见问题

  • 加入时版本不一致:先更新服务器,再让玩家更新游戏。1.0 的客户端进不了还停留在旧版本的服务器。

  • 服务器拒绝启动:先查密码。密码至少 5 个字符,且不能包含服务器名或世界名。

  • 朋友进不了非跨平台服务器:在路由器上转发 UDP 2456 和 2457,并放行服务器防火墙。

  • Linux 日志里没有加入码:装好 libpulse-dev、libatomic1 和 libc6,再重启。

  • 加入码无效:每次重启都会换码。发最新的码,别发昨天的。

  • 主机玩家进不来:服务器必须加 -crossplay。Steam 后端的服务器只接受 Steam 客户端。

  • 局域网地址在跨平台下连不上:PlayFab 中继不支持本地或回环 IP。纯局域网服务器就不要加 -crossplay。

  • 谁都进不来:查 permittedlist.txt。里面只要有一条记录,服务器就变成纯邀请制。

  • 迁移后世界不见了:-world 参数必须与世界文件夹名完全一致,而且 1.0 世界的整个文件夹都得到位。

  • 进度回档了:确认备份确实存在,并且 -savedir 指向的正是你以为的那个位置。服务器往意料之外的位置写存档,是自建服务器的经典失误。

新服务器最好的测试是故意安排得很无聊:两个人、一座房子、不断线。通过了再邀请全员。

让服务器成为大家愿意留下的地方

技术搭建只是简单的一半。服务器真正的死因往往是社交问题:有人冲 Boss 而其他人还在草甸、战利品争吵,或者世界在不知不觉中没了备份。开服前先把三条规矩写下来:谁能在哪建造、Boss 战要不要等全员、世界多久在机器之外备一次。密码别发到公开频道,再设一位管理员免得一人缺席全队被晾着,更新也要按小队都知道的时间表来,别在开黑中途搞。

服务器的价值也在安静的日常里体现:Boss 之夜之外的拉货、种田和建造,只要有人上线,世界就在那里等着。

最后说一句 MOD。1.0 的引擎升级让大多数 MOD 需要重新编译,MOD 兼容性眼下是个移动靶。本篇刻意只讲原版:今天能用的 MOD 列表可能在下次服务器更新后就失效,而且 MOD 服务器要求每个玩家都装同一套 MOD。如果小队想要 MOD,那就把它当作一个单独的决定,届时再核对兼容性,并且加任何东西之前先给世界留一份原版备份。

收藏这篇攻略

登录后可收藏攻略,并在不同设备同步。

登录 / 注册