Insurgency

Insurgency

45 ratings
Insurgency Linux Server 叛乱2建服中文详细指南[大概...][Language: Simplified Chinese!](20180401)
By xfcootd
NOTE: Language: Simplified Chinese!!!!!!
Linux_Insurgency_Dedicated_Server&SourceMOD&Workshop&FastDL
简单介绍了下linux叛乱2建服的过程,还有SourceMOD&smx插件以及insurgency创意工坊的使用方法.
想用linux建服的可以参考下,与windows相比linux还是很省资源的,就算主机配置低一点也没问题.
   
Award
Favorite
Favorited
Unfavorite
写在前面的话
为什么用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主机(购买的也好,闲置电脑或虚拟机搭建的也好,总之你要先搞到一台主机)

选择合适的SSH客户端进行登录
这里选择免费的https://www.chiark.greenend.org.uk/~sgtatham/putty/,软件只有512k,单文件免安装双击直接运行,因为它的配置信息存储在注册表里,你可以随便移动putty.exe的位置.




制作SSH公钥/私钥
  • 进入root用户家目录(/root),创建.ssh目录,设置权限为700并进入[linux文件名前加"."表示隐藏属性,默认不显示]
    cd ~ mkdir .ssh chmod 700 .ssh/ cd .ssh/
  • 使用ssh-keygen命令制作SSH公钥/私钥
    ssh-keygen -t rsa -b 4096
主机使用SSH公钥
在/root/.ssh目录下创建authorized_keys,将公钥233_test.pub的内容写入并修改authorized_keys权限为600
cat 233_test.pub >> authorized_keys chmod 600 authorized_keys


客户端使用SSH私钥
  • 先把私钥下载到自己的电脑上,这里使用https://www.chiark.greenend.org.uk/~sgtatham/putty/
    pscp.exe的使用需要借助命令提示符,有个技巧可以快速在当前目录打开命令提示符:
    首先按住SHIFT,然后在pscp.exe所在目录单击右键,在右键菜单中选择"在此处打开命令窗口

    把私钥233_test下载到自己的电脑上,并改名为233_test.private
    pscp.exe -P 22 root@192.168.233.233:/root/.ssh/233_test 233_test.private

  • PuTTY使用OpenSSH的私钥,转换工具https://www.chiark.greenend.org.uk/~sgtatham/putty/
    打开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打开终端

主机端禁止SSH使用密码登录,使用私钥登录更安全一些
  • 在这之前要先安装文本编辑工具,这里用简单方便的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
    设置完成
在网吧等公共场所推荐使用手机管理主机
SteamCMD + Insurgency Dedicated Server
先安装基本的工具软件和运行SteamCMD所需的依赖 [以CentOS 7为例]

新建一个用来运行Insurgency服务端程序的普通用户,不要直接用root,这是很危险的行为
  • 新建用户,名字自己起
    useradd steam
  • su切换至steam用户,root用户可以在各用户之间随意切换,利用这个可以做到免密码登录,exit退回到root用户
    su steam
Insurgency Dedicated Server
  • 下载和安装SteamCMD
    进入steam家目录[等同`cd /home/steam`]
    cd ~
    新建目录,用来安装SteamCMD
    mkdir SteamCMD cd SteamCMD
    下载,解压,运行SteamCMD
    wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz tar zxvf steamcmd_linux.tar.gz ./steamcmd.sh
  • 安装Insurgency Dedicated Server [确保硬盘有10GB以上可用剩余空间]
    使用anonymous账号登录
    login anonymous
    设置服务端文件安装位置, "./"表示当前目录
    force_install_dir ./insurgency_server
    安装insurgency,等下完后quit退出
    app_update 237410
    BUG
    Error! App '237410' state is 0x402 after update job. 失败的话,再输一次 'app_update 237410' 国内主机经常会出现这情况

  • 安装完成后
    insurgency_server就是下好的服务端程序,想多开的话复制粘贴一份,修改下端口和名字之类的就可以了
先了解下Insurgency服务端程序的目录结构
  • 主目录

  • insurgency

  • scripts

  • sourcemod
SourceMOD及插件扩展的安装
进入insurgency目录,下载并解压SourceMOD&MMSource
  • [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上

  • 插件下载-举个例子





  • 插件使用-举个例子



  • 插件禁用-举个例子



  • 插件编译-举个例子

运行服务器
创建server.cfg
默认没有这个配置文件需要自己新建 [位置: xxx/insurgency/cfg/server.cfg]
总之先cd进入到cfg目录下,再新建server.cfg文件
nano server.cfg
更多参数自行查阅相关资料233
// --------------------------------------------------------------- // Server Info Options // --------------------------------------------------------------- hostname "233_test" // server name 服务器名字 rcon_password "zongzhishegefuzadiandemimaba" // rcon password sv_password "233" // Server password 密码自己设,不想设密码的话把233删除 sv_minrate 30000 // recommended minimum rate mp_coop_lobbysize 8 // sets coop lobby size 最大玩家数,实际情况由地图和theater决定 spec_freeze_enable 1 // Enable kill cams 死亡回放 //--------------------------------------------------------------------------- //SourceMOD Plugins //这个要根据实际情况删除或增加 sm_botcount_timer 1 // botcount 插件设置选项,显示当前敌人数量 sm_botcount_enabled 1 sm_rpgdrift_enabled 1 //rpgdrift 插件设置选项,调节RPG发射后的抖动幅度 sm_rpgdrift_always_bots 1 sm_rpgdrift_chance 0.15 sm_rpgdrift_amount 2.0 sm_suicidebomb_auto_detonate_range 1 //suicidebomb 插件设置选项IED IED BOOOM 2333 sm_suicidebomb_player_classes sapper bomber suicide sm_suicidebomb_enabled 1 sm_suicidebomb_spawn_delay 30 sm_suicidebomb_auto_detonate_count 2 sm_suicidebomb_explode_armed 1 sm_suicidebomb_death_chance 0.75 sm_suicidebomb_bots_only 1 //--------------------------------------------------------------------------- // --------------------------------------------------------------- // Server Download Options (Community made maps) // --------------------------------------------------------------- // sv_downloadurl "<type-url-here>" // sv_allowdownload 1 // sv_allowupload 1 // --------------------------------------------------------------- // Server Logging Options // --------------------------------------------------------------- log on sv_logbans 1 sv_logecho 1 sv_logfile 1 sv_log_onefile 0 sv_deadtalk 1 //上帝视角也能发言 // --------------------------------------------------------------- // Game Mode Options (Change text with in the quotes) // --------------------------------------------------------------- // "mapcycle.txt" - by default this contains the most popular options // "mapcycle_all.txt" - all possible map/mode combinations for PvP // "mapcycle_ambush.txt" - only ambush (VIP) mode // "mapcycle_attackdefend.txt" - mix of attack/defend modes // "mapcycle_cooperative.txt" - checkpoint, outpost, hunt // "mapcycle_firefight.txt" - all firefight maps // "mapcycle_flashpoint.txt" - all flashpoint maps // "mapcycle_infiltrate.txt" - all infiltrate (CTF) maps // "mapcycle_objrespawn.txt" - all modes featuring respawning for completing objectives // "mapcycle_occupy.txt" - all occupy maps // "mapcycle_push.txt" - all push maps // "mapcycle_singlelife.txt" - mix of all single life modes // "mapcycle_skirmish.txt" - all skirmish maps // "mapcycle_workshop.txt" - used by Workshop system mapcyclefile "mapcycle.txt" // --------------------------------------------------------------- // Enabling Matchmaking (Change text with in the quotes) // More info: https://steamcommunity.com/app/222880/discussions/2/558746089590579609/ // --------------------------------------------------------------- // "pvp" (Player vs Player) // "custom" (Custom rules and modded servers) // "coop" (Cooperative) sv_playlist coop
防火墙开放游戏端口
这里以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管理服务端程序-先进入主目录[有srcds_run的目录]
  • 使用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.7deMingZi
    screen -r screen -r 2333
    至此,一个纯净的PVE服建立成功
添加创意工坊支持
insurgency的创意工坊系统进行过一次升级,有些很久没更新的MOD还在使用老的创意工坊系统,直接订阅的话会出现一些问题!

创建subscribed_file_ids.txt文件
  • 默认没有这个配置文件需要自己新建 [位置: 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
地图MOD的使用还要配置mapcyclefile和sv_playlist
  • mapcyclefile建议自己新建一个 [位置: xxx/insurgency/]



  • 搞定后修改server.cfg
    mapcyclefile "mapcycle_coop_233_test.txt
  • sv_playlist先改成custom 默认的coop等规则不支持第三方地图
    sv_playlist custom

服务端程序加上 -workshop 参数
  • 举个例子
    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



  • 当然客户端也一样

自定义服务器 不懂... 喵喵喵?
自定义服务器需要用到playlist和theater,但是playlist和theater用起来比较复杂
感兴趣的可以参考这篇社区指南
https://steamcommunity.com/sharedfiles/filedetails/?id=345661185






这都是些啥玩意23333
FastDL服务器
简单来说就是个文件下载服务器,地图什么的扔上边,客户端可以直接从FastDL服务器下载地图文件,用起来很方便但是需要自己找带宽足够的主机搭建
  • FastDL目录结构




  • 服务端配置 [修改server.cfg]
    把其中的链接改成你自己的FastDL服务器地址
    // --------------------------------------------------------------- // Server Download Options (Community made maps) // --------------------------------------------------------------- sv_downloadurl "http://127.0.0.1/insurgency" // sv_allowdownload 1 // sv_allowupload 1 // ---------------------------------------------------------------
  • 演示





    这样客户端可以直接从FastDL服务器下载地图等文件
    保存位置 [xxx\insurgency2\insurgency\]
运行服务端的主机可以同时做下载服务器吗? 可以,但是不推荐
  • 服务端配置 [修改server.cfg]
    upload 上传,这是服务端的上传,客户端就是下载
    // --------------------------------------------------------------- // Server Download Options (Community made maps) // --------------------------------------------------------------- // sv_downloadurl "<type-url-here>" // sv_allowdownload 1 net_maxfilesize 128 //限制可以上传的文件大小,大于128MB的禁止上传,可自定义 sv_allowupload 1 // ---------------------------------------------------------------
    这样客户端可以直接从服务端下载地图等文件
    保存位置 [xxx\insurgency2\insurgency\download]
BattleEye云查杀反作弊系统
UPDATE 2017/02/11 Insurgency Patch February 8&9

这次更新引进了云查杀反作弊系统BattleEye,不是很懂在已经有VAC的情况下还要引进BattleEye的原因

服务端(linux)

只有使用官方nwi/playlist例如PVP规则的服务器启用BattleEye,使用coop或者custom的服务器不会启用BE,所以linux服务端直接把BattleEye目录删除就行,没必要留着这个,PVE联机打BOT有个VAC就够了

客户端(win)



游戏启动方式如上图所示, 是不是有种很熟悉的感觉?
这特喵的不就是国内游戏汉化组为方便新手用户而广泛使用的'点我运行XXX.exe'吗...


既然服务端没启用BattleEye,那客户端(win)就根本没必要装了

因为在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] 贴吧传送: https://tieba.baidu.com/p/4940915821 [已停更,有错误但懒得改] 网盘链接: {LINK REMOVED} [已停更,有错误但懒得改] 密码:Horo PDF格式文件[已停更,有错误但懒得改] 没装阅读器的话直接用浏览器打开就行...
  • Pscp使用私钥验证并上传文件或文件夹



  • 小技巧-快速复制文件或文件夹路径



  • steam用户无法修改root用户上传的文件



  • 第三方地图下载

    [INSMAPS] http://www.insmaps.com/site/ 国内有些地区可能打不开这个网站,我也不知道为什么

  • 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
< >
62 Comments
BOT JZL Sep 22, 2018 @ 6:16am 
sv_battleye 1
可以在pve中启动be
BOT JZL Aug 15, 2018 @ 7:20pm 
@mumiao 日志里看下断开连接的原因
mumiao Aug 15, 2018 @ 4:54am 
为什么我的服务器每次一打完(一场游戏结束)选完地图后,所有人都会与服务器断开连接,就好像服务器重启了一样,有人遇到和我一样的情况吗?
遊而不擊 轉進如風 Jul 26, 2018 @ 1:49am 
请问服务器名怎么弄成中文的不乱码,csgo_hostname这个插件找不到啊.....
Excuse Miao? Jul 25, 2018 @ 7:47am 
@JZL {LINK REMOVED} 原来是这样 ,我以为我运行不成功。一直安装卸载安装卸载 谢谢了
木叶之尘 Jul 19, 2018 @ 5:23am 
大佬,我在房间列表里看见自己的服务器显示禁止模组,不知道怎么设为启用模组,因为自己添加的创意工坊的内容没有生效,所以想问下
BOT JZL Jul 14, 2018 @ 11:41pm 
@Excuse Miao?
服务器能正常启动就行,估计是nwi偷懒,通过控制台看官服也报错
xfcootd  [author] Apr 1, 2018 @ 3:03am 
@Excuse Miao? 抱歉这个我也不太清楚 :sakurabeachneneworried:
Excuse Miao? Feb 27, 2018 @ 11:48pm 
大佬我打扰一下
现在的情况是我无论用windows下server还是linux,最后再启动的时候都会说我缺少一些资源文件
大概像下面这个样子的错误

PrecacheScriptSound 'Voice_Response_Ins_UnSupp.Lead_CheckFire' failed

以及

Unknown command "joy_name"

这个样子的。
然后有一行是关于SteamAPI的,大致意思是说发现steam没有启动。
呃,与大佬的却别在于,我没有去安装sourceMod等相关的东西,只是想启动一个纯净服务。