Insurgency Guide

Insurgency Linux Server 叛乱2建服中文详细指南[大概...][Language: Simplified Chinese!](20180401) for Insurgency

Insurgency Linux Server 叛乱2建服中文详细指南[大概…][Language: Simplified Chinese!](20180401)

Overview

NOTE: Language: Simplified Chinese!!!!!!Linux_Insurgency_Dedicated_Server&SourceMOD&Workshop&FastDL简单介绍了下linux叛乱2建服的过程,还有SourceMOD&smx插件以及insurgency创意工坊的使用方法.想用linux建服的可以参考下,与windows相比linux还是很省资源的,就算主机配置低一点也没问题.

写在前面的话

为什么用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客户端进行登录

这里选择免费的[link],软件只有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私钥
  • 先把私钥下载到自己的电脑上,这里使用[link]
    pscp.exe的使用需要借助命令提示符,有个技巧可以快速在当前目录打开命令提示符:
    首先按住SHIFT,然后在pscp.exe所在目录单击右键,在右键菜单中选择”在此处打开命令窗口

    把私钥233_test下载到自己的电脑上,并改名为233_test.private

    pscp.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打开终端

主机端禁止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为例]
  • 基本的工具软件
    yum update yum install unzip tree screen wget
  • 运行SteamCMD所需的依赖 根据系统版本选择 具体参考wiki [link]
    RedHat/CentOS 32-Bit

    yum install glibc libstdc++

    RedHat/CentOS 64-Bit

    yum install glibc.i686 libstdc++.i686

新建一个用来运行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 [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 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: [link] // ————————————————————— // “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用起来比较复杂

感兴趣的可以参考这篇社区指南
[link]

这都是些啥玩意23333

FastDL服务器

简单来说就是个文件下载服务器,地图什么的扔上边,客户端可以直接从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的原因

服务端(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] 贴吧传送: [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
SteamSolo.com