前言
码农一枚,闲暇之余尝试自己搭下服务器玩玩。工作当中基本上都是以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
- 1
- 2
- 安装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 -
- 1
- 国内站点
curl -sqL "https://media.st.dl.bscstorage.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
- 1
三、NMRIH服务端下载
- 运行screen命令,创建一个活动窗口,防止中途游戏下载过程因为网络问题中断
开启一个叫steam的活动窗口
screen -S steam
ctrl+A+D退出
screen -ls查看当前有哪些活动窗口
screen -x pid/窗口名称 进入窗口
- 1
- 2
- 3
- 4
- 5
- 进入解压后的目录下,运行 SteamCMD
./steamcmd.sh
- 1
- 登录 SteamCMD,这里可以匿名登录,也可以输入自己的steam帐号密码登录(官方建议创建一个服务端专用的 Steam 帐户)。如果是帐号密码登录第一次登录,steam会向你的邮箱发送验证码,到时输入验证码即可。
匿名登录
login anonymous
帐号密码登录
login <用户名>
下一步会要求输入你的密码
- 1
- 2
- 3
- 4
- 5
- 6
- 为NMRIH设置安装目录(我这里是安装在
/mnt/steamapp
目录,可以根据自己实际情况选择安装目录)
force_install_dir /mnt/steamapp
- 1
- 应用下载,317670是NMRIH。应用id可从http://steamdb.sinaapp.com/获取到
app_update 317670 validate
这时ctrl+A+D退出窗口,让它自己慢慢下载即可
- 1
- 2
- 完成之后输入
quit
退出即可(screen窗口可以不必杀掉,后面保持服务器后台运行时需要用)
四、运行
- 进入安装好的游戏目录下,会有一个
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
- 1
- 2
进入游戏的配置文件夹下,创建server.cfg这么一个文件,这是服务器的相关配置
cd /mnt/steamapp/nmrih/cfg
touch server.cfg && vim server.cfg
- 1
- 2
- 3
关于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
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 大功告成,开服
./srcds_run -game nmrih +map nmo_broadway -maxplayers 8
- 1
结语
由于是第一次搭建服务器,很多东西还没来得去研究,比如如何汉化,如何加入第三方插件。如有哪位大佬有经验可供分享,是在是万分感谢!!!
评论记录:
回复评论: