ARK Survival Evolved《方舟生存进化》 集群服务器搭建教程:多地图联通与角色传送配置
单张地图的 ARK 私服玩久了难免单调——孤岛刷遍了,想去焦土体验高温沙漠,想去堕落感受地下异界,却要从头开始培育恐龙。集群服务器(Cluster)正是为此而生:多张地图共享同一个角色和物品数据库,玩家可以携带恐龙和装备在地图之间自由传送,这才是 ARK 真正完整的冒险体验。
本文的重点不在于单实例 ARK 服务器的基础搭建,而是聚焦在多地图集群组网这个进阶话题:如何配置 ClusterDirOverride 实现数据共享,如何用 systemd 管理多个地图实例,以及如何处理地图间传送的规则配置。
服务器配置
运行多张地图并行意味着服务器资源消耗成倍增加。以两张地图(孤岛 + 焦土)为例,空载内存占用就接近 12GB;如果同时在线玩家超过 10 人,16GB 内存是基本要求。
雨云服务器 rainyun-com提供 8 核 16GB 机型,专为多实例并行场景设计,网络稳定、SSD I/O 出色,是 ARK 集群服务器的理想选择。注册填优惠码 2026off 领 5 折优惠券,多地图并行的运营成本大幅降低。
配置参考:
| 地图数量 | CPU | 内存 | 硬盘 | 带宽 |
|---|---|---|---|---|
| 2 张地图 | 6 核 | 12GB | 100GB SSD | 20Mbps |
| 3–4 张地图 | 8 核 | 16GB+ | 200GB SSD | 30Mbps |
系统推荐 Ubuntu 22.04 LTS 64 位。
前置准备
安装必要依赖
sudo apt update
sudo apt install -y \
lib32gcc-s1 lib32stdc++6 \
wget curl screen \
libsdl2-2.0-0:i386
创建 ARK 专用用户
sudo useradd -m -s /bin/bash ark
sudo passwd ark
su - ark
安装 SteamCMD
mkdir -p ~/steamcmd && cd ~/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz
安装步骤
下载 ARK 服务端
ARK: Survival Evolved 服务端 App ID 为 376030,文件体积较大(约 15–20GB):
mkdir -p ~/ark_server
~/steamcmd/steamcmd.sh \
+force_install_dir ~/ark_server \
+login anonymous \
+app_update 376030 validate \
+quit
规划目录结构
集群服务器需要清晰的目录结构,每张地图独立存放配置和存档:
mkdir -p ~/ark_cluster/{cluster_data,logs}
mkdir -p ~/ark_cluster/TheIsland/{config,saves}
mkdir -p ~/ark_cluster/ScorchedEarth/{config,saves}
目录说明:
cluster_data/:集群共享数据目录,存放传送数据(ClusterDirOverride 指向此处)TheIsland/config/:孤岛地图的独立配置文件ScorchedEarth/config/:焦土地图的独立配置文件
核心配置
孤岛地图配置(Game.ini)
cat > ~/ark_cluster/TheIsland/config/Game.ini << 'EOF'
[/script/shootergame.shootergamemode]
MaxTribeMemberNum=5
MaxTribesPerTeam=1
bPvEDisableFriendlyFire=True
bDisableStructurePlacementCollision=False
# 恐龙驯服速度(集群建议调高)
TamingSpeedMultiplier=3.0
# 经验倍率
XPMultiplier=2.0
# 作物生长速度
CropGrowthSpeedMultiplier=2.0
# 孵蛋速度
EggHatchSpeedMultiplier=5.0
# 幼崽成熟速度
BabyMatureSpeedMultiplier=10.0
# 禁止外来恐龙传入时超过等级上限
bAllowFlyerSpeedLeveling=True
MaxDinoLevel=300
EOF
孤岛地图配置(GameUserSettings.ini)
cat > ~/ark_cluster/TheIsland/config/GameUserSettings.ini << 'EOF'
[ServerSettings]
ServerPassword=
ServerAdminPassword=YourClusterAdmin2026
MaxPlayers=20
# 关键:集群模式下禁止下载恐龙/物品的限制(根据需要调整)
noTributeDownloads=False
PreventDownloadSurvivors=False
PreventDownloadItems=False
PreventDownloadDinos=False
# 上传冷却时间(秒)
TributeItemExpirationSeconds=86400
TributeDinoExpirationSeconds=86400
TributeSurvivorExpirationSeconds=86400
AllowThirdPersonPlayer=True
ShowMapPlayerLocation=True
EnablePvPGamma=True
EOF
焦土地图配置
# 复制孤岛配置作为基础,再按需修改
cp ~/ark_cluster/TheIsland/config/Game.ini ~/ark_cluster/ScorchedEarth/config/Game.ini
cp ~/ark_cluster/TheIsland/config/GameUserSettings.ini ~/ark_cluster/ScorchedEarth/config/GameUserSettings.ini
# 焦土地图可适当增加耐热属性倍率
sed -i 's/TamingSpeedMultiplier=3.0/TamingSpeedMultiplier=3.0\nHeatTemperatureMultiplier=0.7/' \
~/ark_cluster/ScorchedEarth/config/Game.ini
ClusterDirOverride:集群核心配置
集群的关键在于所有地图实例共享同一个 ClusterDirOverride 目录,传送数据(角色、恐龙、物品)就存放在这里:
# 集群目录需要服务进程具有读写权限
chmod 755 ~/ark_cluster/cluster_data
进阶功能
多实例 systemd 服务配置
为每张地图创建独立的 systemd service 文件,便于分别控制启停:
# 孤岛地图服务
sudo tee /etc/systemd/system/ark-island.service << 'EOF'
[Unit]
Description=ARK Cluster - The Island
After=network.target
Wants=network.target
[Service]
Type=simple
User=ark
WorkingDirectory=/home/ark/ark_server/ShooterGame/Binaries/Linux
ExecStart=/home/ark/ark_server/ShooterGame/Binaries/Linux/ShooterGameServer \
TheIsland?SessionName=集群-孤岛?MaxPlayers=20 \
?ServerAdminPassword=YourClusterAdmin2026 \
?AltSaveDirectoryName=TheIsland \
-ClusterDirOverride=/home/ark/ark_cluster/cluster_data \
-ClusterId=MyARKCluster2026 \
-NoTransferFromFiltering \
-server \
-log \
-NoBattlEye \
-Port=7778 \
-QueryPort=27015 \
-servergamelog \
-ServerRCONOutputTribeLogs \
-ConfigOverrideItemCraftingCosts= \
-mods=
Restart=on-failure
RestartSec=60
StandardOutput=append:/home/ark/ark_cluster/logs/island.log
StandardError=append:/home/ark/ark_cluster/logs/island-error.log
[Install]
WantedBy=multi-user.target
EOF
# 焦土地图服务
sudo tee /etc/systemd/system/ark-scorched.service << 'EOF'
[Unit]
Description=ARK Cluster - Scorched Earth
After=network.target
After=ark-island.service
[Service]
Type=simple
User=ark
WorkingDirectory=/home/ark/ark_server/ShooterGame/Binaries/Linux
ExecStart=/home/ark/ark_server/ShooterGame/Binaries/Linux/ShooterGameServer \
ScorchedEarth_P?SessionName=集群-焦土?MaxPlayers=20 \
?ServerAdminPassword=YourClusterAdmin2026 \
?AltSaveDirectoryName=ScorchedEarth \
-ClusterDirOverride=/home/ark/ark_cluster/cluster_data \
-ClusterId=MyARKCluster2026 \
-NoTransferFromFiltering \
-server \
-log \
-NoBattlEye \
-Port=7780 \
-QueryPort=27017 \
-servergamelog
Restart=on-failure
RestartSec=60
StandardOutput=append:/home/ark/ark_cluster/logs/scorched.log
StandardError=append:/home/ark/ark_cluster/logs/scorched-error.log
[Install]
WantedBy=multi-user.target
EOF
启用并启动所有服务:
sudo systemctl daemon-reload
sudo systemctl enable ark-island ark-scorched
sudo systemctl start ark-island
# 等待孤岛地图完全启动(约2-3分钟)后再启动焦土
sleep 120
sudo systemctl start ark-scorched
端口规划
多实例必须使用不同端口,避免冲突:
| 地图 | 游戏端口 | Steam 查询端口 | RCON 端口 |
|---|---|---|---|
| The Island | 7778 | 27015 | 32330 |
| Scorched Earth | 7780 | 27017 | 32332 |
| Aberration | 7782 | 27019 | 32334 |
防火墙放行:
sudo ufw allow 7778:7783/udp
sudo ufw allow 27015:27020/udp
sudo ufw allow 32330:32335/tcp
sudo ufw reload
地图间传送规则
集群中玩家可以在指定的 Obelisk(传送尖碑)或 Tek Transmitter 上传/下载角色、恐龙和物品。可以在配置中限制哪些内容允许跨服传送:
# 在 GameUserSettings.ini 中
[ServerSettings]
# 禁止从其他服务器下载幸存者(防止外服玩家携带超强角色进入)
PreventDownloadSurvivors=True
# 允许恐龙和物品传送
PreventDownloadDinos=False
PreventDownloadItems=False
# 限制上传物品的等级(避免高级装备刷服)
MaxTributeItems=50
MaxTributeDinos=20
日常维护
统一更新脚本
cat > ~/update_ark_cluster.sh << 'EOF'
#!/bin/bash
echo "[$(date)] 停止所有 ARK 实例..."
sudo systemctl stop ark-island ark-scorched
echo "[$(date)] 更新服务端文件..."
~/steamcmd/steamcmd.sh \
+force_install_dir ~/ark_server \
+login anonymous \
+app_update 376030 validate \
+quit
echo "[$(date)] 启动集群..."
sudo systemctl start ark-island
sleep 120
sudo systemctl start ark-scorched
echo "[$(date)] ARK 集群更新完成"
EOF
chmod +x ~/update_ark_cluster.sh
集群状态监控
# 查看所有 ARK 实例状态
sudo systemctl status ark-island ark-scorched
# 查看实时日志(孤岛)
tail -f ~/ark_cluster/logs/island.log
# 检查端口占用
ss -tunp | grep -E '7778|7780'
存档备份
cat > ~/backup_cluster.sh << 'EOF'
#!/bin/bash
BACKUP_DATE=$(date +%Y%m%d_%H%M)
BACKUP_DIR=~/ark_backups/$BACKUP_DATE
mkdir -p $BACKUP_DIR
cp -r ~/ark_cluster/cluster_data/ $BACKUP_DIR/cluster_data/
cp -r ~/ark_cluster/TheIsland/saves/ $BACKUP_DIR/island_saves/
cp -r ~/ark_cluster/ScorchedEarth/saves/ $BACKUP_DIR/scorched_saves/
# 保留最近 7 天的备份
find ~/ark_backups -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \;
echo "集群存档已备份至 $BACKUP_DIR"
EOF
chmod +x ~/backup_cluster.sh
# 每天凌晨 3 点自动备份
crontab -e
# 0 3 * * * /home/ark/backup_cluster.sh
常见问题
Q:玩家传送后角色数据丢失?
检查所有地图实例的 -ClusterId 参数是否完全一致(大小写敏感),并确认 -ClusterDirOverride 路径存在且各实例进程均有读写权限。
Q:两个地图实例端口冲突无法启动?
每个实例的 -Port 和 -QueryPort 必须不同,端口差值建议为 2。检查当前占用情况:ss -tunp | grep 777。
Q:集群模式下恐龙等级超过上限被拒绝下载?
在接收地图的 Game.ini 中设置 OverrideMaxExperiencePointsDino 并适当调高 MaxDinoLevel,或设置 AllowAnyoneBabyImprintCuddle=True 以兼容来自高倍率服务器的恐龙。
Q:服务器内存不足导致某个实例崩溃?
优先保证主要地图(孤岛)的内存,可以在次要地图启动脚本中添加 -UseNoRHIThread 参数减少内存占用,或者错峰启动不同地图。
Q:玩家无法看到集群中其他服务器?
集群成员之间不会自动出现在大厅列表中——传送是通过游戏内上传/下载机制实现的,而非服务器间的直接连接。告知玩家使用 Obelisk 上传角色,再连接目标服务器后下载即可。
ARK 集群服务器打通了多地图冒险的任督二脉,玩家可以在孤岛积累基础实力,前往焦土挑战热浪与沙漠,再深入堕落世界探索地下生态——所有角色和恐龙跨服带走,这才是完整的 ARK 体验。多地图并行对硬件要求较高,推荐选用雨云服务器 rainyun-com的 8 核 16GB 机型,充裕的 CPU 和内存保障多实例稳定运行,注册时填入优惠码 2026off 可享受 5 折优惠,长期稳定运营 ARK 集群的最优选择。

278

被折叠的 条评论
为什么被折叠?



