Insurgency
59 人が評価
Insurgency Linux Server 叛乱2建服中文详细指南[大概...][Language: Simplified Chinese!](20180401)
作者: xfcootd
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客户端进行登录
这里选择免费的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 [已停更,有错误但懒得改] 网盘链接: {リンクが削除されました} [已停更,有错误但懒得改] 密码: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
61 件のコメント
squad 2021年3月22日 4時32分 
@xfcootd 我的metamod无法加载sourcemod。我的服务器用window,输入meta list时显示Listing 1 plugin:[01] <NOFILE>,然后info里面显示Plugin 1 is not loaded. 这个要怎样解决?
BOT JZL 2018年9月22日 6時16分 
sv_battleye 1
可以在pve中启动be
BOT JZL 2018年8月15日 19時20分 
@mumiao 日志里看下断开连接的原因
IEM 2018年8月15日 4時54分 
为什么我的服务器每次一打完(一场游戏结束)选完地图后,所有人都会与服务器断开连接,就好像服务器重启了一样,有人遇到和我一样的情况吗?
Excuse Miao? 2018年7月25日 7時47分 
@JZL {リンクが削除されました} 原来是这样 ,我以为我运行不成功。一直安装卸载安装卸载 谢谢了
MeetDeath 2018年7月19日 5時23分 
大佬,我在房间列表里看见自己的服务器显示禁止模组,不知道怎么设为启用模组,因为自己添加的创意工坊的内容没有生效,所以想问下
BOT JZL 2018年7月14日 23時41分 
@Excuse Miao?
服务器能正常启动就行,估计是nwi偷懒,通过控制台看官服也报错
xfcootd  [作成者] 2018年4月1日 3時03分 
@Excuse Miao? 抱歉这个我也不太清楚 :sakurabeachneneworried:
Excuse Miao? 2018年2月27日 23時48分 
大佬我打扰一下
现在的情况是我无论用windows下server还是linux,最后再启动的时候都会说我缺少一些资源文件
大概像下面这个样子的错误

PrecacheScriptSound 'Voice_Response_Ins_UnSupp.Lead_CheckFire' failed

以及

Unknown command "joy_name"

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

xfcootd  [作成者] 2018年1月23日 0時43分 
@zhletsky 跟系统版本没关系,虚拟机桥接跟物理机用网线连路由器效果一样,问题在于你服务器的Public IP跟你家的公网IP不是一个,这不正常。我用虚拟机桥接试了下,服务器程序srcds_run运行后命令行里出现的Public IP跟物理机浏览器百度出来的是同一个,有公网的话wan口IP也是同一个,这才是正常的情况,三个IP都相同才能在服务器列表里搜到。根据你前面的描述,你虚拟机中ubuntu的对外IP跟物理机百度出来的不同,除了装了代理之类的软件我想不到其他原因能让同一个路由器下的两个电脑获得不同的对外IP。或者是联通的黑科技。。。