饥荒云服务器搭建

本文综合参考
博客【记录】饥荒联机版+个人云服务器搭建(2020.6.19)
B站视频:饥荒Linux专用服务器搭建详细教程

搭建

Ubuntu64位

1、安装环境

#Ubuntu64位
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install libstdc++6 libgcc1 libcurl4-gnutls-dev
#分屏工具,用户后台运行命令窗口
sudo apt install screen

#Ubuntu32位
sudo apt-get update
sudo apt-get upgrade
#这个32位的libcurl4-gnutls建议装一下
sudo apt-get install libstdc++6:i386 libgcc1:i386 libcurl4-gnutls-dev:i386

或者直接

sudo apt install -y libstdc++6:i386 libgcc1:i386 libcurl4-gnutls-dev:i386 screen

2、安装SteamCMD及Steam客户端

#在用户“家”目录下创建steamcmd目录并进入
mkdir ~/steamcmd && cd ~/steamcmd

#下载SteamCMD安装文件到新创建的目录
wget -P ~/steamcmd https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz

#解压压缩包
tar -xf steamcmd_linux.tar.gz

3、开放服务器端口

理论开放 UDP10800 - 12000 就行了。
有问题就可以开放全部udp端口。

4、安装饥荒联机版服务器软件

在steamcmd模式下

#运行Steamcmd
./steamcmd.sh

#以匿名帐户模式登录
login anonymous

#指定饥荒联机版服务器软件安装在当前myDSTserver目录(没有则自动创建)
force_install_dir myDSTserver

#更新软件
app_update 343050 validate

#更新完成后,退出steamcmd模式
quit

#先尝试运行服务器,生成一下必要的目录
cd ~/steamcmd/myDSTserver/bin
./dontstarve_dedicated_server_nullrenderer

#等出现下面的提示后就可以Ctrl+C停止了
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!! Your Server Will Not Start !!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

5、先整理本地存档

①、获取服务器token

②、上传存档

  • 上传
    用本地生成的新档或者老档放在服务器上的开服工具上的目录,
    本地档位:
    C:\Users\ab225\Documents\Klei\DoNotStarveTogether\479456079\Cluster_x
    服务器开服工具目录:
    \root\.klei\DoNotStarveTogether
    放置后将存档命名为:MyDediServer
    例如:
    \root\.klei\DoNotStarveTogether\MyDediServer

  • 修改服务器token
    将存档目录下的cluster_token.txt替换为获取到的服务器token。

③、mod管理

  • 复制mod
    mod文件夹:workshop-xxxxxxx
    本地mod文件位置D:\Steam\steamapps\common\Don't Starve Together\mods
    将存档已经勾选的mod放在服务器mod下\root\steamcmd\myDSTserver\mods
    想省事,直接全部复制也行。

6、编写启动脚本

可以使用touch startup.sh命令创建脚本,vi startup.sh命令对脚本编辑,
里面的steamcmd_dir、install_dir、cluster_name、dontstarve_dir是文件的路径。

#!/bin/bash

steamcmd_dir="$HOME/steamcmd"
install_dir="$HOME/steamcmd/myDSTserver"
cluster_name="MyDediServer"
dontstarve_dir="$HOME/.klei/DoNotStarveTogether"

function fail()
{
	echo Error: "$@" >&2
	exit 1
}

function check_for_file()
{
	if [ ! -e "$1" ]; then
		fail "Missing file: $1"
	fi
}

cd "$steamcmd_dir" || fail "Missing $steamcmd_dir directory!"

check_for_file "steamcmd.sh"
check_for_file "$dontstarve_dir/$cluster_name/cluster.ini"
check_for_file "$dontstarve_dir/$cluster_name/cluster_token.txt"
check_for_file "$dontstarve_dir/$cluster_name/Master/server.ini"
check_for_file "$dontstarve_dir/$cluster_name/Caves/server.ini"

./steamcmd.sh +force_install_dir "$install_dir" +login anonymous +app_update 343050 validate +quit
check_for_file "$install_dir/bin"

cd "$install_dir/bin" || fail

run_shared=(./dontstarve_dedicated_server_nullrenderer)
run_shared+=(-console)
run_shared+=(-cluster "$cluster_name")
run_shared+=(-monitor_parent_process $$)

"${run_shared[@]}" -shard Caves  | sed 's/^/Caves:  /' &
"${run_shared[@]}" -shard Master | sed 's/^/Master: /'

保存后,可以使用./startup.sh启动脚本来启动饥荒。

已经完成饥荒专用服务器的搭建了

以下是一些补充

1、添加管理员名单

Cluster_1目录下新增adminlist.txt文件,里面填写科雷用户的ID,每行填写一个。

2、管理员名单

T:\root\.klei\DoNotStarveTogether\Cluster_7路径下添加adminlist.txt,里面填写KLEI用户ID即可。

3、白名单

whitelist.txt,里面填写KLEI用户ID。

4、黑名单

blocklist.txt,里面填写KLEI用户ID。

5、开放端口

协议类型:UDP(饥荒使用UDP协议)
端口范围:10800-12000(如果在浏览世界界面能点击进去,但在直连进不去,多半是因为端口没开放对。可以尝试把udp端口全部开放,试试能不能进去。)
授权对象:0.0.0.0/0

6、错误bad interpreter: No such file or directory

出现bad interpreter:No such file or directory的原因是Linux与Windows之间文件格式的问题。如果shell文件是在Windows下编写的,就会出现这种错误。因为Windows的换行方式与Unix不一样,但是在VI下面如果不Set一下又完全看不出来。

7、Warning: failed to init SDL thread priority manager: SDL not fou

缺少SDL库。
SDL是Simple DirectMedia Layer(简易直控媒体层)的缩写。它是一个跨平台的多媒体库,以用于直接控制底层的多媒体硬件的接口。主要用在开发游戏上!

sudo apt install libsdl2-2.0-0:i386
#或者
sudo apt-get install SDL

8、error while loading shared libraries: libcurl-gnutls.so.4

原错误提示:

./dontstarve_dedicated_server_nullrenderer: error while loading shared libraries: libcurl-gnutls.so.4: cannot open shared object file: No such file or directory

(现在用的64位的Ubuntu)缺少32位的libcurl-gnutls.so.4
执行sudo apt-get install libstdc++6:i386 libgcc1:i386 libcurl4-gnutls-dev:i386命令,下载安装一下就行了。

9、Could not find anim build FROMNUM

找不到来自num的动画生成,没事的,问题不大。

10、showme目录

D:\Steam\steamapps\workshop\content\322330

11、一些常用命令

# 饥荒地上和地下服务占用的端口通常是10999和10998
# 可以通过检查端口有没有被占用,判断世界有没有成功运行
netstat -nlp|grep 10999
netstat -nlp|grep 10998

# 给脚本赋值运行权限
chmod +x xxx.sh

待完善

1、mod目录问题,本地有些mod在D:\Steam\steamapps\common\Don't Starve Together\mods,有些mod在D:\Steam\steamapps\workshop\content,在服务器是否需要区分放置?

你可能感兴趣的:(游戏类,windows,udp,linux)