基于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
。 -
设置游戏安装目录(可选),不设置的话默认将游戏安装在
\steamCMD\steamapps\common
目录。在命令行中输入以下命令,指定游戏安装目录,
force_install_dir C:\Users\Administrator\Desktop\Forest
-
匿名登录steam(国内服务器搭建可能存在登录不了的情况,重新打开steamcmd有几率成功)
login anonymous
-
下载The Forest游戏
app_update 556450 validate
-
执行完成后,在
\steamCMD\steamapps\common
多了一个TheForestDedicatedServer
文件夹,TheForestDedicatedServer.exe
这个就是我们需要的森林服务端文件,双击打开即可运行。然后关闭,去配置一下服务端文件。
配置The Forest服务器
-
森林服务器的配置文件存在另外一个路径中。
C:\Users\Administrator\AppData\LocalLow\SKS\TheForestDedicatedServer\ds\server.cfg
-
修改配置文件:根据需求调整服务器的配置,如设置服务器名称、密码、难度等。
// 专用服务器设置。
// 服务器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 或 Hard
difficulty Normal
// 新建或继续游戏。必须设置为 New 或 Continue
initType Continue
// 保存游戏的槽位。必须设置为 1、2、3、4 或 5
slot 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
// 无客户端连接时的目标FPS
targetFpsIdle 5
// 至少有一个客户端连接时的目标FPS
targetFpsActive 60 -
完成服务器配置后,即可运行服务端了,这个时候会打开两个窗口(注意不要关了),当命令行中输出
Dedicated Server Running
时就代表服务器已经运行成功了。 -
不过此时游戏服务器是运行在内网的,没有外网ip的情况下,其他人是无法加入游戏的。接下来需要通过搭建虚拟局域网,让玩家加入虚拟局域网,得以进入游戏服务器。
使用ZeroTier进行远程联机
-
ZeroTier作为一款简单易用的VPN解决方案,可以帮助玩家建立安全的虚拟局域网。使用zerotier进行联机,只要能够打洞成功,整体的延迟还是比较低的,没有出现卡顿的情况。
-
安装ZeroTier:在服务器和客户端设备上下载并安装ZeroTier软件,并加入相同的网络。
-
创建和加入网络:在ZeroTier界面创建新的网络,设置网络ID和密码,并分享给其他玩家。
-
其他玩家加入网络就进入了局域网,通过在游戏中搜索服务器的内网ip地址,或者查看局域网游戏,就可以看到游戏服务器了,选择加入服务器即可进行游戏。
-
我遇到了一个bug,在游戏中局域网无法搜索到房间,我的解决方法是在
steam页面-查看-游戏服务器
,就可以看到局域网下的服务器,选择连接即可。 -
输入密码,点击加入服务器,就会自动打开游戏进入联机房间。
幻兽帕鲁
使用steamcmd安装幻兽帕鲁。
app_update 2394010 validate |
默认配置文件位于steamcmd/steamapps/common/PalServer/Pal/Saved/Config/WindowsServer/PalWorldSettings.ini
[/Script/Pal.PalGameWorldSettings] |
泰拉瑞亚
使用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进行异地组网联机,希望你能进请享受联机带来的乐趣。