TF2服务器搭建教程

TF2服务器搭建教程

TYHH10 Lv1
!!!事先说明随便写着玩的!!!

⚠️️注意⚠️

TF2在国内非常冷门,而且结合当前环境来看也不适合搭设服务器,在看之前一定要考虑好,不要脑子一热就搞了
(假如你只是想跟你的好友或朋友之间玩一玩,建议查看这篇教程:
Enabling connections to your server [without portforwarding, external programs or websites] )
而且前提是足够的耐心和电脑基本知识还有金钱
假如你下定决心搞,那就继续往下看
假如夜间模式,看不到代码框里面的内容,鼠标在里面拖拽一下就可以看到

目录

云服务器

我也没什么好推荐的,看你买的是哪个,网络带宽推荐5M可以满足24人(不过可能还是有点卡)
采购完服务器之后配置安全组,你可以选择新建安全组,也可以直接在默认中加入
这边举例两个云服务器
这个端口根据你设置的来放行
腾讯云
tencent
京东云
jdcloud
配置完成之后,连接你的服务器进行下一步操作

安装TF2服务器

Windows

需要会使用搜索引擎解决教程中没有提到的一些问题
1.自己部署
首先
前置操作:
点击工具,在文件夹选项中,选择查看,在里面找到”隐藏已知文件类型的扩展名”然后取消勾选(win7及下的)
在文件夹里点击上面查看,勾选文件扩展名(win8及以上)
服务器系统默认是勾选上这个文件扩展名的应该,假如看不到扩展名,就按这个操作一下就行了
1.在C盘或者桌面,新建一个steamcmd
2.目录然后到这个网站下载steamcmd
https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip
3.下载完之后把压缩包里的steamcmd.exe解压到刚刚创建的目录里面
在steamcmd目录中新建文本tf2_up.txt和tf2_vd.txt(验证脚本可选)
4.tf2_up.txt在里面输入

1
steamcmd.exe +login anonymous +force_install_dir C:\tf2server +app_update 232250 +quit

5.tf2_vd.txt在里面输入

1
steamcmd.exe +login anonymous +force_install_dir C:\tf2server +app_update 232250 validate +quit

6.保存关闭窗口
7.然后把后缀(扩展名)txt改成bat,双击运行刚刚的tf2_up.bat,SteamCMD会先下载它自身的必要组件之后就会进行服务器本体的下载,在此期间等待即可,假如游戏有更新,关闭服务器,再双击运行这个批处理文件就可以对服务器进行更新
假如服务器缺少文件的话,双击运行tf2_vd.bat就会验证服务器下载那些缺失的文件
下载的时候可能出现问题,多试几次就可以了
假如屏幕上出现了Success! App '232250' fully installed那么代表服务器已下载并安装成功(当然这边脚本中添加了+quitSteamCMD执行完相关操作就会自动退出,所以也就不会显示前面这个了)
8.返回到这个srcds.exe文件的目录里面,右键建一个快捷方式名字随意
鼠标右键快捷方式点击属性,在目标这一栏结尾空格一下,然后输入

1
-console -game tf +ip 0.0.0.0 +maxplayers 24 -port 27015 +map cp_5gorge

其他启动项参考Valve 开发者社区Source Dedicated Server
9.应用,然后关掉窗口双击运行刚刚的快捷方式

使用软件部署服务器

你可能需要自备梯子访问网站
你也可以选择使用软件来管理你的服务器
1.WindowsGSM 现代化的一个管理软件,默认支持游戏46个,可以使用插件扩展更多,软件内存占用有些高


截图:
主菜单
Home_Menu
仪表盘
Dashboard_Menu
Discord Bot
Discord_Bot_Menu
插件
Plugins_Menu
设置
Settinge_Menu
安装游戏服务器
Install_Game_Server_Menu
2.SRCDS server manager 老的管理软件,对于双核或单核CPU服务器,软件占用率比较高,可以通过软件下载的服务器比较少,内存占用低


截图:主菜单
Home_Menu


设置中文
1.点击设置→语言chi_1
2.在使用语言文件对话框里选择chi.inichi_2
3.点击保存chi_3
保存之后软件会自动重启,重启之后就是中文了
当然,这个中文还是不完整的,但也够了
3.seDirector
Windows Server 最低版本2016
图片来自论坛中

主菜单Home_Menu
主菜单游戏服务器,右键主菜单游戏服务器右键


Linux

跟Windows是一样,需要会使用搜索引擎解决教程中没有提到的一些问题
然后需要一些基本Linux知识
这边举例两个发行版,不同的发行版操作可能不太一样
注意:在开始之前,你需要准备一个ssh远程连接工具


Ubuntu

这边演示的系统版本是:24.04

首先,装好相关的依赖

1
sudo dpkg --add-architecture i386 && sudo apt-get update && sudo apt-get install -y lib32z1 libbz2-1.0:i386 lib32gcc-s1 lib32stdc++6 libcurl3-gnutls:i386 libsdl2-2.0-0:i386

建立服务器账户,并修改密码

1
sudo useradd -m server && sudo passwd server

如果你直接登录服务器账户,你可能会看到输入框这边只有$
这边需要更改/etc/passwd里面文件的内容

1
sudo vi /etc/passwd

小键盘上的上下左右键进行,光标的移动
然后找到这个

1
server:x:1001:1001::/home/server:/bin/sh

按键盘的I进入编辑模式
将结尾的sh修改为bash
按键盘ESC返回命令模式,在输入:wq保存退出
输入cd /home进入home目录
在当前目录创建两个目录,输入:

1
sudo mkdir steamcmd && sudo mkdir tf2server

创建完后输入cd steamcmd 进入steamcmd目录
然后下载并解压steamcmd压缩包,输入:

1
sudo wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz && sudo tar zxf steamcmd_linux.tar.gz && sudo rm steamcmd_linux.tar.gz

下载并解压完成后,更改修改权限给server账户

1
sudo chown -R server /home/tf2server && sudo chown -R server /home/steamcmd

假如你用sudo -i进入临时的root账户需要按Ctrl+c退出root账户
修改完后登录server账户su server

ArchLinux


安装需要用到的东西(如果已经安装则不需要)

1
sudo pacman -S vim wget screen

安装好后,我们需要先开启Arch Linux官方的软件仓库,输入:

1
sudo vim /etc/pacman.conf

小键盘上的上下左右键进行,光标的移动
然后找到这个

1
2
#[multilib]
#Include = /etc/pacman.d/mirrorlist

按键盘的I进入编辑模式
把前面的#删掉(两个都要)
按键盘ESC返回命令模式,在输入:wq保存退出
更新并安装相关依赖:

1
sudo pacman -Syu && sudo pacman -Syy lib32-gcc-libs lib32-libcurl-gnutls

建立服务器账户,并修改密码:

1
sudo useradd -m server && sudo passwd server

输入cd /home进入home目录
在当前目录创建两个目录,输入:

1
sudo mkdir steamcmd && sudo mkdir tf2server

创建完后输入cd steamcmd 进入steamcmd目录
然后下载并解压steamcmd压缩包,输入:

1
sudo wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz && sudo tar zxf steamcmd_linux.tar.gz && sudo rm steamcmd_linux.tar.gz

下载并解压完成后,更改修改权限给server账户

1
sudo chown -R server /home/tf2server && sudo chown -R server /home/steamcmd

这一步两个发行版都一样
登录server账户su server
输入cd /home/steamcmd切换到steamcmd目录,假如原本就是则不需要
然后输入

1
./steamcmd.sh +login anonymous +force_install_dir /home/tf2server +app_update 232250 +quit

进行服务器本体下载,刚开始会下载steamcmd相关的文件
如果遇到什么steamcmd的相关报错请访问这两个网页
Valve开发者社区
Team Fortress 2 Wiki
当你看到Success! App '232250' fully installed.
那么代表下载并安装成功了
切换到服务器目录,输入cd /home/tf2server
来进行一次服务器的启动测试,输入:

1
./srcds_run -game tf -console +map cp_5gorge +ip 0.0.0.0 -port 27015 +maxplayers 24

如果服务器可以正常启动和加入服务器,就可以进行之后的操作了

使用脚本部署服务器

你可以使用LGSM 脚本来进行的安装
访问这个Team Fortress 2 |LinuxGSM_ 网页选择Install选项
根据网页的说明进行操作,先建议把账户切换到root
这样的脚本可以自动化安装相关的依赖
然后输入安装指令,根据提示进行输入
如果安装没有任何问题就可以返回那个网页,选择Basic Usage选项
查看相关指令
不过有个注意的地方,假如你上传文件的时候不是他这个账户,你就需要把你刚刚上传的文件权限赐予给那个账户,否则你的启动服务器时会报错

server.cfg

这个文件将会在服务器启动和更换地图的时候自动执行里面的内容
示例

1
2
3
4
5
6
7
8
9
10
11
12
// 显示在服务器浏览器和计分版的服务器名字
hostname "服务器名字"
// 留空即没有服务器密码
sv_password ""
// 使用控制台rcon权限的密码(必须要填写的)
rcon_password "把我这段文本替换成你自己的"
// 每次地图轮换的时间,按分钟计时。0为不轮换地图。
mp_timelimit "50"
// 每次地图轮换所需的回合数。0为无限制。
mp_maxrounds "10"
// 允许客户端下载定制文件 (比如喷漆,自定义地图,自定义内容等等)
sv_allowdownload "1"

TF2 Wiki有完整的示例Example Server.cfg for TF2 dedicated server ,也可以使用我这边给的server.cfg[点击后下载]
PS:这边提供的文件编码为UTF-8

装插件

首先我们需要安装Metamod:Source SourceMod (以下简称MM:S和SM)
前者是运行SourceMod平台的基础,后者就是提供sm插件的运行环境
ps:插件文件的扩展名为.smx这个是已经编译好的文件.sp是源代码
根据你的系统下载MM:S SM
MM:S和SM稳定版的压缩包
Linux在自己本地电脑下载好后,通过FTP上传到服务器tf目录
上传或者下载好后将压缩包移动到tf目录里面
Linux

1
2
tar -xf sourcemod-*.tar.gz
tar -xf mmsource-*.tar.gz

压缩包里面包含两个文件分别是
addons
cfg
Windows使用解压软件解压的时候自动创建了一个文件夹,把里面的addons,cfg移动到tf目录
Linux建议使用指令重新赐予一下目录的权限,以防权限是root

1
sudo chown -R server /home/tf2server/tf/cfg && chown -R server /home/tf2server/tf/addons

如果是完全跟着教程来走的话,就直接把这些内容复制就行了,但这个目录如果是自己改过的,那需要修改一下
如果没问题的话,重启tf2服务器往后输入smmeta
meta这个可以选择不输入,因为MM:S装好之后SM也就可以正常运行了
假如控制台输出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
SourceMod Menu:
Usage: sm <command> [arguments]
cmds - List console commands
config - Set core configuration options
credits - Display credits listing
cvars - View convars created by a plugin
exts - Manage extensions
plugins - Manage Plugins
prof - Profiling
version - Display version information

Metamod:Source Menu
usage: meta <command> [arguments]
alias - List or set an alias
clear - Unload all plugins forcefully
cmds - Show plugin commands
cvars - Show plugin cvars
credits - About Metamod:Source
force_unload - Forcefully unload a plugin
game - Information about GameDLL
info - Information about a plugin
list - List plugins
load - Load a plugin
pause - Pause a running plugin
refresh - Reparse plugin files
retry - Attempt to reload a plugin
unload - Unload a loaded plugin
unpause - Unpause a paused plugin
version - Version information

那么MM:S和SM就装好了
装好之后你就可以去,SourceMod Plugins 这边找插件了(这个已经提前设置好过滤器,游戏为TF2)
SM文件结构,查看wiki alliedmods的Managing your Sourcemod installation/zh 网页
你下载过来的插件,假如位置放错了那么是无法正常运行的
所以建议试看一下这个这个网页以防文件放错位置
不过要注意,假如你下载过来的没有.smx也就是编译好的插件
只有.sp源代码那么你需要自行编译
不要忘记给自己加个权限
打开目录tf/addons/sourcemod/configsadmins_simple.ini的文件
划到最底下在最后一行添加

1
"STEAM_x:x:xxxxxxx" "99:z" //xxx

相关权限,请查看Adding Admins
这里Steam ID 可以访问lookup -STEAMID I/O 网站获取到了
只需要把你的个人主页网址输进去,然后点击lookup
然后填写进去保存
服务器控制台中使用指令sm_reloadadmins刷新
进入服务器输入!admin这个指令,如果弹出的菜单,那就没问题了


插件编译

关于插件的编译
Windows,你只需要把那.sp文件拖到compile.exe这个执行文件上就行了
文件路径是:

1
\tf\addons\sourcemod\scripting

用这个spcomp.exe也是一样的,因为compile.exe本质上也是调用这个
Linux,使用
这一演示的是sm自带的那个funcommands.sp文件

1
2
3
// 这里的路径根据你的sm文件位置来填
cd /tf/addons/sourcemod/scripting
./compile.sh funcommands.sp

如果没有问题,你就看到这个输出

1
2
3
4
5
6
7
8
9
Compiling funcommands.sp...
SourcePawn Compiler 1.12.0.7125
Copyright (c) 1997-2006 ITB CompuPhase
Copyright (c) 2004-2021 AlliedModders LLC

Code size: 77480 bytes
Data size: 17588 bytes
Stack/heap size: 17028 bytes
Total requirements: 112096 bytes

编译好的文件会放在这个里面
scripting/compiled
假如是用spcomp那么编译好的文件就在.sp所在的文件目录Windows也一样
后面的要编译的文件
你可以直接填写路径加文件名,只不过可能会报无法写入文件
sm12版本报错

1
2
3
4
5
6
7
8
9
10
11
12
server@xxx:/.../scripting$./compile.sh /.../scripting/funcommands.sp

Compiling /.../scripting/funcommands.sp...
SourcePawn Compiler 1.12.0.7125
Copyright (c) 1997-2006 ITB CompuPhase
Copyright (c) 2004-2021 AlliedModders LLC

/home/.../scripting/funcommands.sp(350) : error 419: cannot write to file: "compiled//.../scripting/funcommands.smx"
350 | }
---------^

1 Error.

include目录文件放编译所需要的依赖,文件格式为.inc`
也就是文件里面这个
就是你在下载插件的时候,插件运行所需要的依赖
当然有些会标注仅编译,那么就是游戏中是用不到的,但是编译的时候是要用的
假如他没有标记出来,用到哪些依赖
可以先进行一次编译,如果报缺少的话,你就打开文件看这个

1
#include <xxxx>

这个一般都是指向依赖的.inc的文件名字
可以直接复制粘贴到浏览器中搜索
然后下来放进,scripting/include目录就可以了然后再进行编译
除去依赖错误,还有其他的代码错误
一些情况下可能需要修改代码(搜索,然后再解决问题),或者是提交报告或者就是问大佬
我这边自己也是不懂这些错误qwq,所以我这边也没法给你提供一些参考的解决方法

暂时写完

参考资料

Blog

https://blog.midheart.club/2021/02/01/tf2_ds_cn/

TF2 Wiki

https://wiki.teamfortress.com/wiki/Linux_dedicated_server
https://wiki.teamfortress.com/wiki/Windows_dedicated_server/zh-hans

AlliedModders

https://forums.alliedmods.net/showthread.php?t=321089#1
https://forums.alliedmods.net/showthread.php?t=87810
https://wiki.alliedmods.net/Scripting_FAQ_(SourceMod)#How_do_I_learn_SourcePawn.3F
https://wiki.alliedmods.net/index.php/Category:SourceMod_Documentation

https://wiki.archlinux.org/title/Official_repositories#multilib
https://knwl.malacology.net/Vps2arch

  • 标题: TF2服务器搭建教程
  • 作者: TYHH10
  • 创建于 : 2024-04-11 12:49:43
  • 更新于 : 2024-11-24 13:20:12
  • 链接: https://blog.tyhh10.xyz/2024/04/11/tf2_server_setup_tutorial/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。