本文主要是介绍Centos7开地狱已满服,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言
码农一枚,闲暇之余尝试自己搭下服务器玩玩。工作当中基本上都是以linux服务器为主,所以该教程是基于linux系统来的,而且鉴于网上基于Centos7的相关完整教程偏少,固自己结合官网教程和网上相关资料尝试第一次搭建。如有不对的地方,欢迎各位指出。
PS:插件安装教程已出,可参考另一篇文章Centos7开地狱已满服之插件安装
一、准备工作
-
云服务器一台(我这里用的是腾讯云,配置一般,2核4G,3M带宽,资金充裕的建议上阿里云,各位大佬懂的)。开服就得下点本钱呀,心都在滴血。。。
-
云服务器控制台创建好对应的安全组,并开放
27015
端口,TCP和UDP两个(官方默认)。这里以腾讯云为例:
这里也贴出steam官方提到所涉及到的端口
-
linux版的Steam 命令行版客户端,官方教程和下载地址都在这。此处贴出我已经下载好的linux版压缩包:https://pan.baidu.com/s/1mYy_IIA-nprh0ED7Yp-bTA,提取码:
b639
二、SteamCMD 的安装
这里比较多的命令都是参照官方的,主要以手动安装为例
- 远程登录到服务器(我这里是以普通用户来登录,为了安全考虑,我是关闭了root用户远程登录)
- 切换到root用户(当然如果是以root用户来登录,该步骤可忽略)
- 安装所需要的依赖项
yum install glibc libstdc++
yum install glibc.i686 libstdc++.i686
- 安装screen,主要方便开启一个活动窗口
yum install screen -y
- 创建steam用户
useradd -m steam
- 切换到steam用户
su steam
- 进入主文件夹
cd
- 为 SteamCMD 创建目录并切换至该目录
mkdir Steam && cd Steam
- 下载或上传linux版的steamcmd客户端并解压(可通过官方提供的地址下载)
- 官方站点
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
- 国内站点
curl -sqL "https://media.st.dl.bscstorage.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
三、NMRIH服务端下载
- 运行screen命令,创建一个活动窗口,防止中途游戏下载过程因为网络问题中断
开启一个叫steam的活动窗口
screen -S steam
ctrl+A+D退出
screen -ls查看当前有哪些活动窗口
screen -x pid/窗口名称 进入窗口
- 进入解压后的目录下,运行 SteamCMD
./steamcmd.sh
- 登录 SteamCMD,这里可以匿名登录,也可以输入自己的steam帐号密码登录(官方建议创建一个服务端专用的 Steam 帐户)。如果是帐号密码登录第一次登录,steam会向你的邮箱发送验证码,到时输入验证码即可。
匿名登录
login anonymous帐号密码登录
login <用户名>
下一步会要求输入你的密码
- 为NMRIH设置安装目录(我这里是安装在
/mnt/steamapp
目录,可以根据自己实际情况选择安装目录)
force_install_dir /mnt/steamapp
- 应用下载,317670是NMRIH。应用id可从http://steamdb.sinaapp.com/获取到
app_update 317670 validate
这时ctrl+A+D退出窗口,让它自己慢慢下载即可
- 完成之后输入
quit
退出即可(screen窗口可以不必杀掉,后面保持服务器后台运行时需要用)
四、运行
- 进入安装好的游戏目录下,会有一个
srcds_linux
的脚本,该脚本就是用来开服用的
cd /mnt/steamapp
- 开服前,建议做好以下操作(这里的目录是以我自己这里的为例)
将/home/steam/Steam/linux32目录下的steamclient.so拷贝至/home/steam/.steam/sdk32目录下(其实这里可以参考官方的,直接建立一个软连接 ln -s steamcmd/linux32/steamclient.so ~/.steam/sdk32/steamclient.so,but我是直接拷贝过去的。。。)。这里有可能/home/steam/.steam下的sdk32文件夹不存在,自己创建一个即可。
cp /home/steam/Steam/linux32/steamclient.so /home/steam/.steam/sdk32
进入游戏的配置文件夹下,创建server.cfg这么一个文件,这是服务器的相关配置
cd /mnt/steamapp/nmrih/cfg
touch server.cfg && vim server.cfg
关于server.cfg配置项,我不知道从哪里去找,有知道的大佬麻烦解答下,或者有配置实例的也可私信我,万分感谢。以下配置我是从台湾某个论坛搬过来的。。。
// ********************************************************************************
// *
// No More Room in Hell - 社群開發 Server.cfg *
// 版本 1.0 - 九月 13, 2012 *
// 最新版本: http://avidblur.com/nmrih/server.cfg *
// *
// ********************************************************************************// ............................ 基本伺服器設定 ............................. //// 你想要在NMRiH的伺服器列表上顯示的伺服器名稱
hostname "No More Room in Hell dedicated server"// 設定主要伺服器管理員的聯絡信箱
sv_contact ""// 讓你的伺服器變成私人的,只有知道密碼的玩家才能遊玩
// 留空白 = 公開
sv_password ""// 遊戲正式開始前的練習時間 預設 45
sv_practice_transtime 45// 遊戲正式開始前的冷卻時間 預設 5
sv_preround_freezetime 5// 伺服器顯示在哪個世界區域
// -1 = 世界
// 0 = 美東
// 1 = 美西
// 2 = 南美
// 3 = 歐洲
// 4 = 亞洲
// 5 = 澳洲
// 6 = 中東
// 7 = 非洲
sv_region 4// 設定伺服器區域網路或是網際網路?
// 0 = 網際網路
// 1 = 區域網路
sv_lan 0// 禁用自動踢掉 = 0 ,玩家閒置過久時自動踢掉
sv_idle_autokick_enabled 1
sv_idle_autokick_time 300.0// 透過麥克風來語音通信
sv_voiceenable 1// 玩家能夠看見或聽見其他玩家打字、說話,沒有隊伍限制 0=關閉 1=開啟
sv_alltalk 0// 玩家嘗試重新連線多久後連線逾時
sv_timeout 65// 伺服器允許暫停
sv_pausable 0// 遠端密碼 (遠端遙控),遠端密碼處可以留空白,不過還是建議您設定一個安全密碼.
// 需要安全密碼? 來看看 https://www.grc.com/passwords.htm 自動產生一個密碼
rcon_password ""// 允許玩家傷害其他隊友
mp_friendlyfire 0// 腳步聲
mp_footsteps 1// 手電筒
mp_flashlight 0// 限制玩家死亡的觀戰模式
mp_forcecamera 1// 一張地圖的總遊戲時間(分鐘),時間過後自動換地圖
mp_timelimit 30// 一張地圖的回合數
mp_maxrounds 2// 副檔名為 .txt 的檔案包含了伺服器的地圖循環
// mapcycle.txt - 全部地圖
// mapcycle_objective.txt - Objective 地圖限定
// mapcycle_survival.txt - Survival 地圖限定
mapcyclefile "mapcycle.txt"// 在伺服器列表上顯示標籤讓玩家能夠更容易找到想要的伺服器
// "Official" tags:
// custom - 如果你的伺服器是自定義設定/配置
// objective - 如果你的伺服器只限定 Objective 地圖
// survival - 如果你的伺服器只限定 Survival 地圖
// 例如: sv_tags "example1, example2, example3"
sv_tags "vanilla"// ............................ 下載設定 .................................. //// 允許玩家上傳噴漆等等(NMRiH 預設噴漆為禁用,所以設定為 0 是最佳選項)
sv_allowupload 1// 允許玩家下載檔案
sv_allowdownload 1// 允許下載地圖/紋理等等檔案大小上限(以MB計算)
net_maxfilesize 64// 允許從網站上更快速的下載地圖/紋理等等!
// 注意: 如果留空白的話(sv_downloadurl "")客戶端連接將會從你的伺服器下載自定義地圖等等.
//
// 例如: 1 - 伺服器有一張地圖叫 "nmo_example.bsp" 在 maps 資料夾裡
// 2 - 網站伺服器也有一個叫 "nmo_example.bsp" 的檔案在 "http://www.yourwebsite.com/nmrih/maps/nmo_example.bsp"
// 3 - 所以, sv_downloadurl 應該要設定成 "http://www.yourwebsite.com/nmrih/"
//
sv_downloadurl ""// ............................ 性能設定 .............................. //// 設定伺服器幀率上限(設定伺服器幀率能更一致的管理)
fps_max 60// 允許伺服器最小頻寬速率, 0 = 無限制
sv_minrate 3500// 允許伺服器最大頻寬速率, 0 = 無限制
sv_maxrate 0net_splitpacket_maxrate 80000
sv_parallel_packentities 1
sv_parallel_sendsnapshot 0// 優先將排隊中的封包發送出去,而不是一個一個發送.
net_queued_packet_thread 1// 最多能等待幾 # 秒將下一個封包發送出去(0 == 沒有限制).
net_maxcleartime 4.0// 伺服器允許每秒最低更新速率
sv_minupdaterate 10// 伺服器允許每秒最高更新速率
sv_maxupdaterate 66// 伺服器允許每秒最小命令速率
sv_mincmdrate 10// 伺服器允許每秒最大命令速率
sv_maxcmdrate 66sv_client_min_interp_ratio 1sv_client_max_interp_ratio 5sv_client_cmdrate_difference 20// 可用來強制設定 cl_predict 值給連線的玩家 (當他們連接的時候).
// -1 = 讓玩家隨意設定 cl_predict
// 0 = 強制設定 cl_predict 為 0
// 1 = 強制設定 cl_predict 為 1
sv_client_predict -1// ********************************************************************************
// *
// 自定義 NMRiH 遊戲設定 *
// *
// 重要: 如果你的伺服器是使用自定義遊戲設定在 sv_ tags 上添加 "custom" 標籤!
// *
// 刪除前面的斜線 (這個"// ") 來自定義遊戲設定 *
// 在你的 /cfg/ 資料夾下編輯或新增 "nmrih_custom.cfg" 檔案 *
// *
// ********************************************************************************// exec nmrih_custom.cfg// .............................. 其他設定 .............................. //// 允許玩家使用 "暫停" 指令? (最好禁用以避免腳本氾濫)
sv_allow_wait_command 1// 強制伺服器預先載入地圖和一些檔案
sv_forcepreload 0// 啟用日誌? (off/on)
log off// ............................... Sourcemod 設定 .............................. //// ********************************************************************************
// *
// 進階伺服器設定(最好不要更改!) *
// *
// ********************************************************************************sv_master_legacy_mode 0
exec banned_user.cfg
exec banned_ip.cfg
writeid
writeip
heartbeat
- 大功告成,开服
./srcds_run -game nmrih +map nmo_broadway -maxplayers 8
结语
由于是第一次搭建服务器,很多东西还没来得去研究,比如如何汉化,如何加入第三方插件。如有哪位大佬有经验可供分享,是在是万分感谢!!!
这篇关于Centos7开地狱已满服的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!