Centos7开地狱已满服

前言

码农一枚,闲暇之余尝试自己搭下服务器玩玩。工作当中基本上都是以linux服务器为主,所以该教程是基于linux系统来的,而且鉴于网上基于Centos7的相关完整教程偏少,固自己结合官网教程和网上相关资料尝试第一次搭建。如有不对的地方,欢迎各位指出。
PS:插件安装教程已出,可参考另一篇文章Centos7开地狱已满服之插件安装


一、准备工作

  1. 云服务器一台(我这里用的是腾讯云,配置一般,2核4G,3M带宽,资金充裕的建议上阿里云,各位大佬懂的)。开服就得下点本钱呀,心都在滴血。。。

  2. 云服务器控制台创建好对应的安全组,并开放27015端口,TCP和UDP两个(官方默认)。这里以腾讯云为例:在这里插入图片描述
    这里也贴出steam官方提到所涉及到的端口
    在这里插入图片描述

  3. linux版的Steam 命令行版客户端,官方教程和下载地址都在这。此处贴出我已经下载好的linux版压缩包:https://pan.baidu.com/s/1mYy_IIA-nprh0ED7Yp-bTA,提取码:b639

二、SteamCMD 的安装

这里比较多的命令都是参照官方的,主要以手动安装为例

  1. 远程登录到服务器(我这里是以普通用户来登录,为了安全考虑,我是关闭了root用户远程登录)
  2. 切换到root用户(当然如果是以root用户来登录,该步骤可忽略)
  3. 安装所需要的依赖项
yum install glibc libstdc++
yum install glibc.i686 libstdc++.i686
  1. 安装screen,主要方便开启一个活动窗口
yum install screen -y
  1. 创建steam用户
useradd -m steam
  1. 切换到steam用户
su steam
  1. 进入主文件夹
cd
  1. 为 SteamCMD 创建目录并切换至该目录
mkdir Steam && cd Steam
  1. 下载或上传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服务端下载

  1. 运行screen命令,创建一个活动窗口,防止中途游戏下载过程因为网络问题中断
开启一个叫steam的活动窗口
screen -S steam
ctrl+A+D退出
screen -ls查看当前有哪些活动窗口
screen -x pid/窗口名称 进入窗口
  1. 进入解压后的目录下,运行 SteamCMD
 ./steamcmd.sh
  1. 登录 SteamCMD,这里可以匿名登录,也可以输入自己的steam帐号密码登录(官方建议创建一个服务端专用的 Steam 帐户)。如果是帐号密码登录第一次登录,steam会向你的邮箱发送验证码,到时输入验证码即可。
匿名登录
login anonymous

帐号密码登录
login <用户名>
下一步会要求输入你的密码
  1. 为NMRIH设置安装目录(我这里是安装在/mnt/steamapp目录,可以根据自己实际情况选择安装目录)
force_install_dir /mnt/steamapp
  1. 应用下载,317670是NMRIH。应用id可从http://steamdb.sinaapp.com/获取到
    在这里插入图片描述
app_update 317670 validate
这时ctrl+A+D退出窗口,让它自己慢慢下载即可
  1. 完成之后输入quit退出即可(screen窗口可以不必杀掉,后面保持服务器后台运行时需要用)

四、运行

  1. 进入安装好的游戏目录下,会有一个srcds_linux的脚本,该脚本就是用来开服用的
cd /mnt/steamapp
  1. 开服前,建议做好以下操作(这里的目录是以我自己这里的为例)
将/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 0

net_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 66

sv_client_min_interp_ratio 1

sv_client_max_interp_ratio 5

sv_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
  1. 大功告成,开服
./srcds_run -game nmrih +map nmo_broadway -maxplayers 8

结语

由于是第一次搭建服务器,很多东西还没来得去研究,比如如何汉化,如何加入第三方插件。如有哪位大佬有经验可供分享,是在是万分感谢!!!

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值