系統城裝機大師 - 固鎮縣祥瑞電腦科技銷售部宣傳站!

當前位置:首頁 > server > anz > 詳細頁面

linux云服務搭建七日殺服務器的詳細流程

時間:2022-09-11來源:www.farandoo.com作者:電腦系統城

準備工作

首先你需要擁有一個云服務器,內地的主流云服務平臺有阿里云、騰訊云等,如果你在海外可以選擇AWS、google云服務等。七日殺服務端的建議最低配置是2core 4G,內存8G及以上最佳??紤]到目前國內云服務的價格比較,在校大學生可以考慮使用學生優惠的1core 2G套餐,配置swap后勉強夠用。

云服務器的主機名一般是一串很長的亂碼,例如顯示在用戶終端上很影響使用。比如我在修改前是:

1 [root@bS2&Lb%n21fAS7D ~]$

為了方便以后使用,建議大家先修改它。

1
2
3
4
5
6
# 這些操作要在root中進行。
hostnamectl set-hostname centos7 #可以改成你喜歡的主機名,別太長
hostname    # 查看下
centos7
vim /etc/hosts  # 編輯下hosts文件, 給127.0.0.1添加hostname
cat /etc/hosts  # 檢查

修改之后像這樣:

1 [root@centos7 ~]$

舒服多了!

1.設置swap

這些操作都在root中進行。

linux系統的swap空間類似windows系統的虛擬內存。如果你的云服務器內存小于4G,比如只有2G內存,那你就必須設置一個swap空間,否則啟動服務器時會因為內存不足導致進程killed。

使用swapon命令可以檢查系統是否已經配置過swap,云服務器一般都沒有提前設置swap。

1
2
swapon -s # 如果該命令沒有返回出結果,則代表該系統尚未配置過swap。
df -h   # 檢查可用的存儲空間

如果沒有,按如下步驟創建Swap文件。一般建議swap大小設置為自己物理內存相同或兩倍。我這里設置了4G。

1
2
3
4
5
# 這些操作要在root中進行。
sudo fallocate -l 4G /swapfile  # 請根據自己情況修改swap大小
ls -lh /swapfile
sudo chmod 600 /swapfile    # 更改swap文件的權限,否則會有很大的安全隱患
ls -lh /swapfile    # 然后檢查是否設置完成

啟用swap文件

1
2
3
4
5
sudo mkswap /swapfile
sudo swapon /swapfile
# 確認一下設置是否已經生效
swapon -s
free -m

前面設置的swap會在重啟后失效,通過修改fstab讓配置永久生效。

1 sudo vim /etc/fstab

按 i 進入輸入模式,在文件末尾加入下面這行內容。

1 /swapfile   swap    swap    sw  0   0

按esc退出輸入模式,輸入 :wq 保存退出。(對vim操作不熟悉的,可以搜索“vim指令”進一步學習)

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

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

編輯sysctl配置文件,使其永久生效

1 sudo vim /etc/sysctl.conf

按 i 進入輸入模式,將以下內容粘貼到文件末尾:

1 vm.swappiness = 10

按esc退出輸入模式,輸入 :wq 保存退出。

2.安裝screen

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

1
2
3
4
# RedHat/CentOS
yum install -y screen
# Ubuntu/Debian
apt install screen

3.安裝SteamCmd運行所需環境

1
2
3
4
5
6
7
# 這些操作要在root中進行,根據你的系統選擇不同指令。
# Ubuntu/Debian 64位
sudo apt -y install lib32gcc1
# RedHat/CentOS 32位
sudo yum -y install glibc libstdc++
# RedHat/CentOS 64位
sudo yum -y install glibc.i686 libstdc++.i686

4.創建一個用戶

不建議使用root系統進行后面的操作,這里我們為steam創建一個專門的用戶。

1
2
3
useradd -m steam    # 新建一個名為steam的用戶
passwd steam    # 為用戶steam設置密碼
su - steam  # 切換至新建的steam用戶。改成root,可以切換回root用戶

修改用戶終端配色。

CentOS7的終端和指令顏色一樣,大端的代碼中難以區分。修改一下用戶終端的配色,可以大大的提高整個shell頁面的可讀性,方便你更快的找到每段代碼的開頭。

修改前后如下圖所示:

輸入以下指令修改終端配色。

1
2
3
4
# 臨時修改配色
PS1="\[\e[32;1m\][\[\e[32;1m\]\u\[\e[32;1m\]@\h \[\e[34;1m\]\W\[\e[0m\]]\\$ "
# 永久修改vim配色
vim ~/.bashrc   #編輯.bashrc文件

加入這一行

1 PS1="\[\e[32;1m\][\[\e[32;1m\]\u\[\e[32;1m\]@\h \[\e[34;1m\]\W\[\e[0m\]]\\$ "

保存退出。

1 source ~/.bashrc    # 重新加載bash配置

steamCMD與七日殺服務器端

1.下載并安裝SteamCMD

確定你當前在你新建的steam用戶中,如果不是,請使用su - steam切換用戶。目前版本steamcmd必須直接解壓在 ~ 目錄下,否則會報錯。

1
2
3
4
5
6
7
8
9
# 這些操作要在剛才創建的steam用戶中進行,請不要使用root用戶!
 
#cd至~目錄
cd ~
# 下載Linux系統專用的SteamCMD
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
 
# 解壓
tar -zxf steamcmd_linux.tar.gz

運行SteamCmd

1
2
# 運行steamcmd
./steamcmd.sh

首次運行steamcmd,他會自己下載更新自己。等出現steam>時,就可以對steamcmd進行操作啦。

2.登錄steam賬號

你可以使用steam賬號登錄,或匿名登錄login anonymous。但是七日殺必須要steam登錄才可以下載服務端。

1
2
login <用戶名> <密碼>
# 如果設置了安全令牌,會讓你輸入一次安全令牌

3.下載七日殺服務端

1
2
3
4
5
6
7
force_install_dir ~/7DaysToDieServer    # 設置服務端安裝目錄
app_update 294420 validate  # 下載七日殺服務端,294420是七日殺的編號
 
# 本文由 @白火shiraka 辛苦編寫,未經授權禁止轉載
# 白火的博客主頁:www.cnblogs.com/shiraka
# 如果你在白火shiraka的博客、知乎、B站以外的地方看到這篇文章,幫忙舉報侵權,十分感謝!
# 下載會持續一段時間,請耐心等待

等到出現如圖所示的 Success! App '294420' fully installed.之后便可以退出steamcmd了。

1 quit    #退出SteamCmd

4.配置服務端

1
2
3
4
# 進入七日殺服務端根目錄
cd ~/7DaysToDieServer
# 編輯配置文件
vim serverconfig.xml

下面翻譯了部分參數。

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
<property name="ServerPort"               value="26900"/> <!-- 默認26900 -->
<property name="ServerName"               value="服務器名"/>
<property name="ServerPassword"           value="服務器登入密碼"/>
<property name="ServerMaxPlayerCount"      value="8"/> <!-- 最大玩家數 默認8 -->
<property name="ServerDescription"        value="服務器描述"/>
<property name="GameWorld"                value="Navezgane"/> <!-- 服務器世界名 默認Navezgane -->
<property name="GameName"                 value="My Game"/> <!-- 存檔名字 -->
<property name="GameDifficulty"           value="2"/> <!-- 游戲難度 默認難度是2 -->
<property name="ZombiesRun"                value="0"/> <!-- 僵尸行走,默認值0,白天走晚上跑 1為不跑 2為一直跑 -->
<property name="DayNightLength"            value="60"/> <!-- 游戲內一天在現實世界時長(單位分鐘min) -->
<property name="DayLightLength"            value="18"/> <!-- 游戲內白天的時間(單位小時h)-->
<property name="PlayerKillingMode"        value="1"/> <!-- 玩家之間能造成的傷害,0.禁止殺戮 1.只能殺死盟友 2.只能殺死陌生人 3.允許殺死所有人 -->
<property name="DropOnDeath"                value="2"/> <!-- 玩家死亡掉落,默認0.全部 1.僅腰帶 2.僅背包 3.刪除所有 -->
<property name="MaxSpawnedZombies"          value="60"/> <!-- 服務器最大僵尸生成量 -->
<property name="MaxSpawnedAnimals"          value="50"/> <!-- 服務器最大生物生成量 -->
<property name="AirDropFrequency"           value="72"/> <!-- 空投循環生成時間(單位分鐘min) -->
<property name="AirDropMarker"              value="true"/> <!-- 是否在地圖上標記空投 默認true -->
<property name="EACEnabled"                 value="false"/> <!-- #反作弊,默認true,開啟可以防止玩家作弊,同時也會使部分mod不可使用。 -->
<property name="TelnetEnabled"              value="true"/> <!-- 是否開啟Telnet -->
<property name="TelnetPort"                 value="8081"/> <!-- Telnet端口 -->
<property name="TelnetPassword"             value="mdzz"/> <!-- #Telnet密碼 -->
<!-- 以上內容由 @白火shiraka 翻譯整理,未經授權禁止轉載 -->
<!-- 白火的博客主頁:www.cnblogs.com/shiraka -->
<!-- 如果你在白火shiraka的博客、知乎、B站以外的地方看到這篇文章,幫忙舉報侵權,十分感謝! -->
<!-- 更多設置請參考配置文件中的注釋,英語不好的同學善用翻譯軟件!-->

5.配置防火墻

還需要在防火墻放行以下端口,才可讓服務器正常運轉。阿里云請在平臺的安全組頁面添加規則,其他云平臺可能有不同的安全組設置方式,大同小異。

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

Telnet建議不要放行,直接在服務器中使用telnet localhost 8081即可登錄telnet。

如果一定要用遠程telnet連接,請務必在serverconfig.xml中設置好TelnetPassword后,再放行端口。該行為有很大的風險。

6.啟動服務器

創建一個名為7DayServer的screen,可以讓服務器在后臺運行,斷開遠程連接也不終止進程。

1 screen -S 7DaysServer

啟動服務器

1 ./startserver.sh -configfile=serverconfig.xml

按住Ctrl + A +D 將screen加入后臺運行

當你需要回到這個sreen頁面時,使用如下指令。

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

補充

1.幾個重要路徑和文件

路徑

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

文件

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

2.添加mod

想添加mod的同學看這里。

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

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

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

1
2
3
4
5
6
7
# 以下操作要在root用戶中進行
 
# Ubuntu/Debian
sudo apt-get install lrzsz
 
# RedHat/CentOS
yum  install lrzsz

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

1
2
3
4
# Ubuntu/Debian
apt-get install zip
# RedHat/CentOS
yum install zip unzip

上傳mod文件,并解壓。

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

3.管理服務器

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

1
2
3
4
5
6
# 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

SHELL 復制 全屏

1 telnet localhost 8081   #登錄服務器telnet

管理員指令

1
2
3
4
5
6
7
8
9
10
11
12
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的名義廣播一條信息
分享到:

相關信息

  • 系統城分享keepalived對nginx進行高可用搭建及原理詳解

    一、Keepalived介紹 二、Keepalived的應用場景 三、Keepalived的工作原理 1 VRRP協議 2 核心組件 3 分層工作 4 工作狀態 四、Keepalived使用 1 配置介紹 2 使用keepalived對nginx進行高可用搭建 2.1 環境準備 2.2 ng...

    2022-09-11

  • 系統城分享服務器被入侵的處理過程教程圖解

    一、服務器入侵現象 二、服務器排查和處理 2.1、服務器被入侵的可能原因 2.2、排查和處理步驟 三、本次入侵需要帶來啟示的點 四、本次服務器被入侵的一些啟示...

    2022-09-11

系統教程欄目

欄目熱門教程

人氣教程排行

站長推薦

熱門系統下載

jlzzjlzz亚洲乱熟在线播放