Overview
NOTE: Language: Simplified Chinese!!!!!!Linux_Insurgency_Dedicated_Server&SourceMOD&Workshop&FastDL简单介绍了下linux叛乱2建服的过程,还有SourceMOD&smx插件以及insurgency创意工坊的使用方法.想用linux建服的可以参考下,与windows相比linux还是很省资源的,就算主机配置低一点也没问题.
写在前面的话
因为手里这台主机配置有点低233 单核CPU,内存1024MB,重点是带宽限制1Mbps(1Mbps /8 ==128KB/s),用Windows估计有点吃力,更何况现在微软停止了对Windows Server 2003的后续支持,继续使用的话还有可能会面对一系列安全问题.
Linux不用安装图形界面,服务器要图形界面作甚,又不是直接在上面玩游戏,通过SSH可以用输一串串命令的方式对主机进行各种不可描述的操作,对渣渣配置和小水管来说这绝对是更好的选择.
- 实际例子
服务器空载时
玩家5人,Bot数8~13, 地图district_coop 模式checkpoint ,默认coop规则(sv_playlist coop),默认theaters - 开服所需带宽的粗略估算方法
游戏中打开控制台输入net_graph 1回车,右下角会显示下图中的信息(0/1/2/3/4/五种选择,4显示的信息最全面,也更占地方)
你想开什么样的服,就找个相似的进去玩一会,等稳定后眼睛不要眨盯着in瞅上半个小时,取最大值乘以玩家数估算30.26KB/s[平时说的下载速度] x 8 == 242.08Kbps[平时说的带宽,10M,20M,100M之类的] 242.08Kbps x 12[最大玩家数] == 2904.96Kbps 2904.96Kbps / 1024 ~= 2.8Mbps [单位转换,1024,显然你的服务器上传带宽必须大于这个才行]
开服前期准备(SSH的配置)
假设你已经拥有了一台可用的拥有公网IP的Linux主机(购买的也好,闲置电脑或虚拟机搭建的也好,总之你要先搞到一台主机)
这里选择免费的[link],软件只有512k,单文件免安装双击直接运行,因为它的配置信息存储在注册表里,你可以随便移动putty.exe的位置.
- 进入root用户家目录(/root),创建.ssh目录,设置权限为700并进入[linux文件名前加”.”表示隐藏属性,默认不显示]
cd ~ mkdir .ssh chmod 700 .ssh/ cd .ssh/
- 使用ssh-keygen命令制作SSH公钥/私钥
ssh-keygen -t rsa -b 4096
在/root/.ssh目录下创建authorized_keys,将公钥233_test.pub的内容写入并修改authorized_keys权限为600
- 先把私钥下载到自己的电脑上,这里使用[link]
pscp.exe的使用需要借助命令提示符,有个技巧可以快速在当前目录打开命令提示符:
首先按住SHIFT,然后在pscp.exe所在目录单击右键,在右键菜单中选择”在此处打开命令窗口
把私钥233_test下载到自己的电脑上,并改名为233_test.privatepscp.exe -P 22 [email protected]:/root/.ssh/233_test 233_test.private - PuTTY使用OpenSSH的私钥,转换工具[link]
打开puttygen.exe
导入OpenSSH的私钥233_test.private [file -> load private key,找不到的话文件类型选择全部ALL Files]
然后保存私钥[Save private key],文件名随便起[例如233_test_putty_private]
这样PuTTY就可以使用这个私钥了
- PuTTY使用私钥登录
依次点选Connection -> SSH -> Auth 点击Browse选择转换后的私钥,点击Open打开终端
- 在这之前要先安装文本编辑工具,这里用简单方便的nano,也可以使用自带的vi 如果你知道怎么退出的话233
以CentOS 7 为例,源里有,用yum安装yum update yum install nano - 编辑sshd_config配置文件
nano /etc/ssh/sshd_config
找到`PasswordAuthentication yes`改成`PasswordAuthentication no`
改好后按住CTRL再按X,会询问是否保存,y保存/n不保存,然后回车确认
- 重启SSH服务,让配置生效
这里以CentOS 7 为例systemctl restart sshd.service设置完成
- 这里使用[link]和[Hacker’s Keyboard][f-droid.org]因为纯命令操作,实际使用并不会消耗太多流量
SteamCMD + Insurgency Dedicated Server
- 基本的工具软件
yum update yum install unzip tree screen wget
- 运行SteamCMD所需的依赖 根据系统版本选择 具体参考wiki [link]
RedHat/CentOS 32-Bityum install glibc libstdc++RedHat/CentOS 64-Bit
yum install glibc.i686 libstdc++.i686
- 新建用户,名字自己起
useradd steam
- su切换至steam用户,root用户可以在各用户之间随意切换,利用这个可以做到免密码登录,exit退回到root用户
su steam
- 下载和安装SteamCMD
进入steam家目录[等同`cd /home/steam`]cd ~新建目录,用来安装SteamCMD
mkdir SteamCMD cd SteamCMD下载,解压,运行SteamCMD
wget [link] tar zxvf steamcmd_linux.tar.gz ./steamcmd.sh - 安装Insurgency Dedicated Server [确保硬盘有10GB以上可用剩余空间]
使用anonymous账号登录login anonymous设置服务端文件安装位置, “./”表示当前目录
force_install_dir ./insurgency_server安装insurgency,等下完后quit退出
app_update 237410BUG
Error! App ‘237410’ state is 0x402 after update job. 失败的话,再输一次 ‘app_update 237410’ 国内主机经常会出现这情况 - 安装完成后
insurgency_server就是下好的服务端程序,想多开的话复制粘贴一份,修改下端口和名字之类的就可以了
先了解下Insurgency服务端程序的目录结构
- 主目录
- insurgency
- scripts
- sourcemod
SourceMOD及插件扩展的安装
- 去[SourceMOD官网][www.sourcemod.net]和[mmsource官网][www.metamodsource.net]获取最新稳定linux版本下载地址,使用 ‘wget xxxxxx.xxx-linux.tar.gz’ 进行下载
- 对下载的文件进行解压
tar zxvf sourcemod-1.8.0-git5919-linux.tar.gz tar zxvf mmsource-1.10.6-linux.tar.gz
基本安装完成
- 修改`xxx/insurgency/addons/sourcemod/configs/admins_simple.ini`文件
把自己SteamID添加成管理员,其它具体权限说明可以查看admin_levels.cfg - SteamID是每个正版用户唯一的身份识别码,它不是Steam账号用户名,而是类似于身份证号码的一组数字,在游戏中打开控制台输入status可以查看,不管个人资料有没有隐藏
- 服主当然要设置最高权限
“STEAM_0:1:16” “99:z”
- 在哪可以找到可以用的插件
[Jared Ballou’s Insurgency Tools][jballou.com] Jared Ballou整理了各种跟insurgency有关的资料,非常全面
[Jared Ballou’s github][github.com] Jared Ballou自己用的SourceMOD,其中包含许多插件
[sourcemod-plugins][www.sourcemod.net] 官方插件平台,标志是any,也就是不依赖特定游戏的的大多都能用在insurgency上
- 插件下载-举个例子
- 插件使用-举个例子
- 插件禁用-举个例子
- 插件编译-举个例子
运行服务器
默认没有这个配置文件需要自己新建 [位置: xxx/insurgency/cfg/server.cfg]
总之先cd进入到cfg目录下,再新建server.cfg文件
更多参数自行查阅相关资料233
这里以CentOS 7 为例,使用自带的firewalld,有的主机提供商会关闭系统自带防火墙,然后提供一个额外的防火墙,这种情况设置更简单,只要去主机的控制面板设置即可
- 当前用户是steam配置防火墙需要切换到root用户,刚开始是从root切换到steam现在只要`exit`回车即可退回到root用户
exit
- 看下firewalld有没有好好工作
firewall-cmd –state
- 服务端只需开放UDP端口即可,具体端口号根据实际情况决定,例如27015/UDP 如果想使用rcon的话也把27015/tcp开放
firewall-cmd –zone=public –add-port=27015/udp –permanent
- 更新规则,重启服务
firewall-cmd –complete-reload
- 查看当前规则
firewall-cmd –zone=public –list-all
- 配置完切换到steam用户
su steam cd ~
- 举个例子
- 使用screen管理服务端程序-举个例子
screen -S 7ge_MingZi /home/steam/SteamCMD/2_ins_server/srcds_run -port 27015 +map district_coop +maxplayers 32
修正一下错误,原先我给出的示例用了”-ip” 参数 [-ip 233.233.233.233],实际上srcds_run运行时不用加 “-ip” 参数,TA自己会自动识别对外IP 。加上也可以,但要注意 “-ip” 后面的地址要根据服务器实际网络环境进行更改!!! 一般来说就是服务器公网IP,据说有些VPS要换成内网IP,否则报错 CreateBoundSocket: ::bind returned error [no name available]<10049> 。
这有个帖子可以参考下:关于建服设置公网IP提示<10049>错误的解决方法—一汽丰田威乐[tieba.baidu.com]
- 将服务端程序切换至后台继续运行
快捷键(先按住CTRL,再依次按A,D)
- 将服务端程序切回来-只有一个的话
screen -r
- 将服务端程序切回来-有多个的话
`screen -r` 会显示全部窗口,[pid.]tty.host,选择对应的程序,例如:2333.7deMingZiscreen -r screen -r 2333至此,一个纯净的PVE服建立成功
添加创意工坊支持
insurgency的创意工坊系统进行过一次升级,有些很久没更新的MOD还在使用老的创意工坊系统,直接订阅的话会出现一些问题!
- 默认没有这个配置文件需要自己新建 [位置: xxx/insurgency/subscribed_file_ids.txt]
nano subscribed_file_ids.txt
- 把要订阅的MOD的ID填进去,一行一个,举个例子
426712960 672667761 498252536 498257082 498255733 284971476 318205420 292080383 352148389 292081732 352149578 283120201
- MOD的ID怎么获得?
浏览器打开[insurgency创意工坊] 找到想订阅的MOD并打开,看下浏览器的地址栏比如说fortress_coop_ws这个地图MOD, ID是498257082 fortress_coop_ws #https://steamcommunity.com/sharedfiles/filedetails/?id=498257082&searchtext=ws
- mapcyclefile建议自己新建一个 [位置: xxx/insurgency/]
- 搞定后修改server.cfg
mapcyclefile “mapcycle_coop_233_test.txt
- sv_playlist先改成custom 默认的coop等规则不支持第三方地图
sv_playlist custom
- 举个例子
screen -S 7ge_MingZi /home/steam/SteamCMD/2_ins_server/srcds_run -ip 233.233.233.233 -port 27015 +map district_coop +maxplayers 32 -workshop
- 服务端会自动下载并加载MOD
- 当然客户端也一样
自定义服务器 不懂… 喵喵喵?
感兴趣的可以参考这篇社区指南
[link]
这都是些啥玩意23333
FastDL服务器
- FastDL目录结构
- 服务端配置 [修改server.cfg]
把其中的链接改成你自己的FastDL服务器地址// ————————————————————— // Server Download Options (Community made maps) // ————————————————————— sv_downloadurl “[link] // sv_allowdownload 1 // sv_allowupload 1 // ————————————————————— - 演示
这样客户端可以直接从FastDL服务器下载地图等文件
保存位置 [xxxinsurgency2insurgency]
- 服务端配置 [修改server.cfg]
upload 上传,这是服务端的上传,客户端就是下载// ————————————————————— // Server Download Options (Community made maps) // ————————————————————— // sv_downloadurl “<type-url-here>” // sv_allowdownload 1 net_maxfilesize 128 //限制可以上传的文件大小,大于128MB的禁止上传,可自定义 sv_allowupload 1 // —————————————————————这样客户端可以直接从服务端下载地图等文件
保存位置 [xxxinsurgency2insurgencydownload]
BattleEye云查杀反作弊系统
UPDATE 2017/02/11 Insurgency Patch February 8&9
这次更新引进了云查杀反作弊系统BattleEye,不是很懂在已经有VAC的情况下还要引进BattleEye的原因
只有使用官方nwi/playlist例如PVP规则的服务器启用BattleEye,使用coop或者custom的服务器不会启用BE,所以linux服务端直接把BattleEye目录删除就行,没必要留着这个,PVE联机打BOT有个VAC就够了
游戏启动方式如上图所示, 是不是有种很熟悉的感觉?
这特喵的不就是国内游戏汉化组为方便新手用户而广泛使用的’点我运行XXX.exe’吗…
因为在steam库直接运行游戏会启动insurgency_BE.exe, 所以解决方式(暂定):
( A / B 2选1 )
- A. 把insurgency.exe复制一份并改名为insurgency_BE.exe
- B. 直接把insurgency.exe添加成非Steam库游戏
FAQ
- [已停更,有错误但懒得改] 本指南的离线PDF版本&贴吧版本 [国内网络有时会刷不出steam图片…]
./[叛乱2建服参考]Linux_Insurgency_Dedicated_Server[V.0.0.1].pdf [MD5]91945445c89b79e1aeb2c00630fc1c61[V.0.0.1] [SHA1]d910883e48aa39311aa60004e23b4cafcff6ec78[V.0.0.1] 贴吧传送: [link] [已停更,有错误但懒得改] 网盘链接: {LINK REMOVED}https://pan.baidu.com/s/1o7DxDUE [已停更,有错误但懒得改] 密码:Horo PDF格式文件[已停更,有错误但懒得改] 没装阅读器的话直接用浏览器打开就行…
- Pscp使用私钥验证并上传文件或文件夹
- 小技巧-快速复制文件或文件夹路径
- steam用户无法修改root用户上传的文件
- 第三方地图下载
[INSMAPS] [link] 国内有些地区可能打不开这个网站,我也不知道为什么
- Horo Pixiv
[By BlacKrow][www.pixiv.net]
[By 狼巴子原型机][www.pixiv.net] - 觉得有帮助就点赞(Rate)吧 哦呼 !
- Loading…
Guide updates
This guide is up to date for version 2.3.9.6
- UPDATE 2018/04/01 修正关于服务器启动命令中 “-ip” 参数的错误说明。退坑,溜了溜了
- UPDATE 2017/10/01 增加关于服务器启动命令中 “-ip” 参数的说明
- UPDATE 2017/02/11 Insurgency Patch February 8&9
Added section BattleEye云查杀反作弊系统
- UPDATE 2017/01/15 Hello Insurgency