QQ登录

只需一步,快速开始

登录 | 立即注册 | 找回密码

熊天琪游戏论坛 - 玩出名堂

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2007|回复: 6

[文视教程] Insurgency Linux Server 叛乱2创建服务器教程(转steam指南)

[复制链接]
发表于 2018-4-8 14:19:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
这并不是写给完完全全新手看的,
如果你对linux,0基础可以尝试做下,
一般来说,我只能告诉你怎么去操作,但不能帮助你在操作的过程中遇到的问题,
除非你所操作的系统和我一致,或许可以按照教程的步骤顺利完成搭建



SteamCMD + Insurgency Dedicated Server
1.先安装基本的工具软件和运行SteamCMD所需的依赖 [以CentOS 7为例]

基本的工具软件
yum update
yum install unzip tree screen wget

运行SteamCMD所需的依赖 根据系统版本选择 具体参考wiki [Downloading_SteamCMD]
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 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就是下好的服务端程序,想多开的话复制粘贴一份,修改下端口和名字之类的就可以了




2.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"
设置好后然后重启服务器,
然后进游戏按Y键(注:不是控制台)输入!admin就可以使用管理员命令了

插件扩展的安装
在哪可以找到可以用的插件

[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上



3.运行服务器



创建server.cfg
4楼
点击查看创建标准PVE
5楼
点击查看创建标准PVP


防火墙开放游戏端口
这里以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> 。
将服务端程序切换至后台继续运行
快捷键(先按住CTRL,再依次按A,D)
将服务端程序切回来-只有一个的话
screen -r
将服务端程序切回来-有多个的话
`screen -r` 会显示全部窗口,[pid.]tty.host,选择对应的程序,例如:2333.7deMingZi
screen -r
screen -r 2333
至此,一个纯净的PVE服建立成功

注意:启动的时候遇到了
WARNING: No map specified! Defaulting to contact
Server will auto-restart if there is a crash.
LD_LIBRARY_PATH=/home/steam/SteamCMD/insurgency_server/bin:/home/steam/SteamCMD/insurgency_server:/home/steam/SteamCMD/insurgency_server/bin:
Failed to open libvstdlib_srv.so (/lib/libm.so.6: version `GLIBC_2.15' not found (required by /home/steam/SteamCMD/insurgency_server/bin/libvstdlib_srv.so))
Add "-debug" to the ./srcds_run command line to generate a debug.log to help with solving this problem

请看
3楼
解决方案:点击查看








添加创意工坊支持


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/share ... 57082&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




熊天琪的论坛真是太好啦, 我太喜欢熊天琪啦
 楼主| 发表于 2018-4-9 22:47:10 | 显示全部楼层
Insurgency Linux Server 叛乱2创建服务器教程(转steam指南)
CentOS7以上的系统搭建没有任何问题,
7以下的系统会出现依赖源版本过低,
运行srcds_run之后会出现
WARNING: No map specified! Defaulting to contact
Server will auto-restart if there is a crash.
LD_LIBRARY_PATH=/home/steam/SteamCMD/insurgency_server/bin:/home/steam/SteamCMD/insurgency_server:/home/steam/SteamCMD/insurgency_server/bin:
Failed to open libvstdlib_srv.so (/lib/libm.so.6: version `GLIBC_2.15' not found (required by /home/steam/SteamCMD/insurgency_server/bin/libvstdlib_srv.so))
Add "-debug" to the ./srcds_run command line to generate a debug.log to help with solving this problem


解决方法:
CentOS6.5系统"libc.so.6: version 'GLIBC_2.15' not found"解决方法
  1. 出现"libc.so.6: version 'GLIBC_2.15' not found"问题,是由于glibc版本过低,升级glibc即可。

  2. 由于CentOS系统RPM源目前glibc最高版本是2.12,所以只能采用源码升级

  3. 一、查看系统glibc支持的版本


  4. strings /lib64/libc.so.6 |grep GLIBC  
  5. #查看当前glibc版本  
  6. ll /lib64/libc.so.6   
  7. lrwxrwxrwx. 1 root root 12 Oct  9  2014 /lib64/libc.so.6 -> libc-2.12.so  
  8. 二、下载glibc源码包


  9. cd /usr/src/  
  10. wget http://mirror.bjtu.edu.cn/gnu/glibc/glibc-2.15.tar.gz  
  11. wget http://mirror.bjtu.edu.cn/gnu/glibc/glibc-ports-2.15.tar.gz      #glibc插件  
  12. 三、解压安装升级glibc


  13. tar zxvf glibc-2.15.tar.gz  
  14. tar zxvf glibc-ports-2.15.tar.gz  
  15. mv glibc-ports-2.15 glibc-2.15/ports  
  16. mkdir build  
  17. cd build  
  18. ../glibc-2.15/configure  --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin  
  19. make -j4  
  20. make install  
  21. 四、验证

  22. 查看当前系统glibc支持的版本


  23. strings /lib64/libc.so.6 |grep GLIBC  
  24. 五、误删libc.so.6解决办法

  25. 命令行执行如下:


  26. #LD_PRELOAD=/lib/libc-2.12.so ln -s /lib/libc-2.12.so lib/libc.so.6  
复制代码


注意:运行
../glibc-2.15/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
这段代码的时候可能出现的错误是



源码编译,提示缺少gcc cc cl.exe
解决方案:
      yum install -y gcc glibc


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
熊天琪的论坛真是太好啦, 我太喜欢熊天琪啦
 楼主| 发表于 2018-4-10 00:21:28 | 显示全部楼层
上面的解决方法是错误的,
WARNING: No map specified! Defaulting to contact
Server will auto-restart if there is a crash.
LD_LIBRARY_PATH=/home/steam/SteamCMD/insurgency_server/bin:/home/steam/SteamCMD/insurgency_server:/home/steam/SteamCMD/insurgency_server/bin:
Failed to open libvstdlib_srv.so (/lib/libm.so.6: version `GLIBC_2.15' not found (required by /home/steam/SteamCMD/insurgency_server/bin/libvstdlib_srv.so))
Add "-debug" to the ./srcds_run command line to generate a debug.log to help with solving this problem

之前弄错了,更新的是64位的,而服务器实际依赖的是32位的,
所以具体解决方法如下:

centos6.x升级glibc-2.17
glibc
glibc是GNU发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc;
它本身也提供了许多其它一些必要功能服务的实现;

libc.so.6
libc.so.6是一个链接到glibc的软链接;
对glibc的升级其实是对libc.so.6这个库的更改;
libc.so.6删除之后会导致系统很多命令的失效,所以对libc.so.6的更改要小心小心再小心,很容易将系统搞崩溃;

查看libc.so.6的版本
需要知道libc.so.6这个库在哪个位置,一般是/lib、/lib64、/usr/lib、/usr/lib64这四个文件夹下
用strings命令查看版本号;

  1. 1 [root@localhost /]# find / -iname libc.so.6
  2. 2 /lib/libc.so.6
  3. 3 /lib/i686/nosegneg/libc.so.6
  4. 4 [root@localhost /]# strings /lib/libc.so.6 | grep GLIBC_
  5. 5 GLIBC_2.0
  6. 6 GLIBC_2.1
  7. 7 GLIBC_2.1.1
  8. 8 GLIBC_2.1.2
  9. 9 GLIBC_2.1.3
  10. 10 GLIBC_2.2
  11. 11 GLIBC_2.2.1
  12. 12 GLIBC_2.2.2
  13. 13 GLIBC_2.2.3
  14. 14 GLIBC_2.2.4
  15. 15 GLIBC_2.2.6
  16. 16 GLIBC_2.3
  17. 17 GLIBC_2.3.2
  18. 18 GLIBC_2.3.3
  19. 19 GLIBC_2.3.4
  20. 20 GLIBC_2.4
  21. 21 GLIBC_2.5
  22. 22 GLIBC_2.6
  23. 23 GLIBC_2.7
  24. 24 GLIBC_2.8
  25. 25 GLIBC_2.9
  26. 26 GLIBC_2.10
  27. 27 GLIBC_2.11
  28. 28 GLIBC_2.12
  29. 29 GLIBC_PRIVATE
复制代码

升级libc.so.6
两种方法升级,一种是通过rpm包升级,另外一种是通过编译glibc,然后将生成的库链接到libc.so.6上,这里只记录通过rpm包对centos6.x的32位系统的升级;
首先需要有这四个rpm包:glibc-2.17-55.el6.i686.rpm、glibc-common-2.17-55.el6.i686.rpm、glibc-devel-2.17-55.el6.i686.rpm、glibc-headers-2.17-55.el6.i686.rpm
然后依次安装这四个包:


rpm -Uvh glibc-2.17-55.el6.i686.rpm
rpm -Uvh glibc-common-2.17-55.el6.i686.rpm
rpm -Uvh glibc-devel-2.17-55.el6.i686.rpm
rpm -Uvh glibc-headers-2.17-55.el6.i686.rpm
这四个包的下载地址:

https://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-i386/glibc-2.17-55.fc20/
当安装、卸载件包时,出现依赖问题 error: Failed dependencies

依赖关系非常复杂,当你试图先安装任何一个包时都会出现这样的依赖关系错误,这时候你就应该强制安装了,我认为只要你把服务或软件需要的包都装上,强制安装也不会出问题的,不会有什么影响。

非常简单,只要加上一个--force (强制) 和--nodeps(不查找依赖关系)就可以了

如:rpm -vih httpd-2.2.3-6.el5.i386.rpm --force --nodeps


卸载时就不用--force了,只要加入--nodeps就ok了


举例:


遇到的问题:
[root@sh158-xen data]#rpm -ivh MySQL-server-5.5.31-2.el6.i686.rpm
error: Failed dependencies:

        libaio.so.1 is needed by MySQL-server-5.5.31-2.el6.i686
        libaio.so.1(LIBAIO_0.1) is needed by MySQL-server-5.5.31-2.el6.i686
        libaio.so.1(LIBAIO_0.4) is needed by MySQL-server-5.5.31-2.el6.i686

纠结了半天,终于找到了解决方法:(感谢提供相关文章的博友)
在安装包后面加两个参数,如
[root@VM_55_2_centos mysql]#  rpm -ivh MySQL-server-5.5.31-2.el6.i686.rpm --nodeps --force
Preparing...                ########################################### [100%]
   1:MySQL-server           ########################################### [100%]

加上那两个参数的意义就在于,
安装时不再分析包之间的依赖关系而直接安装,
也就不会再提示error: Failed dependencies:这样的错误了


熊天琪的论坛真是太好啦, 我太喜欢熊天琪啦
 楼主| 发表于 2018-4-10 00:33:03 | 显示全部楼层
// ---------------------------------------------------------------
// Server Info Options
// ---------------------------------------------------------------
sv_playlist nwi/coop //标准合作
sv_pure -1 //支持MOD
hostname "#2[cn]www.xiongtianqi.cn qun:176404420"        // server name
rcon_password "************"        // rcon password
sv_password ""                // Server password for private servers
sv_minrate 30000 // recommended minimum rate

// ---------------------------------------------------------------
// 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

// ---------------------------------------------------------------
// 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: http://steamcommunity.com/app/22 ... 558746089590579609/
// ---------------------------------------------------------------
// "pvp" (Player vs Player)
// "custom" (Custom rules and modded servers)
// "coop" (Cooperative)

PVE标准的合作服务器server.cfg配置同时要附带启动项:
./srcds_run -port 27015 +map district_coop +maxplayers 8 +exec server.cfg

熊天琪的论坛真是太好啦, 我太喜欢熊天琪啦
 楼主| 发表于 2018-4-10 16:44:46 | 显示全部楼层
// ---------------------------------------------------------------
// Server Info Options
// ---------------------------------------------------------------
sv_playlist nwi/pvp_sustained //标准合作
sv_pure -1 //支持MOD
hostname "#2[cn]www.xiongtianqi.cn qun:176404420"        // server name
rcon_password "************"        // rcon password
sv_password ""                // Server password for private servers
sv_minrate 30000 // recommended minimum rate

// ---------------------------------------------------------------
// 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

// ---------------------------------------------------------------
// 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: http://steamcommunity.com/app/22 ... 558746089590579609/
// ---------------------------------------------------------------
// "pvp" (Player vs Player)
// "custom" (Custom rules and modded servers)
// "coop" (Cooperative)



PVP持久作战服务器server.cfg配置同时要附带启动项:
  1. ./srcds_run -port 27015 +maxplayers 32 +exec server.cfg
复制代码


熊天琪的论坛真是太好啦, 我太喜欢熊天琪啦
发表于 2018-4-10 21:20:06 | 显示全部楼层
简单写一下我建服务器的经过,其中一些可能会对以后建服的人有一点启发,我本来对Linux系统一窍不通,经过这次建服也记住一些命令了。

我用的是阿里云的ECS,系统是centos7.4,参考的教程就是上面的教程,不得不说有关insurgency建服的教程并不多,Linux系统中文的就是上面这个了,算是比较详细了。按教程的步骤每一步都完成了,运行服务器,开启游戏后,在服务器列表里找不到,直接添加服务器输入IP后显示服务器无响应,看服务器运行后的命令行显示界面有一些找不到目录之类的,我误以为是我架设的服务器有问题,以为是缺少文件,之后各种百度,可是有关的教程和讨论很有限,之后我重装系统试了好几种方式,包括升级glibc2.15运行库,都不行。

今天在一个群里意外发现坛主架设服务器成功了,于是前去请教,在他指点下,我才知道服务器架设是没有问题的,应该是端口问题,按照教程,系统里的端口是打开的,但是云服务器里的防火墙也需要设置,如果你用的是云服务器且有同样的问题可以去云服务器后台看一下,或者提交工单咨询客服。
我用的是阿里云,他的设置是需要到云服务器控制台设置安全组,配置规则里添加安全组规则,添加27015/UDP端口,我之前虽然知道需要添加安全组规则,但是添加的是27015/TCP端口,这个可加可不加,但是27015/UDP一定要加,再添加安全组规则,重启生效后,服务器成功运行。
因为我也是小白,很多问题也不是很明白,就把我遇到的问题又怎么解决的过程描述一遍,以后可能会有遇到和我一样问题的人,如果有图可能更直观一些,但是我不知道怎么发图.....
再次感谢坛主指点。
熊天琪的论坛真是太好啦, 我太喜欢熊天琪啦
 楼主| 发表于 2018-5-4 12:49:14 | 显示全部楼层
windows的话最后运行只用加
srcds.exe -console -ip YourIP -port 27015 +map market_coop +maxplayers 32
srcds.exe -console -ip 192.168.1.101 +map verticality -port 27015 +maxplayers 32
就可以了

熊天琪的论坛真是太好啦, 我太喜欢熊天琪啦
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Loading...

QQ|小黑屋|Archiver|手机版|熊天琪 ( 鄂ICP备14006674号,鄂公网安备42020502000003号 

安全联盟

GMT+8, 2018-11-18 22:34 , Processed in 0.111525 second(s), 28 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表