0%

Linux 搭建方舟 生存进化服务器教程(1)

服务器的搭建以 Ubuntu 系统为例,其他系统的搭建方法类似,只是包管理工具不同。
开一个地图大概需要4G左右的内存,游戏占用硬盘空间大约10G。

教程需要用到steamcmd,这是一个通过命令行操作steam的工具,注意arm架构cpu无法使用steamcmd,所以树莓派无法使用。

更新/安装必须环境:

1
2
3
sudp apt update -y
sudo apt install vim wget screen -y
sudo apt install glibc.i686 libstdc++.i686 ncurses-libs.i686 -y

安装方舟服务器文件

修改进程最大文件读取设置(需要有一定的vim知识,也可以使用更简单的nano):

1
2
3
4
5
6
7
echo "fs.file-max=100000" >> /etc/sysctl.conf
sysctl -p /etc/sysctl.conf

vim /etc/security/limits.conf
# 添加以下内容到/etc/security/limits.conf文件末尾:
\* soft nofile 1000000
\* hard nofile 1000000

创建一个文件夹,下载安装SteamCMD安装包:

1
2
3
4
5
mkdir ~/steamcmd
cd ~/steamcmd

wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf ~/steamcmd/steamcmd_linux.tar.gz

这时候Steam文件夹内应该会有Linux32文件夹和steamcmd.sh脚本了,这个脚本就是steamcmd工具
开始安装服务器文件:

1
2
# 创建Ark文件夹用于安装服务器文件
mkdir ~/Ark

编辑安装与运行脚本 install_ark_servers.sh

1
vim ~/install_ark_servers.sh

以下是写入 install_ark_servers.sh 的内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/bash

steamcmd_dir="$HOME/steamcmd"
install_dir="$HOME/Ark"

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"

./steamcmd.sh +force_install_dir "$install_dir" +login anonymous +app_update 376030 validate +quit

给脚本增加可执行权限

1
chmod u+x ~/install_ark_servers.sh

执行文件,就可以自动安装、更新服务器了。

1
~/install_ark_servers.sh

安装完方舟服务器后,进入游戏目录,创建启动脚本

1
2
3
cd ~/Ark/ShooterGame/Binaries/Linux

vim ./server_start.sh

在 server_start.sh 文件中输入以下内容

1
2
#! /bin/bash
screen -dmS ark ~/Ark/ShooterGame/Binaries/Linux/ShooterGameServer TheIsland?listen?RCONPort=27020?Port=7777?QueryPort=27015?AltSaveDirectoryName=Save1?bRawSockets?SessionName=myname1 -server -log

其中 ark是screen后台进程名,TheIsland是地图名,Save1是存档名。

执行 server_start.sh 脚本即可运行方舟服务器。

1
sh ~/Ark/ShooterGame/Binaries/Linux/server_start.sh

大概五分钟后,等服务器内存占用稳定了就可以在steam搜到了

  • 停止服务器命令
    1
    screen -S ark -X quit

后续升级服务器版本只需要把 install_ark_servers.sh 脚本运行一遍就行了,
Steamcmd会自动进行更新而不是重装。

server_start.sh 命令行语法

server_start.sh 的语法规则如下:

1
<启动器路径> <地图名>?listen[?<选项>=<数值>][?<选项>=<数值>]...[?<选项>=<数值>] -UseBattleye [<其他参数>]

在地图名后以”?”分隔选项,大多数选项都需要一个值参数。有关更多详细信息,请参阅下面的选项参考。
如果未指定选项,则会自动使用其默认值。
例如,要启动一个服务器,该服务器:

  1. 向每个玩家显示十字准心
  2. 在地图上显示每个玩家的位置
  3. 允许玩家以第三人称视角观看自己
  4. 强制由不同玩家和部落建立的玩家结构之间的最小距离
  5. 启用BattlEye

在Linux主机上的 server_start.sh 内容为:

1
./ShooterGameServer TheIsland?Server?Crosshair=True?MapPlayerLocation=True?AllowThirdPersonPlayer=True?MaxStructuresInRange=100 -UseBattlEye

详细选项见Linux 搭建方舟 生存进化服务器教程(2)中提到。

注意

  1. 方舟开服比较吃内存,不太吃cpu,内存小于4G就不要尝试了。
  2. 需要有公网ip,没有公网ip的可以采用内网穿透,将端口映射到公网ip上。

此外,具体的服务器设置我会在Linux 搭建方舟 生存进化服务器教程(2)中提到。
但是方舟游戏很大,配置也无穷无尽,我只做官方文档的翻译工作,不会每一条配置都进行说明。