搜索
查看: 35304|回复: 38

实战阿里云Linux建立HLDS 6153 CS1.6服务器

[复制链接]
发表于 2015-8-3 17:35:56 | 显示全部楼层 |阅读模式 来自 中国–江苏–无锡
本帖最后由 dantes001 于 2015-8-3 18:50 编辑

感谢disremember在很久前发布了比较完整的一篇建立Linux CS服务器的教程:linux系统架设cs1.6服务器图文教程(兼容47/48协议的non-steam)www.dt-club.net/thread-46567-1-1.html
本文只是对这篇文章做了一些补充和分享一些我在建立过程中所碰到问题的解决方法。
本文最初发表在点通论坛,如需转载,请注明出处!作者:dantes(土鳖)^_^

1、        关于Linux版本的选择:
阿里云提供了好多种Linux的发行版本,一开始我选择了Ubuntu 14.04 32位,结果装好后碰到一个问题,和这个帖子相同:Linux下加pingboost 3参数,sys_tickrate 3000之后出现的奇怪问题(www.dt-club.net/thread-68335-1-1.html),我无法解决这个问题,只能老老实实换版本,最后我选择了CentOS 6.5 32位,各位和我一样的Linux小白可以直接选这个,我能保证这个系统能正常跑HLDS6153,其余版本我没试过,如果你在其它版本上正常跑起来了,也可以分享一下。
2、        用SteamCMD来下载最新服务端
在disremember的帖子中,当时使用的还是hldsudatetool,现在我们需要使用SteamCMD来下载最新的服务端。具体操作步骤请参考官网:developer.valvesoftware.com/wiki/SteamCMD#Linux,和windows下其实差不多的。
不过在这一步的时候,我碰到过2个问题,在这里把解决方法分享给大家:①我在第一次启动./steamcmd.sh的时候,报错,
[mw_shl_code=php,false] SteamAPI_Init() failed; unable to locate a running instance of Steam, or a local steamclient.dll.[/mw_shl_code]
,官网提供的解决方法是:[mw_shl_code=PHP,false]ln -s steamcmd/linux32/steamclient.so ~/.steam/sdk32/steamclient.so[/mw_shl_code],当时没注意看官网,自己翻了好多国外论坛找到的解决方法是在建个~/.steam/sdk32文件夹,然后把linux32目录下的所有文件复制一份过去,然后可以正常继续了②一开始用app_update 90 validate 下载到了HLDS 6153,开出来后一切正常,但是大量ping高的玩家反映,开枪卡子弹,然后又是国外论坛上翻了一下午,得出结论,这个版本的HLDS有个BUG,一般ping高于60左右就会出现卡子弹等等问题,怎么解决?老外有提供插件的,有提供防火墙规则的,最后有个老外说了,你们这帮SB,搞这么复杂干嘛,升级到beta版就行了,果然,用app_update 90 -beta beta validate升级到最新的beta版,问题解决!还是6153版,只不过编译日期和文件大小有点区别。我怀疑windows下的版本也有这个问题,在windows下用HLDS6153的童鞋也可以更新下试试,对这个问题感兴趣的话可以看这里(forums.alliedmods.net/showthread.php?t=248364),在此特别感谢神坛forums.alliedmods.net。


发个帖子好困难,幸亏是在word里写好的!
 楼主| 发表于 2015-8-3 17:37:04 | 显示全部楼层 来自 中国–江苏–无锡
本帖最后由 dantes001 于 2015-8-3 18:59 编辑

3、        模块的安装
Metamod模块一般都有linux版本,大家自己找找吧,阿U版主的中文补丁可以不用打了,新版本本身支持,打了也打不上;sXe官网上下载到的Linux服务端不是最新版本,换几次图后会升级到最新,前提是目录权限要可写。
Amxmodx下的模块,我用到的有两个模块在官方的版本里是没有自带的,一个是Memhack,中文ID等等好多插件会用到这个模块,可以到这里下载:forums.alliedmods.net/showpost.php?p=394656&postcount=62?p=394656&postcount=62,虽说是很老的版本了,但是用到目前为止我没发现什么问题;另一个是Li_geoip模块,用到IP地址转换的插件都要用到这个模块,我印象中这个模块在点通有发布的帖子的,可是怎么搜都搜不到,国外的类似模块不支持QQ ip数据库,最后还是在我们论坛里找到了可以替代的版本:kinsprite大神发布的IP查询模块 (IP Seeker module) 支持珊瑚虫、纯真IP数据库(www.dt-club.net/forum.php?mod=vi ... highlight=ip%2Bseek),和Li_geoip有两点区别,一个是IP数据库文件名是:wry.dat,另一个是在插件里查询IP数据库的函数要简单修改下,例如我们最常用的enterleave插件,要把里面的[mw_shl_code=pawn,true]get_ipinfo( szIP, szCountry, szArea, 39, 63);[/mw_shl_code]改成[mw_shl_code=pawn,true]ipseeker2( szIP, szCountry, 39, 1, szArea, 63, 1);[/mw_shl_code]当然还要把头部的[mw_shl_code=pawn,true]#include "li_geoip"[/mw_shl_code]改成[mw_shl_code=pawn,true]#include <ipseeker>[/mw_shl_code],插件具体怎么改,请参照大神原帖。
4、        Dproto
我写这篇东西的时候最新的DP版本还是0.9.548,这个版本的问题在我们论坛里也有人提出来过:更新了 Dproto_0_9_548 出现了Fake client. Connection was in Idle state(www.dt-club.net/thread-68665-1-1.html),翻翻官网的回帖,战斗民族解决问题的方法就是简单粗暴:
[mw_shl_code=php,true]FakePlayers_AntiReconnect = 0
FakePlayers_BanTime = -1[/mw_shl_code]
这样设置后真人不会被BAN了,不过前几天发广告的假人也放进来了,一直换IP,换ID进来say Connect xx.xx.xx.xxx Free Vip & Free Admin.为了解决这个问题,试了好多模块和插件比如:fakedetector,R4GE Server Guard,stopsay等等,都没什么效果,唯一有点用处的是stopsay插件,设定人进服后多少秒之内不能say,这样假人进来后转一圈就离开了,不过看着这些东欧的IP在服里进进出出真烦躁。后来去网上下了个这个xfakeplayer看看,发现原来这东西模拟RevEmu、OldRevEmu、AVSMP、SteamEmu来登陆服务器发广告,然后就简单粗暴了:dproto.cfg里设置:[mw_shl_code=php,true]cid_RevEmu = 5
cid_RevEmu2013 = 5
cid_SC2009 = 5
cid_OldRevEmu = 5
cid_SteamEmu = 5
cid_AVSMP = 5
cid_SSE3 = 5 [/mw_shl_code]
这样一来终于清静了,什么?有人进不来?换个客户端吧,国内还是用47协议老版本的人多。
0.9.548里有两个设置跟以前的版本不一样的cid_NoSteam47和cid_NoSteam48现在默认都是4,这样被BAN掉的人都不是BAN的IP,而是根据IP生成的SteamID,解BAN不方便,对动态IP的用户也不顶用,因此,我们还是改回cid_NoSteam47 = 8 和cid_NoSteam48 = 10。
5、        其它问题
①        启动后如果发现提示:Could not establish connection to Steam servers. 请在启动参数里加上+ip xxx.xxx.xxx.xxx
②        Localizebugfix模块可以装一个,据说是amxmodx的bug,dp不补。
③        有问题先看看各个目录的权限设置,嫌打命令烦的话可以用WinSCP。
④        sys_ticrate我设成了2000,设成3000的话cpu占用太高了
⑤        进程守护的话现在的HLDS自带,exit之类的命令后会重启,不过碰到过有一种情况不会自动重启,就是加了地图可能缺纹理模型,服务器就挂在那边,没有启出来。
⑥        国内的masterserver列表加不进,希望有大神写个Linux下可以用的RegMaster。

要下班了,暂时先写到这里,水平有限,写得不好,希望大家见谅,想到什么再补充吧。
Ps:我的阿里云配置:单核+1G+5M带宽+CentOS 6.5 32位
HLDS 6153 + MetaMod v1.21p37+AMXMODX v 1.8.2
121.41.95.214:27015  大家可以来试试,还有几天到期,有攻击随时关。


写这点东西的初衷有两个:1、CS已经是个夕阳游戏了,能坚持到现在还在做服务器和还在玩的玩家都不容易,从开服务器人的角度来看,希望能把服务器的各种体验提到极致,留下更多的CS玩家来;2、在点通一直做伸手党,每天都要上来看看,希望点通也要像CS一样坚持下去!
回复

使用道具 举报

发表于 2015-8-3 18:32:30 | 显示全部楼层 来自 中国–广东–深圳
这么好的文章都没人顶,点通的人去哪里了?
回复

使用道具 举报

发表于 2015-8-3 19:45:58 来自手机 | 显示全部楼层 来自 中国–西藏
好东西 顶一下
回复

使用道具 举报

发表于 2015-8-16 01:28:27 | 显示全部楼层 来自 中国–上海–上海

121.41.95.214:27015

半夜了居然这么多人,楼主如何搞定互联网刷出的问题了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注个册吧

×
回复

使用道具 举报

发表于 2015-8-16 02:03:58 | 显示全部楼层 来自 中国–上海–上海
centos 6.7 64位 实现了CS1.5 1.6(6153)服务端 正常运行

但是我排错过程中 发现
1.6会有一个报错,但是不影响正常游戏
[mw_shl_code=pawn,true][S_API FAIL] SteamAPI_Init() failed; SteamAPI_IsSteamRunning() failed.[/mw_shl_code]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注个册吧

×
回复

使用道具 举报

发表于 2015-8-16 02:53:49 来自手机 | 显示全部楼层 来自 中国–广东–佛山
觉得阿里云什么配置带一个服不卡?
回复

使用道具 举报

 楼主| 发表于 2015-8-19 10:44:20 | 显示全部楼层 来自 中国–江苏–无锡
hackroad 发表于 2015-8-16 01:28
121.41.95.214:27015

半夜了居然这么多人,楼主如何搞定互联网刷出的问题了

引诱+各个网页平台手工添加。
回复

使用道具 举报

 楼主| 发表于 2015-8-19 10:45:23 | 显示全部楼层 来自 中国–江苏–无锡
hackroad 发表于 2015-8-16 02:03
centos 6.7 64位 实现了CS1.5 1.6(6153)服务端 正常运行

但是我排错过程中 发现

我也有这错误,没什么影响就没去管。
回复

使用道具 举报

发表于 2015-8-19 13:01:12 | 显示全部楼层 来自 中国–上海–上海–嘉定区
dantes001 发表于 2015-8-19 10:44
引诱+各个网页平台手工添加。

浩方对战引诱?还是用老版本转进来人
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注个册吧

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