废话不多说直接进入正题
环境操作
创建新Linux用户
sudo adduser steam注意:该命令可以创建用户和该用户在home中的文件夹,后面会直接提示你设置密码的
安装steamcmd
Tips:
您可以自行百度或google或bing搜索Ubuntu安装steamcmd方法,应该能搜到官方的文档,这也是最推荐的,当然您也可以选择直接看下面的命令,或者点击下面的连接查看文档
sudo add-apt-repository multiverse; sudo dpkg --add-architecture i386; sudo apt update
sudo apt install steamcmd运行steamcmd
su steam
steamcmd
mkdir software
cd software
mkdir dontstarve设置你的应用安装目录
# force_install_dir <路径>
force_install_dir /home/steam/software/dontstarve登录用户
login 用户名
set_steam_guard_code 验证码Tips:
验证码为你输入正确密码后向你输入的账户的邮箱中发送的验证码
安装或更新应用(饥荒)
在SteamCMD中执行以下命令
# app_update ID validate
app_update 343050 validateTips:
安装或更新应用使用
app_update命令(在这里提供Steam 应用 ID)。 要同时校验应用的话,需添加validate到命令里。要下载测试分支的话,使用-beta <测试名称>选项 – 例如,半条命专用服务器的测试分支名为beta以及起源专用服务器的测试分支名为prerelease。一些测试分支设置了密码;如果要从它那里下载,需同时添加-betapassword <密码>选项。app_update <应用ID> [-beta <测试名称>] [-betapassword <密码>] [validate]
退出steamcmd
quit
# 或者按一次Ctrl+c即可游戏操作
创建世界
无尽-洞穴-联机
世界生成
世界大小:中
分支:最多
环形:从不
这样设置的话会跟花瓣一样你在花瓣中间其它区域四散分开,就很少需要跨海了
MOD推荐
防卡好多招:物品堆叠+垃圾清理
Global Positions:共享地图、查看玩家位置
Show Me:查看物品信息
Tips:左上角查看怪物到来倒计时
Smart Minisign:箱子显示首个物品图标,方便分类
Display Attack Range:怪物攻击范围显示
4/5/6格装备栏(适配MOD版):多几个格子,可以设置
Klei操作
获取Klei用户ID
注意:挂好加速器或者科学上网
回到游戏主界面
点击账号(英文的话可以点击Account)
点击用户信息
保存用户信息下的Klei用户ID
方便设置管理员
获取服务器token
回到游戏主界面
点击账号(英文的话可以点击Account)
点击游戏
点击《饥荒:联机版》的游戏服务器
随便起个服务器名称(边貌似不允许设置中文)
创建好后你会发现有一条很奇怪的字母和特殊字符组成的token,复制保留下来
注意:看好自己服务器截止日期
文件操作
打开地图在本机的位置
有两种方式
第一种直接找到下面目录
C:\Users\当前用户文件夹\Documents\Klei\DoNotStarveTogether\编号就是一串数字\Cluster_数字第二种,进入饥荒联机版游戏首页,然后点击左下角的数据(英文应该叫Data)
Cluster_数字文件夹就是你的地图数据,如果你不知道哪个是的话。。。。粗暴点,都删了(记得备份)只保留你创建的就知道哪个是你刚创建的了进入
Cluster_数字目录,并创建cluster_token.txt文件,并将token扔进去进入
Cluster_数字目录,并创建adminlist.txt,并将Klei用户ID扔进去Cluster重要文件目录解析(并非全部)(目录解析容可以不看,不影响开服)Caves:地图资源、Master:洞穴资源modoverrides.lua:订阅的mod以及mod的配置信息backup:备份日志信息
cluster.ini:基本配置因为我也是萌新,所以我只写一些自己确定和方便修改的配置
max_players:最多玩家人数
pvp:玩家是否允许互殴
cluster_password:房间密码
cluster_description:房间描述
cluster_name:房间名称
cluster_token.txt:服务器tokenadminlist.txt:管理员的Klei用户ID,一行一个
利用ssh连接到服务器,并进行下面操作
进入用户目录下
cd ~查看是否有.klei文件夹
ls -al若没有则需要依次创建
cd ~ mkdir .klei cd .klei mkdir DoNotStarveTogether
将
Cluster_数字目录上传到服务器的~/.klei/DoNotStarveTogether目录中即可若不知道~代表什么
可以用ssh连接好后进入到
~/.klei/DoNotStarveTogether目录下并使用pwd命令来查看例如我的目录就是
/home/steam/.klei/DoNotStarveTogether我用的是filezilla来上传文件,看各位自己用啥都行,不想装软件的大神直接用scp命令吧
当然也可以直接使用免安装版、
注意:是将
Cluster_1整体扔进去,包括这个目录
服务器操作
加载mod
如果你任务只有地图设置mod就完事的话那就大错特错了,这是个很容易踩坑的一点,我们还需要让服务器来下载并加载mod
获取mod的id
打开本机的
Cluster_数字\Caves目录下,并找到modoverrides.lua文件记住
workshop后的纯数字,这个就是mod的id进入到steam下载目录下的mods目录下,我的是
~/software/dontstarve/modscd ~/software/dontstarve/mods编辑
dedicated_server_mods_setup.lua文件vim dedicated_server_mods_setup.lua根据注释提示,可以通过下面的命令来设置mod
ServerModSetup("MOD的id")按下esc,按下输入冒号
:输入wq即保存退出
大概就是这样
--There are two functions that will install mods, ServerModSetup and ServerModCollectionSetup. Put the calls to the functions in this file and they will be executed on boot. --ServerModSetup takes a string of a specific mod's Workshop id. It will download and install the mod to your mod directory on boot. --The Workshop id can be found at the end of the url to the mod's Workshop page. --Example: http://steamcommunity.com/sharedfiles/filedetails/?id=350811795 --ServerModSetup("350811795") --ServerModCollectionSetup takes a string of a specific mod's Workshop id. It will download all the mods in the collection and install them to the mod directory on boot. --The Workshop id can be found at the end of the url to the collection's Workshop page. --Example: http://steamcommunity.com/sharedfiles/filedetails/?id=379114180 --ServerModCollectionSetup("379114180") ServerModSetup("xxxxxxxxxx") ServerModSetup("xxxxxxxxxx")
编写启动脚本
#创建脚本文件
touch dontstarve_start.sh
#编辑脚本文件
vim dontstarve_start.sh脚本文件写入以下内容
#!/bin/bash
steamcmd_dir="/usr/games"
install_dir="$HOME/software/dontstarve"
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"
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"
check_for_file "$install_dir/bin"
cd "$install_dir/bin64" || fail
run_shared=(./dontstarve_dedicated_server_nullrenderer_x64)
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: /'注意:若只有32位支持,可以更改脚本中的,上面脚本是64位的
cd "$install_dir/bin64" || fail #和 run_shared=(./dontstarve_dedicated_server_nullrenderer_x64)为
cd "$install_dir/bin" || fail #和 run_shared=(./dontstarve_dedicated_server_nullrenderer)
Tips:
vim一次性清除文件内所有内容
ggdG不需要输入冒号
说明:
gg:光标跳转到该文件的行首;
dG:删除光标行及其以下行的全部内容。(注:d为删除,G为光标跳转到末尾行)
开放端口
如果你希望用直连方式,可以采用端口映射,如果有公网IP,直接在防火墙开启以下两个UDP端口即可
UDP协议开放10999、10888、10998
ps:如果你只希望玩家搜索房间名进入,可以不用开放端口,但是玩家是直连科雷,需要加速
注意:frp的name一定不要重复!!!!
# 饥荒服务器映射 [[proxies]] name = "dontstarve1" type = "udp" localIP = "127.0.0.1" localPort = 10999 remotePort = 10999 [[proxies]] name = "dontstarve2" type = "udp" localIP = "127.0.0.1" localPort = 10888 remotePort = 10888 [[proxies]] name = "dontstarve3" type = "udp" localIP = "127.0.0.1" localPort = 10998 remotePort = 10998
其它端口号
启动服务器
启动服务器很简单,比较头疼的一点是如何将饥荒服务器置于后台启动,不然关闭了ssh服务器也就关了
所以这里有两个方案:
screen(推荐)
# 创建screen screen -S dontstarve # 运行服务器 bash ./dontstarve_start.sh # 当想要回到这个screen时可以这么玩 screen -r dontstarve # 关闭进程只需要进入screen后按下ctrl+c即可nohup
自行搜索,比较麻烦,林风比较懒,尤其关闭进程很麻烦查看日志
# 在启动时可以这么玩,但是不推荐,因为日志会越来越多,文件会越来越大 bash ./dontstarve_start.sh>logs.log tail -f logs.log
更新服务器
只需要走一遍steamcmd操作即可,有mod的话还需要重新写一遍mod的id或者直接备份然后copy一份即可
例如:
# 进入到steamcmd
steamcmd
# 设置安装目录
force_install_dir /home/steam/software/dontstarve
# 登录用户
login 用户名
# 更新应用
app_update 343050 validate
# 退出steamcmd
quit
# 进入到备份文件夹
cd ~/back/dontstarve
# 将备份的mod文件copy到指定目录
cp dedicated_server_mods_setup.lua /home/steam/software/dontstarve/modsTips:
我这里将备份的
dedicated_server_mods_setup.lua文件扔到了~/back/dontstarve里面,你们跟我的或许不一样,所以不要照抄,直接进你自己的备份目录即可
更新mod
重启下服务器即可,完全不需要重新进入steamcmd下载