七日殺steam游戲雲服務器架設


​ 通過騰訊雲、阿里雲這種雲服務器假設游戲服務器很方便,可以在主機不在線的時候讓其他小伙伴依舊可以游玩。我在騰訊雲購買了2核4G輕量應用服務器1年。

1.准備工作

1.1設置swap

​ 首先登錄雲服務器終端。設置swap操作需要在root下進行,swap類似虛擬內存,防止因游戲進程內存消耗過大導致進程中止。

# 獲取root權限
$ sudo su 
# 檢查是否配置過swap,若無返回結果,則未配置過
$ swapon -s
# 檢查可用的存儲空間
$ df -h
# 如果未設置swap,則一般設置為物理內存的1或2倍,此處我物理內存4G,設置swap也為4g
$ fallocate -l 4G /swapfile
$ ls -lh /swapfile
$ chmod 600 /swapfile
$ ls -lh /swapfile #此時權限應為rw-------
# 啟用swap文件
$ mkswap /swapfile
$ swapon /swapfile
# 確認swap是否已經生效
$ swapon -s
$ free -m

​ 前述設置重啟失效,修改fstab使其永久生效

$ sudo vi /etc/fstab

​ 在fstab末尾加入(vi基本操作:1,按i進入編輯模式,正常編輯內容;2.按Esc退出編輯模式);3.輸入:wq保存並退出。)

/swapfile swap swap sw 0 0

​ 可選:swappiness參數決定系統將數據從內存交換到swap的頻率,數值越接近0,系統越傾向於不進行swap,最大限度使用物理內存。數值越接近100,越傾向於使用swap,而過多的使用swap可能導致服務器運行效率緩慢。ubuntu系統的默認推薦值是60,這里我為了保證服務器運行效率,建議設置為10。(我就沒改)

# 查看當前的swappiness
$ cat /proc/sys/vm/swappiness
# 修改swappiness為10
$ sudo sysctl vm.swappiness=10

​ 編輯sysctl.conf,使設置永久生效

$ sudo vi /etc/sysctl.conf

在末尾加入

vm.swappiness = 10

:wq退出。

1.2安裝screen

​ 安裝screen,后面開服時會用到。使用screen可以讓服務器進程在后台運行,而不會因為遠程連接的斷開而停止進程。我是Ubuntu 20.04 LTS

$ sudo apt install screen

1.3安裝SteamCmd運行環境

​ 這部分按照steamcmd官網的說明,為了避免安全問題,不建議使用root用戶進行以下操作,所以優先在root下建立新用戶:

# steam就是用戶名。也可以不叫steam,叫別的名字
$ useradd -m steam
$ cd /home/steam
# 安裝steamcmd
$ sudo add-apt-repository multiverse
$ sudo dpkg --add-architecture i386
$ sudo apt update
$ sudo apt install lib32gcc1 steamcmd 
$ ln -s /usr/games/steamcmd steamcmd

2.安裝七日殺服務器端

2.1下載安裝steamcmd

​ 上面裝一次了,但是在另一個教程里,我看這樣做比較方便,就又按這個方式搞了一下。首先在剛開始建立好的steam用戶(不要使用root)

$ cd ~
$ wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz 
$ tar -zxf steamcmd_linux.tar.gz

​ 運行steamcmd

$ cd Steam
#如果有permission denied的問題就先加權限
$ chmod +x steamcmd.sh
$ ./steamcmd.sh 

​ 首次運行steamcmd會下載更新,等終端出現steam>時,就可以操作了。

2.2登錄steam賬號,並下載服務端

​ 首先登錄steam賬號,或者匿名登陸login anonymous,很多游戲不需要賬戶購買也可以開設服務器,具體可以在這里查看,同時也會給出游戲的編號

steam> login <username> <password>
# 如果設置了安全令牌,會讓你輸入一次安全令牌
# 設置服務端文件目錄
force_install_dir ~/7_Days_to_Die_server
# 下載服務端,284420是七日殺的編號
app_update 294420 validate

​ 過一段時間,下載完成,就可以通過quit命令退出steamcmd

2.3 設置服務端參數

​ 進入剛才設定的安裝服務器的目錄

$ cd ~/7_Days_to_Die_server
# 編輯服務器參數
$ vi serverconfig.xml

​ 各個參數的意義可以上網查,這個網站是七日殺的官方,需要自己翻譯。

2.4 設置防火牆

​ 這個部分應該是在騰訊雲的后台設置,放行以下端口,才能讓服務器正常運轉

端口 協議 說明
8080 TCP Web控制台
8081 TCP Telnet端口(建議不要放行)
8082 TCP 如果安裝了Alloc的mods,這個端口可以展示地圖
26900/26902 UDP 客戶端通訊

Telnet建議不要放行,直接在服務器中使用telnet localhost 8081即可登錄telnet。如果一定要用遠程telnet連接,請務必在serverconfig.xml中設置好TelnetPassword后,再放行端口。該行為有很大的風險。

2.5啟動服務器

首先創建一個screen,可以讓服務器在后台運行,防止因為ssh斷開等原因中止進程

$ screen -S 7Days
$ /home/steam/7_Days_to_Die_server/startserver.sh -configfile=serverconfig.xml

使用Ctrl+A+D組合鍵使屏幕后台運行

當要回到screen頁面時,使用

screen -ls	# 查看screen,記下7DaysServer的編號
screen -r <7DaysServer的編號>

2.6補充

2.6.1幾個重要路徑和文件

路徑

# 路徑取決於你的設置的安裝位置,如果完全按照本文操作,那么路徑如下
~/7DaysToDieServer	# 七日殺服務端主目錄
~/7DaysToDieServer/Data/Worlds	# 七日殺服務端地圖目錄
~/.local/share/7DaysToDie/Saves	# 七日殺服務端存檔目錄
~/7DaysToDieServer/7DaysToDieServer_Data	# 七日殺服務器日志輸出目錄
~/7DaysToDieServer/Mods	# Mods目錄,需要自己創建

文件

~/.local/share/7DaysToDie/Saves/serveradmin.xml	# 服務器配置文件
~/7DaysToDieServer/serverconfig.xml	# 管理員配置文件

2.6.2添加mod

想添加mod的同學看這里。

cd ~/7DaysToDieServer	# cd至七日殺服務端主目錄
mkdir Mods	# 創建mods文件夾

服務器的mod和自己平時玩的mod基本通用,跟在自己游戲中裝mod一樣,將mod文件放入Mods文件夾中即可。

上傳mods到服務器上的方法有很多,比如Xshell中可以使用lrzsz上傳。

# 以下操作要在root用戶中進行

# Ubuntu/Debian
sudo apt-get install lrzsz

# RedHat/CentOS
yum  install lrzsz

安裝zip/unzip 用於解壓mod壓縮包

# Ubuntu/Debian
apt-get install zip

# RedHat/CentOS
yum install zip unzip

上傳mod文件,並解壓。

# 使用su - steam,回到steam用戶中繼續操作
cd ~/7DaysToDieServer
rz #直接將mod的壓縮包上傳文件至linux
unzip <壓縮包名>	# 一般mod壓縮包內自帶Mods文件夾,直接解壓即可
# 如果解壓后路徑不對,可以使用mv指令移動至Mods文件下

2.6.3管理服務器

在服務器中安裝telnet。(也可以用Xshell的遠程telnet連接,這里不做贅述)

# RedHat/CentOS
rpm -qa telnet	# 檢測telnet的rpm包是否安裝 
yum install telnet	# 若未安裝,則安裝telnet

# Ubuntu/Debian
netstat -a | grep telnet	# 檢測telnet的rpm包是否安裝 
sudo apt-get install xinetd telnetd	# 若未安裝,則安裝telnet
telnet localhost 8081	#登錄服務器telnet

管理員指令

admin add <玩家名> <權限級別>	# 給予玩家管理權限(最高級別為0)
admin remove <玩家名>	# 移除玩家的管理權限
admin update <玩家名> <權限等級>	#提高管理權限級別
#建議先在telnet用上述指令給自己管理權限
#然后就可以直接在游戲中,按F1使用下面的指令了
dm	#打開或關閉debug模式
ban <玩家名> <時間>	# 禁止玩家登陸服務器一段時間(minutes, hours, days, weeks, months, years)
kill <id/name>	# 殺死指定玩家
listplayers lp	# 獲取在線玩家信息
give <id/name> <物品> <數量>	# 給玩家刷某樣東西
shutdown	# 關閉服務器
say <信息>	# 以server的名義廣播一條信息


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM