Debian10搭建CS1.6服務器
因為室友前段時間搭了個CSGO服務器,感覺挺有意思。自己手頭上還有一臺吃灰中的騰訊云輕量,突發(fā)奇想要不搭個CS1.6玩玩,反正吃灰也是吃灰。
我是參考了Debian10搭建CS1.6服務器-荒島 (lala.im)?這篇文章來搭建的,只能算是自己的記錄與遇到問題的補充。
準備步驟
首先更新軟件源
apt -y update
添加用戶、設置用戶密碼以及切換到用戶
useradd -m -s /bin/bash steam
#-m 自動創(chuàng)建用戶目錄
#-s 指定用戶shell解釋器,這里設為bash
passwd steam
adduser steam sudo
su - steam
#不要嘗試省略-,此符號代表將環(huán)境變量也一同切換
第一個問題:steam is not in the sudoers file. This incident will be reported
很奇怪,我按照原文中的方法添加了steam用戶到sudo中,但似乎并沒有生效,只能手動編輯sudoers文件
vi /etc/sudooers
#添加下面這行到文件中
steam ALL=(ALL:ALL) ALL
由于這是個只讀文件,請輸入wq!
以保存并退出文件,保存完后reboot
一下即可。
然后64位系統(tǒng)添加多架構(gòu)支持
dpkg --add-architecture i386
安裝steamcmd
apt update
apt -y install libsdl2-2.0-0:i386
apt -y install steamcmd
如果安裝libsdl2-2.0-0:i386
軟件包時提示Couldn't find any package by glob 'libsdl2-2.0-0'
,請檢查你有沒有添加多架構(gòu)支持并更新軟件包列表。
安裝steamcmd過程中會要讓你同意使用協(xié)議,請按Tab
再按回車鍵選擇OK
,再選擇I AGREE
即可完成安裝,大概界面像下圖
安裝步驟
添加軟連接并啟動steamcmd
ln -s /usr/games/steamcmd steamcmd
steamcmd
登錄匿名用戶(用于下載游戲服務端文件)
login anonymous
指定目錄
force_install_dir ./cs16
下載服務端文件
app_set_config 90 mod cstrike
app_update 90 validate
編輯配置文件,設置OP(管理員)密碼,其中your_password
替換為自己的密碼
vi /home/steam/.steam/steamcmd/cs16/cstrike/server.cfg
#添加以下內(nèi)容
rcon_password "your_password"
有可能會找不到目錄,如果這樣請切換到steam用戶后重新進入steamcmd下載游戲。我也不知道為啥反正root下下載的文件不知道跑哪去了。。。
設置systemctl守護
vi /lib/systemd/system/csserver.service
寫入配置
[Unit]
Description=cs 1.6 server
[Service]
Type=simple
User=steam
Group=steam
WorkingDirectory=/home/steam/.steam/steamcmd/cs16
ExecStart=/usr/bin/bash hlds_run -game cstrike +port 27015 +map de_dust2 +maxplayers 16
Restart=always
[Install]
WantedBy=multi-user.target
啟動服務器&設置開機啟動
systemctl start csserver
systemctl enable csserver
原作者說有可能會遇到游戲服務端文件不全導致啟動不了的BUG,但我沒碰到,很順利的就啟動成功了。但這里還是寫一下他的解決辦法
由于steamcmd的bug,有時候你的服務端文件可能下載不完整導致啟動不了,一般情況下是缺少一個steamclient.so,解決辦法如下:
mkdir -p /home/steam/.steam/sdk32
ln -s /home/steam/.steam/steamcmd/linux32/steamclient.so /home/steam/.steam/sdk32
ln -s /home/steam/.steam/steamcmd/linux32/steamclient.so /home/steam/.steam/steamcmd/cs16
破解服務端正版驗證
安裝metamod-r插件
mkdir -p /home/steam/.steam/steamcmd/cs16/cstrike/addons/metamod/dlls
wget https://github.com/theAsmodai/metamod-r/releases/download/1.3.128/metamod_1.3.0.128.zip
unzip metamod_1.3.0.128.zip -d metamod-1.3.0.128
cd metamod-1.3.0.128/addons/metamod
cp metamod_i386.so /home/steam/.steam/steamcmd/cs16/cstrike/addons/metamod/dlls
編輯liblist.gam文件
nano /home/steam/.steam/steamcmd/cs16/cstrike/liblist.gam
修改以下內(nèi)容
gamedll_linux "addons/metamod/dlls/metamod_i386.so"
至此 metamod-r 插件安裝完成
安裝Rehlds插件
下載 Rehlds 并解壓,最終替換原始服務端的engine_i486.so
文件即可完成安裝
wget https://github.com/dreamstalker/rehlds/releases/download/v3.10.0.761/rehlds-bin-3.10.0.761.zip
unzip rehlds-bin-3.10.0.761.zip -d rehlds-bin-3.10.0.761
cd rehlds-bin-3.10.0.761/bin/linux32
cp -f engine_i486.so /home/steam/.steam/steamcmd/cs16/engine_i486.so
安裝reunion插件
下載文件包,解壓后進入目錄
wget https://lala.im/wp-content/uploads/2020/09/reunion_0.1.92.zip
unzip reunion_0.1.92.zip -d reunion_0.1.92
cd reunion_0.1.92/
復制reunion.cfg到cs16目錄:
cp reunion.cfg /home/steam/.steam/steamcmd/cs16
創(chuàng)建reunion目錄,然后把reunion_mm_i386.so復制過去:
mkdir -p /home/steam/.steam/steamcmd/cs16/cstrike/addons/reunion
cp bin/Linux/reunion_mm_i386.so /home/steam/.steam/steamcmd/cs16/cstrike/addons/reunion
編輯metamod的插件配置文件:
vi /home/steam/.steam/steamcmd/cs16/cstrike/addons/metamod/plugins.ini
我看原文的作者使用nano編輯器打開的plugins.ini,但我半天也沒見著有么個文件,Google了半天發(fā)現(xiàn)是要自己創(chuàng)建,淦!
完成
重啟cs服務器
systemctl restart csserver
進入CS1.6客戶端,按~喚出控制臺,輸入connect IP地址
后回車即可鏈接服務器。
忘記補充了,騰訊云輕量的防火墻在重置完系統(tǒng)鏡像后似乎會重置規(guī)則,所以需要添加一下放行規(guī)則
放行防火墻
iptables -I INPUT -p udp --dport 27015 -j ACCEPT
iptables -I INPUT -p tcp --dport 27015 -j ACCEPT
#這里是放行了27015端口的通信
參考內(nèi)容
Debian10搭建CS1.6服務器-荒島 (lala.im)
#創(chuàng)作 表し方 –?彩莉わらび的插畫 – pixiv
因為嗶哩嗶哩的專欄投稿編輯器屬實太爛,有可能一部分內(nèi)容看不到,可以到我博客去看
Debian10搭建CS1.6服務器-Rain's Blog (im.ci)