阿里云Ubuntu搭建Steam饥荒联机版服务器

@TOC

一、安装依赖

1
sudo apt-get install libstdc++6:i386 libgcc1:i386 libcurl4-gnutls-dev:i386 lib32gcc1

二、安装SteamCMD

新建目录并进入,安装steamcmd

1
2
mkdir ~/steamcmd
cd steamcmd

安装SteamCMD

1
2
3
4
5
## 下载安装文件
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
## 解压并删除
tar -xvzf ~/steamcmd/steamcmd_linux.tar.gz
rm steamcmd_linux.tar.gz

三、安装DST服务端

启动steamcmd

1
./steamcmd.sh

使用公共账号登录steam

1
login anonymous

指定DST安装目录

1
force_install_dir ../myDSTserver

安装DST服务端

1
app_update 343050 validate

当出现Success! App '343050' fully installed.的时候表示安装成功
安装完成后退出steamcmd

1
quit

四、配置DST服务端

1. 生成其余配置文件

进入DST的安装目录的bin文件夹,运行dontstarve_dedicated_server_nullrenderer生成.klei等目录和文件

1
2
cd ~/myDSTserver/bin
./dontstarve_dedicated_server_nullrenderer

2. 目录结构

/root/.klei

1
2
3
4
5
6
7
8
9
10
11
12
13
14
.
├── Agreements
│ └── DoNotStarveTogether
│ └── agreements.ini
└── DoNotStarveTogether
├── Cluster_1
│ └── Master
└── MyDediServer
├── Caves
├── Master
├── adminlist.txt
├── cluster.ini
└── cluster_token.txt

/root/myDSTserver

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
├── bin
│ ├── dontstarve
│ ├── dontstarve.xpm
│ ├── dontstarve_dedicated_server_nullrenderer
│ ├── lib32
│ ├── scripts
│ └── steam_appid.txt
├── data
│ ├── anim
│ ├── bigportraits
│ ├── databundles
│ ├── fx
│ ├── images
│ ├── levels
│ ├── minimap
│ ├── movies
│ ├── scripts_readme.txt
│ └── sound
├── dontstarve.xpm
├── mods
│ ├── INSTALLING_MODS.txt
│ ├── MAKING_MODS.txt
│ ├── dedicated_server_mods_setup.lua
│ └── modsettings.lua
├── steamapps
│ ├── appmanifest_343050.acf
│ ├── downloading
│ ├── libraryfolders.vdf
│ ├── shadercache
│ └── temp
└── version.txt

3. 获取服务器配置文件

官网创建并下载配置文件
(MyDediServer.zip)
把服务器配置压缩包远程传输到服务器上

1
scp -r MyDediServer.zip username@192.168.0.1:/home/username/

4. 替换服务器配置文件

在服务器内把压缩包解压,替换掉默认存档

1
2
3
unzip MyDediServer.zip
rm -r ~/.klei/DoNotStarveTogether/Cluster_1
mv MyDediServer ~/.klei/DoNotStarveTogether

5. 添加管理员

在存档目录下建立adminlist.txt文件,将需要的UserID输入即可

1
2
3
cd ~/.klei/DoNotStarveTogether/MyDediServer
touch adminlist.txt
vim adminlist.txt ## 写入UserID即可

五、添加Mod

修改dedicated_server_mods_setup.lua文件可以让服务器每次启动的时候自动加载和更新mod,该文件位于~/myDSTserver/mods文件夹。向下面这样添加,数字为创意工坊中mod的编号。

1
2
3
4
ServerModSetup("345692228")
ServerModSetup("346968521")
ServerModSetup("352373173")
ServerModCollectionSetup("379114180")

六、启动脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
steamcmd_dir="$HOME/steamcmd"
install_dir="$HOME/myDSTserver"
cluster_name="MyDediServer"
dontstarve_dir="$HOME/.klei/DoNotStarveTogether"
cd "$steamcmd_dir"
cd "$install_dir/bin"
run_shared=(./dontstarve_dedicated_server_nullrenderer)
run_shared+=(-console)
run_shared+=(-cluster "$cluster_name")
run_shared+=(-monitor_parent_process $$)
run_shared+=(-shard)
"${run_shared[@]}" Caves | sed 's/^/Caves: /' &
"${run_shared[@]}" Master | sed 's/^/Master: /'

验证服务器运行

在线验证服务器运行

六、后台运行服务器

screen常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 列出当前所有screen
screen -ls

# 创建一个名为server的screen
screen -S server

# 切换到server的screen
screen -r server

# 杀死一个名为server的screen
screen -S server -X quit

# 退出该screen(会继续执行)
ctrl+a+d