|
楼主 |
发表于 2010-1-27 03:48:17
|
显示全部楼层
来自 中国–河北–保定
本帖最后由 disremember 于 2010-12-27 20:03 编辑
linux系统架设cs1.6服务器图文教程(兼容47/48协议的non-steam客户端登录)
第四部分(续)
关于cs.16服务器所使用的端口及网络通讯协议,以及linux防火墙iptables的设置
先说点儿题外话:
能读本教程到这一部分的人,是十分令人敬佩的,之所以这么说,是基于两点,
第一点:linux操作系统,不是一个像windows2003那样容易掌握好的系统。
第二点:本人第一次写linux环境下的教程,虽然竭尽全力地想尽量解释清楚每一步在做什么,但由于文字水平有限,不可避免的有词不达意的地方,所以本文当中不可避免的出现(虽然我极力的去避免)我意想不到的一些知识陷阱,
能坚持到现在的读者,我知道,你是个很有毅力的人,我也知道本教程一定无数次地把你引入歧途,但庆幸的是你还是靠自己的力量挣脱出并回归到正确轨道上,在此本人对你表示深深的敬意!
待续。。。。
前段时间比较忙碌,接着就是过年,现在有点时间了,我们继续完成本教程:
在下面的部分中,我们开始讨论cs1.6服务器所使用的一些端口,以及它的数据传输协议,并通过配置linux防火墙iptables,让我们的cs1.6服务器安全、稳定、高效的运行。
cs1.6服务器端运行以后,会开通一些端口,我们得使用一些手段来查明到底cs1.6服务器端使用了哪些端口,首先,我们在启动cs1.6服务器端的时候,可以看到它开启的所用到的端口,然后,我们再用一个命令来查明它运行后使用了哪些端口。
下面截图是hlds启动截图:
截图中的信息表示,hlds启动使用了27010和27013两个端口(注意:你服务器的启动端口不一定与此相同),它们分别将你的cs1.6服务器注册到valve的两个列表服务器上(玩家客户端依赖这两个服务器刷出你的服),
然后我们使用一个linux命令查看你的cs1.6服务器端还使用了哪些端口,输入下面命令:- #netstat -anp | grep hlds
复制代码 命令执行后截图如下:
截图信息显示,我们的cs1.6服务器端运行还使用两个端口,27015和26900
通过上面做过的工作,我们知道一个cs1.6服务器端启动和运行时,需使用的端口一共有4个,使用udp(不是tcp)网络协议,即:
27010
27013
27015
26900
下面我们通过修改iptables配置文件,来进行linux防火墙新规则配置
执行命令:- # vi /etc/sysconfig/iptables
复制代码 在文件末尾添加下列代码
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 27010 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 27013 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 27015 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 26900 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
然后保存退出
重启防火墙,使新规则生效- #service iptables restart
复制代码 系统会提示...ok
到此,这台cs1.6服务器的防火墙配置完成了,以后可以放心的让它在互联网上运行了。
--------------------------------------------------------------------
linux系统架设cs1.6服务器图文教程(兼容47/48协议的non-steam客户端登录)
第五部分(续)
关于linux下的hlds4617服务器性能(fps)的调整,使hlds服务器端达到1000fps。
若想使服务器端的fps达到1000,这在linux系统下是十分容易做到的,其关键之处在于两个地方:
1。 是在启动命令中必须有-pingboost 3参数(参照第一部分的启动参数);
2。 是需要在游戏中用管理员身份(不是amxx中的op)执行sys_ticrate命令;
3。如果跳ping,控制方法是提高hlds_run的优先级。
注意:此处讨论的是hlds服务器端的fps调整,服务器端的fps越高,玩家客户端(参数与服务器匹配)就越流畅。
服务器fps并不是越高越好(根据服务器性能),而是“高且稳定为最好”。
影响服务器端fps的参数是sys_ticrate(默认值60)的值,我们需要结合rcon stats命令,来设置一个最佳的sys_ticrate的值,具体方法是:
1。运行cs客户端,进入我们的服务器
2。按键盘左上角的“`”键调出客户端控制台(rcon),rcon_password(服务器管理口令)使自己变为管理员身份(如图)
(注:管理口令在服务器端的server.cfg设置,如果没有设置,需在server.cfg中添加下面一行:
rcon_password "12345678" //管理口令就是12345678,你可以更改这个口令。
3。使用rcon stats 命令,查看当前服务器的fps值,如图:
当前服务器fps值是:
截图显示,当前服务器的cpu使用率不到0.01%(仅linux下),fps值为333.56,你希望你的服务器fps更高些,那么进行下一步。
4。例如想把hlds服务器端fps调证到1000(前提是你的服务器性能要达到这个要求),可以使用命令:rcon sys_ticrate 3000 (注:参数要增加到预设值的2倍以上)
再次使用rcon stats命令查看经调整后的fps值:如图:
截图显示,我们的cs1.6服务器已达到1000fps,由于fps大幅提升,因此我们也看到cpu使用率有所增加,但也只有2.5%, 到此,传说中的1000fps的cs1.6服务器就这样实现了。
实际运行中你可能会遇到服务器端fps不稳的情况,间或有跌到800fps甚至500fps,对于这种情况,网友weyoung给出一个思路,你可以参照他提供的办法:
------------------------------------------------------------------------------
如果出现跳PING现象,改变程序HLDS的优先级就可以了!
//显示当前活动的进程,命令:
截图显示,hlds_run的进程号PID=3305,优先级为10 ,cpu使用率:3.0%,内存占用率:8.3%。
你也可以使用ps -e命令查看所有进程(包括不活动的)
若要将它优先级提高,执行下面命令:然后再进程查看命令:
截图显示,hlds_run进程优先级由+10改为-10,以此方法来提高hlds的优先级,使我们的cs1.6服务器fps高且稳定(注:linux的进程优先级范围是-20,+19,数字越小,优先级越高)。
注意:图片显示的进程修改后的优先级是错的,应以教程文字为准。
-------------------------------------------------------------- |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注个册吧
×
|