基于steamcmd+zerotier搭建森林、未转变者、幻兽帕鲁等游戏服务器
本文最后更新于 225 天前,其中的信息可能已经有所发展或是发生改变。

引言

之前我写了一篇文章内网访问:使用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有几率成功)

    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
  • 修改配置文件:根据需求调整服务器的配置,如设置服务器名称、密码、难度等。

    // 专用服务器设置。
    // 服务器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时就代表服务器已经运行成功了。

    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 游戏服务器账户管理 点击打开,访问不了的话就需要使用魔法了,创建一个如图所示的登陆令牌。

image-20240624203035476

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

image-20240624203623820

配置完成之后双击U3DS文件夹下的Unturned.exe文件即可开服。

结语

大部分steam游戏服务器的开设都大同小异,基本上都可以通过上述方法进行开服,然后使用zerotier进行异地组网联机,希望你能进请享受联机带来的乐趣。

参考

评论

  1. mark
    Windows Edge
    7 月前
    2024-6-27 12:36:43

    mark一下

  2. save
    Windows Chrome
    7 月前
    2024-7-14 16:27:25

    steam://rungame/730/76561202255233023/+csgo_download_match%20CSGO-YUjo3-AFfO7-TjRAA-qqocT-4kJ9P

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇