记录一下要玩的游戏的服务器怎么搭。
幻兽帕鲁 使用docker compose。
docker-compose.yml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 version: '3.9' services: palworld-dedicated-server: container_name: palworld-dedicated-server image: jammsen/palworld-dedicated-server:latest restart: unless-stopped logging: driver: "local" options: max-size: "10m" max-file: "3" ports: - target: 8211 published: 8211 protocol: udp mode: host - target: 8212 published: 8212 protocol: tcp mode: host - target: 25575 published: 25575 protocol: tcp mode: host env_file: - ./default.env volumes: - ./game:/palworld
default.env 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 PUID=1000 PGID=1000 TZ=Asia/Shanghai ALWAYS_UPDATE_ON_START=true STEAMCMD_VALIDATE_FILES=true BACKUP_ENABLED=true BACKUP_ANNOUNCE_MESSAGES_ENABLED=true BACKUP_CRON_EXPRESSION=0 * * * * BACKUP_RETENTION_POLICY=true BACKUP_RETENTION_AMOUNT_TO_KEEP=20 RESTART_ENABLED=true RESTART_DEBUG_OVERRIDE=false RESTART_CRON_EXPRESSION="0 3 * * *" RCON_PLAYER_DETECTION=true RCON_PLAYER_DEBUG=true RCON_PLAYER_DETECTION_STARTUP_DELAY=60 RCON_PLAYER_DETECTION_CHECK_INTERVAL=15 WEBHOOK_ENABLED=false WEBHOOK_DEBUG_ENABLED=false WEBHOOK_URL="YOUR-URL-IN-HERE" WEBHOOK_CONTENT_TITLE="Status update" WEBHOOK_INFO_TITLE="Info" WEBHOOK_INFO_DESCRIPTION="This is an info from the server" WEBHOOK_INFO_COLOR="2849520" WEBHOOK_INSTALL_TITLE="Installing server" WEBHOOK_INSTALL_DESCRIPTION="Server is being installed" WEBHOOK_INSTALL_COLOR="2849520" WEBHOOK_RESTART_TITLE="Server is restarting soon" WEBHOOK_RESTART_DESCRIPTION="The gameserver is restarting in 15 minutes" WEBHOOK_RESTART_COLOR="15593515" WEBHOOK_START_TITLE="Server is starting" WEBHOOK_START_DESCRIPTION="The gameserver is starting" WEBHOOK_START_COLOR="2328576" WEBHOOK_STOP_TITLE="Server has been stopped" WEBHOOK_STOP_DESCRIPTION="The gameserver has been stopped" WEBHOOK_STOP_COLOR="7413016" WEBHOOK_UPDATE_TITLE="Updating server" WEBHOOK_UPDATE_DESCRIPTION="Server is being updated" WEBHOOK_UPDATE_COLOR="2849520" SERVER_SETTINGS_MODE=auto MULTITHREAD_ENABLED=true COMMUNITY_SERVER=true NETSERVERMAXTICKRATE=120 DIFFICULTY=None RANDOMIZER_TYPE=None RANDOMIZER_SEED="" IS_RANDOMIZER_PAL_LEVEL_RANDOM=false DAYTIME_SPEEDRATE=1.000000 NIGHTTIME_SPEEDRATE=1.000000 EXP_RATE=1.000000 PAL_CAPTURE_RATE=1.000000 PAL_SPAWN_NUM_RATE=1.000000 PAL_DAMAGE_RATE_ATTACK=1.000000 PAL_DAMAGE_RATE_DEFENSE=1.000000 PLAYER_DAMAGE_RATE_ATTACK=1.000000 PLAYER_DAMAGE_RATE_DEFENSE=1.000000 PLAYER_STOMACH_DECREASE_RATE=1.000000 PLAYER_STAMINA_DECREACE_RATE=1.000000 PLAYER_AUTO_HP_REGENE_RATE=1.000000 PLAYER_AUTO_HP_REGENE_RATE_IN_SLEEP=1.000000 PAL_STOMACH_DECREACE_RATE=1.000000 PAL_STAMINA_DECREACE_RATE=1.000000 PAL_AUTO_HP_REGENE_RATE=1.000000 PAL_AUTO_HP_REGENE_RATE_IN_SLEEP=1.000000 BUILD_OBJECT_HP_RATE=1.000000 BUILD_OBJECT_DAMAGE_RATE=1.000000 BUILD_OBJECT_DETERIORATION_DAMAGE_RATE=1.000000 COLLECTION_DROP_RATE=1.000000 COLLECTION_OBJECT_HP_RATE=1.000000 COLLECTION_OBJECT_RESPAWN_SPEED_RATE=1.000000 ENEMY_DROP_ITEM_RATE=1.000000 DEATH_PENALTY=All ENABLE_PLAYER_TO_PLAYER_DAMAGE=false ENABLE_FRIENDLY_FIRE=false ENABLE_INVADER_ENEMY=true ACTIVE_UNKO=false ENABLE_AIM_ASSIST_PAD=true ENABLE_AIM_ASSIST_KEYBOARD=false DROP_ITEM_MAX_NUM=3000 DROP_ITEM_MAX_NUM_UNKO=100 BASE_CAMP_MAX_NUM=128 BASE_CAMP_WORKER_MAXNUM=15 DROP_ITEM_ALIVE_MAX_HOURS=1.000000 AUTO_RESET_GUILD_NO_ONLINE_PLAYERS=false AUTO_RESET_GUILD_TIME_NO_ONLINE_PLAYERS=72.000000 GUILD_PLAYER_MAX_NUM=20 BASE_CAMP_MAX_NUM_IN_GUILD=4 PAL_EGG_DEFAULT_HATCHING_TIME=72.000000 WORK_SPEED_RATE=1.000000 AUTO_SAVE_SPAN=30.000000 IS_MULTIPLAY=false IS_PVP=false HARDCORE=false PAL_LOST=false CHARACTER_RECREATE_IN_HARDCORE=false CAN_PICKUP_OTHER_GUILD_DEATH_PENALTY_DROP=false ENABLE_NON_LOGIN_PENALTY=true ENABLE_FAST_TRAVEL=true IS_START_LOCATION_SELECT_BY_MAP=true EXIST_PLAYER_AFTER_LOGOUT=false ENABLE_DEFENSE_OTHER_GUILD_PLAYER=false INVISBIBLE_OTHER_GUILD_BASE_CAMP_AREA_FX=false BUILD_AREA_LIMIT=false ITEM_WEIGHT_RATE=1.000000 COOP_PLAYER_MAX_NUM=4 MAX_PLAYERS=8 SERVER_NAME=Overstars' PalWorld SERVER_DESCRIPTION=呃呃呃困死我了 ADMIN_PASSWORD=qwerty123 SERVER_PASSWORD= PUBLIC_PORT=8211 PUBLIC_IP= RCON_ENABLED=true RCON_PORT=25575 REGION= USEAUTH=true BAN_LIST_URL=https://api.palworldgame.com/api/banlist.txt RESTAPI_ENABLED=true RESTAPI_PORT=8212 SHOW_PLAYER_LIST=false CHAT_POST_LIMIT_PER_MINUTE=10 CROSSPLAY_PLATFORMS="(Steam,Xbox,PS5,Mac)" ENABLE_WORLD_BACKUP=false LOG_FORMAT_TYPE=Text SUPPLY_DROP_SPAN=180 ENABLE_PREDATOR_BOSS_PAL=true MAX_BUILDING_LIMIT_NUM=0 SERVER_REPLICATE_PAWN_CULL_DISTANCE=15000.000000 ALLOW_GLOBAL_PALBOX_EXPORT=true ALLOW_GLOBAL_PALBOX_IMPORT=false
开放防火墙端口
1 2 sudo ufw allow 8211/udp sudo ufw reload
1 2 docker compose up -d docker compose logs -f
幻兽帕鲁有严重的内存泄漏问题,这部分有时间补上讲讲
定时任务
1 */5 * * * * / home/yankf/ docker/palworld/ scripts/memory_monitor.sh
雾锁王国 使用enshrouded-server 在ubuntu server搭建服务器。
拉取镜像到本地 1 docker pull sknnr/enshrouded-dedicated-server:latest
查看是否下载成功
1 docker images | grep enshrouded-dedicated-server
创建持久化存储卷,保存游戏存档和配置
参数
位置
说明
source
宿主机
Docker 管理的卷名称(不是直接路径)
target
容器内
容器内挂载点的绝对路径
1 docker volume create enshrouded-persistent-data
物理存储位置默认为
1 /var/ lib/docker/ volumes/enshrouded-persistent-data/ _data
查看具体路径:
1 docker volume inspect enshrouded-persistent-data
若要删除,可使用docker volume rm
。
数据管理备份 1 2 3 4 5 docker volume inspect enshrouded-persistent-data docker run --rm -v enshrouded-persistent-data:/data -v $(pwd ):/backup alpine tar czf /backup/backup.tar.gz /data
运行 1 2 3 4 5 6 7 8 9 10 docker run \ --detach \ --name enshrouded-server \ --mount type =volume,source =enshrouded-persistent-data,target=/home/steam/enshrouded/savegame \ --publish 9006:15637/udp \ --env =SERVER_NAME='Overstars Enshrouded Containerized Server' \ --env =SERVER_SLOTS=16 \ --env =SERVER_PASSWORD='qwerty123' \ --env =PORT=15637 \ sknnr/enshrouded-dedicated-server:latest
感觉还是采用绑定宿主机目录 而不是Docker Volume 吧,这样更方便修改…
路径为/home/yankf/Game/enshrouded-savedata
授权给10000:10000用户,否则docker无权限
1 2 sudo chown -R 10000:10000 /home/yankf/Game/enshrouded-savedata
再新建一份enshrouded_server.json
,用于配置服务器参数,不新建也行。
之后便可运行:
1 2 3 4 5 6 7 8 9 10 11 docker run \ --detach \ --name enshrouded-server \ --mount type =bind ,source =/home/yankf/Game/enshrouded-savedata,target=/home/steam/enshrouded/savegame \ --mount type =bind ,source =/home/yankf/Game/enshrouded-savedata/enshrouded_server.json,target=/home/steam/enshrouded/enshrouded_server.json \ --publish 15637:15637/udp \ --env =SERVER_NAME='Overstars Enshrouded Containerized Server' \ --env =SERVER_SLOTS=2 \ --env =SERVER_PASSWORD='qwerty123' \ --env =PORT=15637 \ sknnr/enshrouded-dedicated-server:latest
查看日志 1 docker logs -f enshrouded-server
更新服务器 1 2 3 4 docker stop enshrouded-server docker rm enshrouded-server docker pull sknnr/enshrouded-dedicated-server:latest
进入服务器 注意不要从游戏内搜索,搜不到的。
要从steam-查看-游戏服务器-收藏-添加
进行搜索
雾锁王国(mornedhels-enshrouded-server) 1 2 3 4 5 6 7 8 9 10 11 12 13 docker run -d --name mornedhels-enshrouded \ --hostname enshrouded \ --restart=unless-stopped \ -p 15637:15637/udp \ -v /home/yankf/Game/mornedhels-enshrouded-server:/opt/enshrouded \ -e SERVER_NAME="Overstars Enshrouded Server" \ -e SERVER_PASSWORD="qwerty123" \ -e UPDATE_CRON="* */30 * * *" \ -e BACKUP_CRON="* */20 * * *" \ -e BACKUP_MAX_COUNT=8 \ -e PUID=4711 \ -e PGID=4711 \ mornedhels/enshrouded-server:latest
更新
1 2 docker stop mornedhels-enshrouded docker rm mornedhels-enshrouded
查看日志
1 docker logs -f mornedhels-enshrouded
英灵神殿 1 mkdir -p $HOME/valheim-server/config/worlds $HOME/valheim-server/data
把要迁移的StrayCatOverrun.db和fwl放在HOME/valheim-server/config/worlds_local/,运行如下命令 名称:Overstars233 两个选项选择:社区 ip地址:43.138.55.7,连接时不要加端口号 运行如下命令时不要sudo,否则$HOME地址不一样,如果无法使用docker命令点击这里
1 2 sudo gpasswd -a [你的用户名] docker newgrp docker
MOD 寻找设置drop more loot的方法
ValheimPlus
BepInEx 该mod可能客户端装就可以。
https://valheim.thunderstore.io/package/TastyChickenLegs/DropMoreLoot/
BepInExPack Valheim
docker基础指令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 # docker images 查看docker镜像 docker images -a #列出本地所有的镜像 docker images -q #只显示镜像ID docker images --digests #显示镜像的摘要信息 docker images --no-trunc #显示完整的镜像信息 docker rmi hello-world #从Docker中删除hello-world镜像 docker rmi -f hello-world #从Docker中强制删除hello-world镜像 # docker ps #列出当前所有正在运行的容器 docker ps -a #列出所有的容器 docker ps -l #列出最近创建的容器 docker ps -n 3 #列出最近创建的3个容器 docker ps -q #只显示容器ID docker ps --no-trunc #显示当前所有正在运行的容器完整信息 exit #退出并停止容器 Ctrl+p+q #只退出容器,不停止容器 docker start 容器ID或容器名称 #启动容器 docker restart 容器ID或容器名称 #重新启动容器 docker stop容器ID或容器名称 #停止容器 docker kill 容器ID或容器名称 #强制停止容器 docker rm 容器ID或容器名称 #删除容器 docker rm -f 容器ID或容器名称 #强制删除容器 docker rm -f $(docker ps -a -q) #删除多个容器 docker logs [容器id] -f -t --since="2024-09-07" --tail=20 容器ID或容器名称 #查看容器日志 如:docker logs [容器id] -f -t --since="2018-09-10" --tail=10 f9e29e8455a5 -f : 查看实时日志 -t : 查看日志产生的日期 --since : 此参数指定了输出日志开始日期,即只输出指定日期之后的日志 --tail=10 : 查看最后的10条日志 docker top 容器ID或容器名称 #查看容器内运行的进程 docker inspect 容器ID或容器名称 #查看容器内部细节 docker attach 容器ID #进到容器内 docker exec 容器ID #进到容器内 ———————————————— 版权声明:本文为CSDN博主「苍穹尘」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/lizhiqiang1217/article/details/89070075
运行 1 2 3 4 5 6 7 8 9 10 11 12 13 14 docker run -d \ --name valheim-server \ --cap-add=sys_nice \ --stop-timeout 120 \ -p 2456-2457:2456-2457/udp \ -v $HOME/Game/valheim-server/config:/config \ -v $HOME/Game/valheim-server/data:/opt/valheim \ -e SERVER_NAME="HatsuneMiku233" \ -e WORLD_NAME="HatsuneMiku" \ -e SERVER_PASS="qwerty123" \ -e BACKUPS_MAX_COUNT="5" \ -e BACKUPS_IDLE_GRACE_PERIOD="21600" \ -e BEPINEX=true\ ghcr.io/lloesche/valheim-server
看到如下消息时说明成功,如果服务器配置不够(内存)的话会直接卡死
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 Dec 12 16:14:31 /supervisord: valheim-updater [ 99%] Downloading update (57,385 of 57,385 KB)... Dec 12 16:14:31 /supervisord: valheim-updater [100%] Download complete. Dec 12 16:14:31 /supervisord: valheim-updater [----] Installing update... Dec 12 16:14:31 /supervisord: valheim-updater [----] Extracting package... Dec 12 16:14:31 /supervisord: valheim-updater [----] Extracting package... Dec 12 16:14:31 /supervisord: valheim-updater [----] Extracting package... Dec 12 16:14:31 /supervisord: valheim-updater [----] Extracting package... Dec 12 16:14:31 /supervisord: valheim-updater [----] Installing update... Dec 12 16:14:31 /supervisord: valheim-updater [----] Installing update... Dec 12 16:14:31 /supervisord: valheim-updater [----] Installing update... Dec 12 16:14:31 /supervisord: valheim-updater [----] Installing update... Dec 12 16:14:31 /supervisord: valheim-updater [----] Installing update... Dec 12 16:14:31 /supervisord: valheim-updater [----] Installing update... Dec 12 16:14:31 /supervisord: valheim-updater [----] Installing update... Dec 12 16:14:31 /supervisord: valheim-updater [----] Installing update... Dec 12 16:14:31 /supervisord: valheim-updater [----] Cleaning up... Dec 12 16:14:31 /supervisord: valheim-updater [----] Update complete, launching Steamcmd... Dec 12 16:14:32 /supervisord: valheim-updater Redirecting stderr to '/home/valheim/Steam/logs/stderr.txt' Dec 12 16:14:32 /supervisord: valheim-updater [ 0%] Checking for available updates... Dec 12 16:14:32 /supervisord: valheim-updater [----] Verifying installation... Dec 12 16:14:32 /supervisord: valheim-updater Steam Console Client (c) Valve Corporation - version 1669935972 Dec 12 16:14:32 /supervisord: valheim-updater -- type 'quit' to exit -- Dec 12 16:14:32 /supervisord: valheim-updater Loading Steam API...OK Dec 12 16:14:32 /supervisord: valheim-updater Dec 12 16:14:32 /supervisord: valheim-updater Connecting anonymously to Steam Public... Dec 12 16:15:01 CRON[352]: pam_unix(cron:session): session opened for user root by (uid=0) Dec 12 16:15:01 CRON[353]: (root) CMD ([ -f "/var/run/valheim/valheim-updater.pid" ] && kill -HUP $(cat /var/run/valheim/valheim-updater.pid)) Dec 12 16:15:01 CRON[352]: pam_unix(cron:session): session closed for user root Dec 12 16:15:20 /supervisord: valheim-updater OK Dec 12 16:15:20 /supervisord: valheim-updater Waiting for client config...OK Dec 12 16:15:20 /supervisord: valheim-updater Waiting for user info...
食物 蛟龙肉汤(2honey + 1mushroom + 1serpentMeatCooked)/牦牛派(2Cloudberry+2LoxMeat+4BarleyFlour) + 血旺(2Thistle+2Bloodbag+4BarleyFlour) + 面包(10BarleyFlour)/蛟龙肉汤
药水 中份耐力:10蜂蜜+10云莓+10MushroomYellow 中份治疗:10蜂蜜+4血袋+10Raspberry+1dandelion
武器 黑曜石箭:8Wood+4Obsidian+2Feathers
服务器网路优化
启用BBR拥塞控制
调整UDP缓冲区与QoS优先级