TF2服务器搭建教程
!!!事先说明随便写着玩的!!!
|
⚠️️注意⚠️
(假如你只是想跟你的好友或朋友之间玩一玩,建议查看这篇教程: Enabling connections to your server [without portforwarding, external programs or websites] )
而且前提是足够的耐心和电脑基本知识还有金钱
假如你下定决心搞,那就继续往下看
假如夜间模式,看不到代码框里面的内容,鼠标在里面拖拽一下就可以看到
目录
云服务器
我也没什么好推荐的,看你买的是哪个,网络带宽推荐5M可以满足24人(不过可能还是有点卡)
采购完服务器之后配置安全组,你可以选择新建安全组,也可以直接在默认中加入
这边举例两个云服务器
这个端口根据你设置的来放行
腾讯云
京东云
配置完成之后,连接你的服务器进行下一步操作
安装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
那么代表服务器已下载并安装成功(当然这边脚本中添加了+quit
SteamCMD执行完相关操作就会自动退出,所以也就不会显示前面这个了)
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个,可以使用插件扩展更多,软件内存占用有些高
截图:
主菜单
仪表盘
Discord Bot
插件
设置
安装游戏服务器
2.SRCDS server manager 老的管理软件,对于双核或单核CPU服务器,软件占用率比较高,可以通过软件下载的服务器比较少,内存占用低
截图:主菜单
设置中文
1.点击设置→语言
2.在使用语言文件对话框里选择chi.ini
3.点击保存
保存之后软件会自动重启,重启之后就是中文了
当然,这个中文还是不完整的,但也够了
3.seDirector
Windows Server 最低版本2016
图片来自论坛中
主菜单
主菜单游戏服务器,右键
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 | #[multilib] |
按键盘的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 | // 显示在服务器浏览器和计分版的服务器名字 |
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 | tar -xf sourcemod-*.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服务器往后输入sm
和meta
meta
这个可以选择不输入,因为MM:S装好之后SM也就可以正常运行了
假如控制台输出
1 | SourceMod Menu: |
那么MM:S和SM就装好了
装好之后你就可以去,SourceMod Plugins 这边找插件了(这个已经提前设置好过滤器,游戏为TF2)
SM文件结构,查看wiki alliedmods的Managing your Sourcemod installation/zh 网页
你下载过来的插件,假如位置放错了那么是无法正常运行的
所以建议试看一下这个这个网页以防文件放错位置
不过要注意,假如你下载过来的没有.smx也就是编译好的插件
只有.sp源代码那么你需要自行编译
不要忘记给自己加个权限
打开目录tf/addons/sourcemod/configs
中admins_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 | // 这里的路径根据你的sm文件位置来填 |
如果没有问题,你就看到这个输出
1 | Compiling funcommands.sp... |
编译好的文件会放在这个里面scripting/compiled
假如是用spcomp
那么编译好的文件就在.sp所在的文件目录Windows也一样
后面的要编译的文件
你可以直接填写路径加文件名,只不过可能会报无法写入文件
sm12版本报错
1 | server@xxx:/.../scripting$./compile.sh /.../scripting/funcommands.sp |
include目录文件放编译所需要的依赖,文件格式为
.inc`
也就是文件里面这个
就是你在下载插件的时候,插件运行所需要的依赖
当然有些会标注仅编译,那么就是游戏中是用不到的,但是编译的时候是要用的
假如他没有标记出来,用到哪些依赖
可以先进行一次编译,如果报缺少的话,你就打开文件看这个
1 | #include <xxxx> |
这个一般都是指向依赖的.inc
的文件名字
可以直接复制粘贴到浏览器中搜索
然后下来放进,scripting/include
目录就可以了然后再进行编译
除去依赖错误,还有其他的代码错误
一些情况下可能需要修改代码(搜索,然后再解决问题),或者是提交报告或者就是问大佬
我这边自己也是不懂这些错误qwq,所以我这边也没法给你提供一些参考的解决方法
暂时写完
参考资料
Blog
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 进行许可。