引言
之前我写了一篇文章内网访问:使用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]
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进行异地组网联机,希望你能进请享受联机带来的乐趣。
mark一下
steam://rungame/730/76561202255233023/+csgo_download_match%20CSGO-YUjo3-AFfO7-TjRAA-qqocT-4kJ9P