注:适用于Ubuntu20(不清楚是否能用于centos或Ubuntu的其他版本)
需:两台服务器(我的是阿里云的Ubuntu20)
1.搭建
具体参考下面文章:
(2条消息) Ubuntu搭建饥荒服务器教程_wujing1_1的博客-CSDN博客
(上面链接为转载)
【在下一步前,需确保两台服务器有关饥荒的内容保持一致,如存档、mods、配置文件等】
2.双服务器配置部分
【仅双服务器作为参考】
【以下请在管理员权限下操作】
sudo su
1.地面部分
cluster.ini
编辑存档配置文件
cd
cd .klei
cd DoNotStarveTogether/Cluster_1
vim cluster.ini
配置文件内容
(如需复制请注意看情况调整)
(复制的记得在空缺参数“=”号后空一格填写参数,不要填写中文)
[GAMEPLAY]
game_mode = endless; 此处填写游戏模式,如生存(survival)、荒野(wilderness)、无尽(endless)
max_players = 12; 最大服务器人数
pvp = false; 玩家对抗,true为开启
pause_when_empty = true; 当没有连接玩家时,暂停服务器
[NETWORK]
lan_only_cluster = false; 是否只连接局域网内玩家,选择关闭(false)
cluster_intention = madness; 服务器风格(如合作cooperative、社交social、竞争competitive、疯狂madness)
cluster_password = ; 服务器密码,可以不输入
cluster_description = ; 服务器描述,只作为展示,可以乱写
cluster_name = ; 服务器名称,要填
offline_cluster = false; 是否离线,写否
cluster_language = zh; 语言
[MISC]
console_enabled = true; 控制台开关
[SHARD]
shard_enabled = true; 是否为多服务器,写true
bind_ip = ; 多服务器侦听网络,多服务器填0.0.0.0,单服务器127.0.0.1
master_ip = ; 地面服务器地址,若为地面配置文件则填127.0.0.1,洞穴则填地面服务器的公网地址
master_port = 10888; 多服务器侦听地址,使用此值并保持其他服务器一致,注意开启端口
cluster_key = defaultPass; 多服务器认证密码,建议写一个并与其他服务器保持一致
server.ini
【此为地面部分】
上一步编辑完成后退出文档
(vim的使用方法请问度娘)
在上一部完成的目录下:
删除洞穴存档(仅地面服务器)
rm -r Caves
然后ls一下康康还在不在
接着编辑地面的服务器配置:
cd Master
vim server.ini
以下为地面服务器配置文件该有的内容:
[NETWORK]
server_port = 10999; 地面服务器端口,就这个就行了
[SHARD]
is_master = true; 不要改
[ACCOUNT]
encode_user_path = true; 也不要改
[STEAM]
master_server_port = 27018; 俩为认证端口,两台服务器需不一致,+1就行
authentication_port = 8768
然后回到根目录
cd
开始下一步
start.sh
还记得上面转载的搭建教程里有创建启动配置文件一项吗
那个文件在多服务器中需要一点点修改
所以先回到用户根目录下(指创建start.sh的目录,如root目录)
然后编辑文件:
vim start.sh
我直接给出修改版内容,直接替换全部内容就行了
【注意现在为地面服务器部分】
#!/bin/bash
steamcmd_dir="$HOME/steamcmd"
install_dir="$HOME/dontstarvetogether_dedicated_server"
cluster_name="Cluster_1"
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 "$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)
"${run_shared[@]}" Master | sed 's/^/Master: /'
完成后保存退出然后开始洞穴部分
(在所有步骤开始前先确保自己已掌握vim的使用方法并确保保存退出无误)
2.洞穴部分
cluster.ini
此步可参考地面部分
除【SHARD】部分其他内容尽保持一致
【SHARD】部分有变动注意看注释做修改
server.ini
先删除地面存档
(注意这里已经是第二台机了,不要删错了!!!)
还是一样的目录下:
rm -r Master
然后打开洞穴服务器配置文件:
cd Caves
vim server.ini
然后大致内容是这样的:
[NETWORK]
server_port = 10998; 洞穴服务器端口,不必改
[SHARD]
is_master = false; 是否为地面服务器,填否
name = Caves; 服务器名,就这个就行了
id = ; 你的原文件是什么就是什么
[ACCOUNT]
encode_user_path = true; 不改
[STEAM]
master_server_port = 27017; 注意要与地面服务器不一致,下一项也是
authentication_port = 8767
修改完保存退出后cd一下
start.sh
【这里是洞穴】
一样的打开start.sh文件
替换内容:
#!/bin/bash
steamcmd_dir="$HOME/steamcmd"
install_dir="$HOME/dontstarvetogether_dedicated_server"
cluster_name="Cluster_1"
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/Caves/server.ini"
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)
"${run_shared[@]}" Caves | sed 's/^/Caves: /'
保存退出就算配置完成了
结束
现在你可以启动你的两台服务器,启动请看上面的转载教程
(可能会出现某种问题而失败或出现漏洞,这时就需要你借助互联网的能力来解决,或者私信、评论发表问题,最好B站私信或发邮箱吧)
B站:dashiyang UID:501208477
邮箱:1198407684@qq.com