基于steamcmd+zerotier搭建森林、未转变者、幻兽帕鲁等游戏服务器
引言
之前我写了一篇文章内网访问:使用Zerotier进行打洞 - 阿雷的小窝 (leihub.cn),通过zerotier实现虚拟局域网组网,可以在外网访问内网服务。zerotier还有个玩法,那就是让处于不同地区的人进行局域网游戏,比如我的世界、泰拉瑞亚、幻兽帕鲁和森林等联机游戏。
准备工作
- 系统要求:确保你的Win10系统具备至少8GB的内存和稳定的网络连接。
安装SteamCMD并下载The Forest服务器
-
下载适用于 Windows 系统的 SteamCMD:https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip
-
下载文件后解压压缩包双击运行
steamcmd.exe,就会自动更新运行steamcmd。
image-20240624193924457 -
设置游戏安装目录(可选),不设置的话默认将游戏安装在
\steamCMD\steamapps\common目录。在命令行中输入以下命令,指定游戏安装目录,
force_install_dir C:\Users\Administrator\Desktop\Forest -
匿名登录steam(国内服务器搭建可能存在登录不了的情况,重新打开steamcmd有几率成功)
Terminal window login anonymous -
下载The Forest游戏
app_update 556450 validate
image-20240624194519575 -
执行完成后,在
\steamCMD\steamapps\common多了一个TheForestDedicatedServer文件夹,TheForestDedicatedServer.exe这个就是我们需要的森林服务端文件,双击打开即可运行。然后关闭,去配置一下服务端文件。
配置The Forest服务器
-
森林服务器的配置文件存在另外一个路径中。
C:\Users\Administrator\AppData\LocalLow\SKS\TheForestDedicatedServer\ds\server.cfg -
修改配置文件:根据需求调整服务器的配置,如设置服务器名称、密码、难度等。
Terminal window // 专用服务器设置。// 服务器IP地址 - 注意:如果有路由器,此地址为内部地址,需要配置端口转发serverIP 172.28.64.43 #这个是服务器的zerotier内网地址// Steam 通信端口 - 注意:如果有路由器,你需要打开这个端口。serverSteamPort 8766// 游戏通信端口 - 注意:如果有路由器,你需要打开这个端口。serverGamePort 27015// 查询通信端口 - 注意:如果有路由器,你需要打开这个端口。serverQueryPort 27016// 服务器显示名称serverName aleileilei// 玩家最大数量serverPlayers 4// 启用 VAC (Valve 反作弊系统)。必须设置为关闭或开启enableVAC off// 服务器密码。空白表示无密码serverPassword 12345678// 服务器管理密码。空白表示无密码serverPasswordAdmin 12345678// 你的 Steam 账户名。空白表示匿名serverSteamAccount// 服务器自动保存间隔时间(分钟)- 最短时间为15分钟,默认时间为30分钟serverAutoSaveInterval 30// 游戏难度模式。必须设置为 Peaceful、Normal 或 Harddifficulty Normal// 新建或继续游戏。必须设置为 New 或 ContinueinitType Continue// 保存游戏的槽位。必须设置为 1、2、3、4 或 5slot 1// 显示事件日志。必须设置为关闭或开启showLogs on// 服务器管理员联系邮箱serverContact email@gmail.com// 无敌人模式veganMode off// 白天无敌人模式vegetarianMode off// 加载保存时重置所有建筑孔洞resetHolesMode off// 睡觉时重新生长10%被砍伐的树木treeRegrowMode off// 允许破坏建筑allowBuildingDestruction off// 允许在创意模式中出现敌人allowEnemiesCreativeMode off// 允许客户端使用内置调试控制台allowCheats on// 使用完整的武器伤害值攻击其他玩家realisticPlayerDamage off// 允许定义自定义保存槽文件夹,留空则使用默认位置saveFolderPath// 无客户端连接时的目标FPStargetFpsIdle 5// 至少有一个客户端连接时的目标FPStargetFpsActive 60 -
完成服务器配置后,即可运行服务端了,这个时候会打开两个窗口(注意不要关了),当命令行中输出
Dedicated Server Running时就代表服务器已经运行成功了。
image-20240624200044829 -
不过此时游戏服务器是运行在内网的,没有外网ip的情况下,其他人是无法加入游戏的。接下来需要通过搭建虚拟局域网,让玩家加入虚拟局域网,得以进入游戏服务器。
使用ZeroTier进行远程联机
-
ZeroTier作为一款简单易用的VPN解决方案,可以帮助玩家建立安全的虚拟局域网。使用zerotier进行联机,只要能够打洞成功,整体的延迟还是比较低的,没有出现卡顿的情况。
-
安装ZeroTier:在服务器和客户端设备上下载并安装ZeroTier软件,并加入相同的网络。
-
创建和加入网络:在ZeroTier界面创建新的网络,设置网络ID和密码,并分享给其他玩家。

image-20240624195601203 -
其他玩家加入网络就进入了局域网,通过在游戏中搜索服务器的内网ip地址,或者查看局域网游戏,就可以看到游戏服务器了,选择加入服务器即可进行游戏。
-
我遇到了一个bug,在游戏中局域网无法搜索到房间,我的解决方法是在
steam页面-查看-游戏服务器,就可以看到局域网下的服务器,选择连接即可。
image-20240624200246706 -
输入密码,点击加入服务器,就会自动打开游戏进入联机房间。

image-20240624200600979
幻兽帕鲁
使用steamcmd安装幻兽帕鲁。
app_update 2394010 validate默认配置文件位于steamcmd/steamapps/common/PalServer/Pal/Saved/Config/WindowsServer/PalWorldSettings.ini
[/Script/Pal.PalGameWorldSettings]OptionSettings=( Difficulty=None, // 游戏难度 DayTimeSpeedRate=1, // 白天时间速度比率 NightTimeSpeedRate=1, // 夜晚时间速度比率 ExpRate=1, // 经验值获取速率 PalCaptureRate=1, // 精灵捕捉速率 PalSpawnNumRate=1, // 精灵生成数量速率 PalDamageRateAttack=1, // 精灵攻击力伤害速率 PalDamageRateDefense=1, // 精灵防御力伤害速率 PlayerDamageRateAttack=1, // 玩家攻击力伤害速率 PlayerDamageRateDefense=1, // 玩家防御力伤害速率 PlayerStomachDecreaceRate=1, // 玩家饥饿度消耗速率 PlayerStaminaDecreaceRate=1, // 玩家耐力消耗速率 PlayerAutoHPRegeneRate=1, // 玩家自动恢复生命值速率 PlayerAutoHpRegeneRateInSleep=1, // 玩家在睡眠时自动恢复生命值速率 PalStomachDecreaceRate=1, // 精灵饥饿度消耗速率 PalStaminaDecreaceRate=1, // 精灵耐力消耗速率 PalAutoHPRegeneRate=1, // 精灵自动恢复生命值速率 PalAutoHpRegeneRateInSleep=1, // 精灵在睡眠时自动恢复生命值速率 BuildObjectDamageRate=1, // 建筑对象损坏速率 BuildObjectDeteriorationDamageRate=1, // 建筑对象老化损坏速率 CollectibleObjectHpRate=1, // 可收集物品的生命值速率 CollectionObjectRespawnSpeedRate=1, // 可收集物品的重生速度速率 EnemyDropItemRate=1, // 敌人掉落物品速率 DeathPenalty=None, // 死亡惩罚 bEnablePlayerToPlayerDamage=False, // 是否允许玩家之间互相伤害 bEnableFriendlyFire=False, // 是否允许友方伤害 bEnableInvaderEnemy=True, // 是否启用入侵者敌人 bActiveUNKO=False, // 是否激活UNKO功能 bEnableAimAssistPad=True, // 是否启用手柄瞄准辅助 bEnableAimAssistKeyboard=False, // 是否启用键盘瞄准辅助 DropItemMaxNum=3000, // 最大掉落物品数量 DropItemMaxNum_UNKO=100, // UNKO模式下的最大掉落物品数量 BaseCampMaxNum=128, // 最大基地数量 BaseCampWorkerMaxNum=15, // 每个基地最多工人数量 DropItemAliveMaxHours=1, // 掉落物品存活的最长时间(小时) bAutoResetGuildNoOnlinePlayers=False, // 是否自动重置无在线成员的公会 AutoResetGuildTimeNoOnlinePlayers=72, // 自动重置无在线成员的公会的时间(小时) GuildPlayerMaxNum=20, // 公会最大成员数量 PalEggDefaultHatchingTime=0, // 精灵蛋孵化默认时间 WorkSpeedRate=1, // 工作速度比率 bIsMultiplay=False, // 是否为多人模式 bIsPvP=False, // 是否为PvP模式 bCanPickupOtherGuildDeathPenaltyDrop=False, // 是否可以拾取其他公会死亡惩罚掉落的物品 bEnableNonLoginPenalty=True, // 是否启用非登录惩罚 bEnableFastTravel=True, // 是否启用快速旅行功能 bIsStartLocationRandom=True, // 是否随机选择出生点 bExistPlayerAfterLogout=False, // 玩家登出后是否仍然存在 bEnableDefenseOtherGuildPlayer=False, // 是否启用防御其他公会玩家的功能 CoopPlayerMaxNum=4, // 合作模式最大玩家数量 ServerPlayerMaxNum=32, // 服务器最大玩家数量 ServerName="Default Palworld Server", // 服务器名称 ServerDescription="", // 服务器描述 AdminPassword="", // 管理员密码 ServerPassword="", // 服务器密码 PublicPort=8211, // 公共端口号 PublicIP="", // 公共IP地址 RCONEnabled=False, // 是否启用远程控制台 RCONPort=25575, // 远程控制台端口号 Region="", // 服务器所在地区 bUseAuth=True, // 是否使用身份验证 BanListURL="https://api.palworldgame.com/api/banlist.txt" // 封禁列表URL)泰拉瑞亚
使用steamcmd安装游戏。
app_update 105600 validate未转变者
安装游戏
app_update 1110390 validate下载完成之后在SteamCMD\steamapps\common\U3DS\找到服务端启动Unturned.exe双击启动,运行一遍之后输入shutdown关闭服务器,启动一次服务器是为了让服务端生成地图和相应的配置文件配置。
相应文件在路径steamCMD\steamapps\common\U3DS\Servers\Default\Server中,里面有一个commands.dat文件,打开编辑文件,按实际需求填入以下指令
| 配置代码 | 功能 | 备注 |
|---|---|---|
| Name | 服务器名称 | |
| Map | 地图类型 | 默认PEI |
| Password | 服务器密码 | 公开不填 |
| Welcome | 服务器欢迎语 | |
| Maxplayer | 服务器人数 | 根据服务器配置填 |
| Mode | 服务器难度 | 可填Eazy,Normal,Hard |
| Perspective | 服务器视角限制 | 可填First,Third,Both,Vehicle |
| PVE | 开启PVE模式 | 留空为PVP |
| Cheats | 服务器作弊模式 | 开True关False |
| Port | 服务器端口 | 默认27015,更改需要开放端口 |
完成之后不要着急开服,新版本加入了Steam秘钥,不添加Steam秘钥开服是可以开的,但是玩家进入不了游戏。
进入网站steamcommunity.com,Steam 游戏服务器账户管理 点击打开,访问不了的话就需要使用魔法了,创建一个如图所示的登陆令牌。

申请完之后复制秘钥,找到\steamCMD\steamapps\common\U3DS\Servers\Default文件夹下的Config.json文件,编辑该文件,找到 Login_Token 填入复制好的秘钥。

配置完成之后双击U3DS文件夹下的Unturned.exe文件即可开服。
结语
大部分steam游戏服务器的开设都大同小异,基本上都可以通过上述方法进行开服,然后使用zerotier进行异地组网联机,希望你能进请享受联机带来的乐趣。
参考
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!


