下载客户端

《Warfork》服务器:如何搭建你自己的服务器

2026-04-01 19:00:25
发布在Warfork
转载

AI智能总结导读

这是一份《Warfork》服务器搭建指南,主要介绍在Linux主机(推荐Ubuntu 18.04)上搭建《Warfork》服务器的完整流程,含系统选择、Shell访问、系统更新、依赖安装、服务器配置、cron任务设置及故障排查等,还提供一键脚本简化操作。

本指南将引导你在Linux主机上搭建《Warfork》服务器的过程。 前言 一键脚本:如果你已有Ubuntu 18.04(或Debian 10)服务器用于安装《Warfork》服务器,只需执行一个脚本。可直接跳至“TL;DR”部分。 如果你清楚操作流程且不想使用脚本,可直接跳至“安装工具和LinuxGSM依赖项”部分。 引用自psymin:我将在本文档中使用此类引用块。此处内容可放心忽略,主要为补充信息或故障处理说明。 选择操作系统 为服务器选择Linux发行版相对简单。 考虑到普及度和长期支持,我推荐Ubuntu 18。如果可以选择,建议使用ubuntu系统,本指南将主要围绕该发行版展开。引用自psymin:关于LinuxGSM支持的Linux发行版的更多信息,你可以访问相关页面。其中任何一种发行版“应该”都能与我们将要使用的所有LinuxGSM脚本良好配合。Debian 10也已通过测试,且运行正常。在Warfork代码合并之前,我们将使用LinuxGSM的分支版本。此外,如果你在使用LGSM和Warfork时遇到任何问题,请告知我。有关如何安装和配置标准Ubuntu 18.04操作系统的详细信息,你可以访问相关网站(该网站针对桌面版,但许多内容同样适用)。无法识别或无法翻译,已删除。

Digital Ocean提供多种发行版供选择。选择【Ubuntu 18.04.3 (LTS) x64】

选择离您最近的数据中心区域。

选择【标准】入门方案和【每月5美元】的服务器选项。

为简化操作,请尝试使用一次性密码。请查看您的邮箱,获取已发送给您的密码。

请记录此处的IP。我把这个稍微弄模糊了一点。 Droplet名称:ubuntu-s-1vcpu-1gb-nyc1-01 IP地址:157.xxx.xxx.12 用户名:root 密码:b09205111386813768b9b5f5b4 这是你应该从Digital Ocean收到的包含一次性登录信息的邮件。 有了IP、用户名和密码,你就可以进入下一部分并获得【Shell访问权限】 引用自psymin:我们还应该对这些机器进行一些操作以确保其安全,比如为非root用户设置身份验证以及禁用root用户的SSH访问。 但这超出了本文档的范围。 【Shell访问权限】 你需要访问服务器的控制台/终端/Shell。 Windows用户需要像PuTTY这样的客户端来通过SSH连接远程Linux服务器。引用自 psymin:Linux 和 MacOS 用户可以通过本地终端窗口使用 ssh。 更新操作系统 由于我们刚刚启动了全新的操作系统,此时进行更新应该是安全的。 Ubuntu sudo apt update && sudo apt -y upgrade 这也是测试服务器在重启和新内核下能否正常启动的好时机。 sudo reboot 重启过程可能需要大约五分钟左右。 等待适当时间后,再次通过 SSH 连接到远程服务器。 引用自 psymin:如果全新安装的操作系统在更新后无法启动,这超出了本文档的讨论范围。cfg)这意味着只要你的实例配置设置正确,你就不会意外损坏dedicated_autoexec.cfg的网络部分。 使用cron自动执行任务 你至少需要几个cron作业: 1. 电脑启动时启动Warfork服务器守护进程。 2. 监控守护进程,若其崩溃则重启。 3. 有更新时更新服务器文件。 4. 每周更新一次LinuxGSM脚本。 以下是一个crontab示例,对于从一开始就遵循本指南的用户来说非常适用。 由于我们使用的是全新安装并已更新的服务器,且有一个名为“wf”的新用户,执行以下命令应该能为你设置好这些cron作业。该内容包含外部链接,已按规则删除。# 开机启动wfserver @reboot ~/wfserver start > /dev/null 2>&1 #@reboot ~/wfserver-2 start > /dev/null 2>&1 #@reboot ~/wfserver-3 start > /dev/null 2>&1 #@reboot ~/wfserver-4 start > /dev/null 2>&1 # 每五分钟检查wfserver状态 # 若崩溃,发送警报并重启守护进程 */5 * * * * ~/wfserver monitor > /dev/null 2>&1 #*/5 * * * * ~/wfserver-2 monitor > /dev/null 2>&1 #*/5 * * * * ~/wfserver-3 monitor > /dev/null 2>&1 #*/5 * * * * ~/wfserver-4 monitor > /dev/null 2>&1 # 信息:如需配置警报,请查看以下文件中的变量: # 信息:lgsm/config-lgsm/wfserver/_default.cfg # 信息:不要修改这些变量。请在以下文件中进行设置: # 信息:lgsm/config-lgsm/wfserver/wfservercfg # 检查wfserver更新,若发现则下载/应用 */30 * * * * ~/wfserver safe-update > /dev/null 2>&1 # 每周日午夜更新LinuxGSM脚本 0 0 * * 0 ~/wfserver update-functions > /dev/null 2>&1 ############################################################## # # 字段 允许值 # ----- -------------- # 分钟 0-59 # 小时 0-23 # 日 1-31 # 月 1-12(或名称,见下文) # 星期 0-7(0或7为周日,或使用名称) # # 分 时 日 月 星期 用户命令 # * * * * * blah.sh # # wf@games:~$ man 5 crontab引用自psymin:LinuxGSM文档涵盖了更详细的内容。 简而言之:一个为你完成所有事情的脚本 如果你已经完成了所有设置,不想阅读文档? 我懂你。 假设你使用的是Ubuntu 18.04服务器,此脚本将为你完成所有设置。 如果你在Ubuntu 18.04上使用此脚本遇到问题,你实际上应该按照文档中的每个步骤进行操作。 收集故障排除信息 进行故障排除时,掌握一些有关情况的详细信息非常有用。 第一步应该是查看【./wfserver details】命令的输出。细节都在这里:./wfserver details “details”命令非常实用。尤其是“postdetails”命令,它能获取详细信息并返回一个可供分享的链接,方便协助你排查问题的人查看。 请注意此输出的底部。 wf@games:~$ ./wfserver details [信息] 详细信息 wfserver:检查 IP:10.0.0.13 发行版详情 ==================================================================================== 发行版:Ubuntu 18.04.3 LTS 架构:x86_64 内核:4.15.0-58-generic 主机名:games 终端复用器:tmux 2.6 glibc:2.27 性能 运行时间:4天16小时46分钟 平均负载:0.05,0.12,0.09 CPU型号:Intel(R) Xeon(R) CPU E5-2630 v2 @ 2.60GHz CPU核心数:3 CPU频率:2600050 MHz 内存: 总计 已用 空闲 缓存 可用 物理内存: 12GB 294MB 12GB 4.3GB 12GB 交换空间: 0B 0B 0B 存储 ==================================================================================== 文件系统: /dev/vda2 总计: 18G 已用: 8.5G 可用: 8.3G LinuxGSM 总计: 716M 服务器文件: 438M Warfork 服务器详情 ==================================================================================== 服务器名称: Warfork 服务器 服务器 IP: 10.0.0.13:44400 互联网IP:[已隐藏]:44400 玩家:0/2 当前地图:wfdm1 主服务器:否 状态:在线 wfserver脚本详情 ==================================================================================== 服务名称:wfserver wfserver版本:v19.9.0 用户:wf 所需glibc:2.15 Discord提醒:关闭 邮件提醒:关闭 Pushbullet提醒:关闭 IFTTT提醒:关闭 Mailgun(邮件)提醒:关闭 Pushover提醒:关闭 Telegram提醒:关闭 位置:/home/wf 配置文件:/home/wf/serverfiles/Warfork.app/Contents/Resources/basewf/dedicated_autoexec.配置文件 备份 ==================================================================================== 未创建备份 命令行参数 ==================================================================================== ./wf_server.x86_64 +exec dedicated_autoexec.cfg +sv_http_ip 10.0.0.13 +set sv_http_port 44444 +sv_ip 10.0.0.13 +sv_port6 44400 +sv_port 44400 端口 ==================================================================================== 通过编辑以下文件中的参数更改端口: /home/wf/lgsm/config-lgsm/wfserver 有用的端口诊断命令: netstat -atunp | grep wf_server 描述 方向 端口 协议 > 游戏 入站 44400 udp > Http 入站 44444 tcp 状态:在线sh 退出,代码:0 您可以查看服务器配置使用的端口,并通过【实用端口诊断命令】验证其是否正在使用这些端口: netstat -atunp | grep wf_server 对于默认设置,请确保您的输出如下所示: wf@games:~$ netstat -atunp | grep wf_server (无法识别所有进程,将不会显示非自有进程信息 您需要以 root 身份才能查看全部信息。) tcp 0 0 0.0.0.0:44444 0.0.0.0:* LISTEN 12062/./wf_server.x tcp6 0 0 :::44444 :::* LISTEN 12062/./wf_server.x udp 0 0 10.0.0.13:44400 0.0.0.0:* 12062/./wf_server.希望你能及时与你的托管服务提供商、硬件供应商或Linux发行版维护人员解决此问题。 安装工具和LinuxGSM依赖项 “TL;DR”部分中有一个脚本可以完成所有这些操作。 Ubuntu / Debian sudo dpkg --add-architecture i386; 引用自psymin:如果你熟悉所有这些内容,只需克隆此分支并像在主线lgsm中一样安装即可udp6 0 0 :::44400 :::* 12062/./wf_server.x "./wfserver details"命令还会显示一些实用配置文件的位置: 配置文件:/home/wf/serverfiles/Warfork.app/Contents/Resources/basewf/dedicated_autoexec.cfg 通过编辑以下文件中的参数来更改端口: /home/wf/lgsm/config-lgsm/wfserver 日志文件:服务器控制台输出会记录到"log/console/wfserver-console.log"文件中。 cat log/console/wfserver-console.log 故障排除 [失败] 启动wfserver:无法启动 查看控制台日志以了解是否存在错误: cat log/console/wfserver-console.log 端口和IP冲突 以下是端口配置错误时可能在日志中出现的一些错误。如果您的IP或端口配置错误,请按照“服务器配置”部分的说明在wfserver.cfg文件中进行设置。 ====== Warfork已初始化 ====== 无法执行:dedicated_autoexec_postinit.cfg 正在打开UDP/IP套接字:10.0.0.13:44400 错误:无法打开UDP套接字:绑定:未知错误 正在打开UDP/IPv6套接字:*:44400 错误:无法打开UDP6套接字:绑定:未知错误 ******************** 错误:无法打开任何套接字 ******************** 错误:无法打开任何套接字 错误:无法打开TCP套接字:绑定:未知错误正在打开TCP/IPv6套接字:*:44444 错误:无法打开TCP套接字:绑定:未知错误 投票问题这可能是端口问题。检查您实例配置中的httpport变量。确保每个服务器都绑定了单独的TCP端口。(默认值:44444)。有关更多信息,请参阅【服务器配置】部分。 引用自psymin:LGSM配置中的httpport变量会设置Warfork服务器配置中的sv_http_port变量。 向客户端提供地图服务这也可能是端口问题。检查实例配置中的httpport变量。确保每个服务器都绑定了单独的TCP端口。(默认值:44444)。有关更多信息,请参阅【服务器配置】部分。 引用自psymin:LGSM配置中的httpport变量会设置Warfork服务器配置中的sv_http_port变量。 【警告】启动wfserver:配置文件缺失!请确认它正在查找的配置文件是否存在。默认位置:~/serverfiles/Warfork.app/Contents/Resources/basewf/dedicated_autoexec。配置文件 [警告] 详细信息 wfserver:检查 IP:发现多个 IP 地址。您需要在此文件中手动设置要绑定的 IP: ~/lgsm/config-lgsm/wfserver/common.cfg wfwrapper.sh 脚本无法运行!?现在该怎么办!?阅读本指南并尝试不使用脚本进行操作。创建用户 sudo useradd -m wf -k /etc/skel -s /bin/bash 切换到新用户: sudo su -l wf 引用自psymin:如果你想以该用户身份通过ssh登录,需要为该用户设置密码。 以root身份执行命令passwd wf 用于gamedig的NPM环境 安全更新命令需要gamedig。我们将使用NPM为"wf"用户安装它。 wget https://raw.githubusercontent.com/psymin/wf_tool/master/npm-env.shchmod +x npm-env.sh./npm-env.sh 现在安装gamedig。 npm install gamedig -g 作为参考,脚本如下: #!/bin/bash # 为本地用户安装设置npm环境 # 并安装gamedig mkdir ~/.node echo "prefix = ~/.node" >> ~/.npmrc echo "PATH=/"$HOME/.node/bin:/$PATH/"" >> ~/.个人配置文件 echo "NODE_PATH=/"/$HOME/.node/lib/node_modules:/$NODE_PATH/"" >> ~/.profile echo "MANPATH=/"/$HOME/.node/share/man:/$MANPATH/"" >> ~/.profile 引用自psymin:我们希望移除对npm和gamedig的依赖。帮助我们扩展LinuxGSM的gsquery支持! 安装"wfserver" wget https://raw.githubusercontent.com/psymin/wf_tool/master/wfserver chmod +x wfserver ./wfserver auto-install ./wfserver start 引用自psymin:如果输出过程中出现错误,请查看"故障排除"部分。 例如,关于此消息的提示 [警告]详情wfserver:检查IP:发现多个IP地址。 服务器配置 LinuxGSM 默认端口为44400 UDP和44444 TCP。 大多数用户无需修改LinuxGSM实例配置。如果你确实想要为你的实例修改LinuxGSM配置,可以为你的【wfserver】实例修改此文件:/home/wf/lgsm/config-lgsm/wfserver/wfserver.cfg。 取消所有变量的注释并将它们设置为适当的值。 如果你更改了【port】或【servercfg】的值,请确保取消【queryport】和【servercfgfullpath】的注释。 ################################## ######## 实例设置 ######## ################################## # 在此处放置实例设置 ## 这些设置将应用于特定实例 ## 服务器启动设置 | https://docs.linuxgsm.com/configuration/start-parameters # 实例的Warfork特定配置默认值。 # 来自https://github.# Warfork 这些默认设置适用于单个服务器,且运行效果良好。 端口="44400" HTTP端口="44444" 服务器配置文件="dedicated_autoexec.cfg" # 服务器配置文件在basewf目录中查找 # ~/serverfiles/Warfork.app/Contents/Resources/basewf/ # 如需更改IP,请在该文件所在目录的common.cfg中进行修改 # ~/lgsm/config-lgsm/wfserver/common.cfg # 或在此处设置以覆盖common.cfg中的默认值 #ip="0.0.0.0" # 请勿修改以下内容 查询端口="${port}" 服务器配置文件完整路径="${servercfgdir}/${servercfg}" Warfork 默认设置可能已足够且运行效果良好。 引用自psymin:当你想要修改服务器配置时,应修改以下文件: /home/wf/serverfiles/Warfork.app/Contents/Resources/basewf/dedicated_autoexec.cfg 《Warfork》服务器可通过多种方式进行配置。具体服务器的配置不在本文档讨论范围内。 请注意,以下变量由LinuxGSM设置,有望覆盖《Warfork》配置中设置的变量: sv_ip sv_port sv_port6 sv_http_ip sv_http_port 可选操作:设置额外服务器 cp wfserver wfserver-2 ./wfserver-2 details 这将为名为wfserver-2的新实例创建默认的LinuxGSM配置。 此配置位于: /home/wf/lgsm/config-lgsm/wfserver/wfserver-2.cfg 默认情况下,其内容与wfserver.cfg一致。配置文件: ################################## ######## 实例设置 ######## ################################## # 在此处放置实例设置 ## 这些设置将应用于特定实例 ## 服务器启动设置 # Warfork 实例的特定配置默认值。 # 来源于相关资源 # 这些默认值适用于单个服务器 端口="44400" HTTP端口="44444" 服务器配置文件="dedicated_autoexec.cfg" # 服务器配置文件在 basewf 目录中查找 # ~/serverfiles/Warfork.app/Contents/Resources/basewf/ # 在与此文件相同目录下的 common.cfg 中可更改IP # ~/lgsm/config-lgsm/wfserver/common.cfg # 或在此处设置以覆盖 common 中的默认值配置文件 #ip="0.0.0.0" # 请勿修改此行以下的任何内容 queryport="${port}" servercfgfullpath="${servercfgdir}/${servercfg}" 将端口设置为有效的端口,例如"44401" 将httpport设置为有效的端口,例如"44445" 将servercfg设置为其他配置文件,例如"dedicated_autoexec2.cfg" 我们可以通过复制原始配置文件来创建这个新的配置文件"dedicated_autoexec2.cfg"。 cp /home/wf/serverfiles/Warfork.app/Contents/Resources/basewf/dedicated_autoexec.cfg /home/wf/serverfiles/Warfork.app/Contents/Resources/basewf/dedicated_autoexec2.cfg 引用自psymin:此文件中设置的值会传递给wf_server.x86_64服务器程序。它们会覆盖【Warfork】配置文件(如默认配置文件dedicated_autoexec.cfg)中设置的任何值。

评论

共0条评论
face
inputImg
最新更新