SERVER / QUICK START
遊戲伺服器 Linux 開服教學
用 Docker 快速完成 Linux 伺服器部署,包含環境準備、Compose 設定、啟動、維運和常見問題。
本教學將引導您在 Linux 伺服器上透過 Docker 快速部署遊戲伺服器,即使您沒有太多技術背景,也可以依照步驟完成。
1. 準備工作
- 必須是雲伺服器(阿里雲、騰訊雲、 AWS 等)或者 VPS 虛擬機。
- 必須:向官方申請有效的 遊戲授權 TOKEN(
GAME_TOKEN),沒有 TOKEN 就無法開啟公開伺服器。 - 準備一台具有公網 IP 的伺服器(必須可被 ping 通和訪問),否則審核會不通過。
- 安裝 Docker 與 Docker Compose(建議),或確認伺服器運行環境符合遊戲要求。
- 申請 TOKEN 時,請將郵件寄到:
team@nextindie.cn。
TOKEN 申請範本 · 《遊戲許可及服務協議》
一、申請人基本資訊
使用者 UID:[請填寫您的遊戲帳號使用者 ID]
伺服器綁定公網 IP:[請填寫唯一的固定公網 IP 位址,須可被 ping 到]
伺服器物理地區:[例如:亞洲、北美等]
申請用途與社群規模簡述:[例如:個人開服、特定玩家社群伺服器等]
二、【重要】非營利性運營承諾與合規提示
作為幕後開服運營者,我已詳細閱讀並誓必嚴格遵守《遊戲許可及服務協議》第十章之規定,在此鄭重做出以下法律承諾:
【純粹非盈利性質】:本伺服器將保持純粹的非盈利性質。
【僅允許無償捐贈】:本伺服器僅接受玩家出於對社群熱愛而進行的自願、無償、無任何對價回報的捐贈。所有贊助資金將且僅能用於貼補伺服器硬體租賃、網路頻寬、DDoS 防禦等物理託管的直接成本。
【嚴禁販賣遊戲資產與數值】:本伺服器絕不直接、間接或變相售賣遊戲內的任何虛擬生物/恐龍、角色數據、等級、屬性加成、武器裝備、建築材料、遊戲代幣或任何影響數值平衡的虛擬道具。
【嚴禁變相特權交換】:本伺服器絕不以「贊助抽獎」、「贊助滿贈」、「充值定制角色/生物」、「進入伺服器的付費門檻/入群費」等名義,將遊戲內的虛擬物品或遊戲特權作為贊助的交換條件。
【禁止博彩機制】:本伺服器內及關聯社群(如 QQ 群、Discord 等)中,絕不設立針對遊戲虛擬物資的盲盒、抽獎、輪盤或帶有賭博性質的充值返利機制。
三、隱私隔離與安全知情
我知悉並同意,官方收集此伺服器 IP 及生成 TOKEN 是出於「安全防作弊與履行合同所必需」,此數據處理符合隱私合規規範。
我承諾妥善保管配發的授權 TOKEN,絕不以任何形式轉讓、出租或洩露給第三方。因 TOKEN 或 IP 配置管理不當引發的違規後果,由我本人承擔全部責任。
本人明白,向官方傳送此開服申請郵件,即構成了對《遊戲許可及服務協議》所有法律條款的數字簽名與絕對認可。若違反上述任何一項紅線,官方有權在不進行事先通知的情況下,一鍵註銷授權 TOKEN、將 IP 列入黑名單,並對違規帳號執行全平台封號與設備拉黑處理。 2. 安裝 Docker 與 Docker Compose
2.1 安裝 Docker
如果您使用的是雲端伺服器內建的 Docker 容器服務,或目前系統已預先安裝且可正常使用 Docker,可以直接跳過本節,繼續執行下一步。
執行以下命令下載並安裝 Docker(適用於大多數 Linux 發行版):
curl -fsSL https://get.docker.com | bash 安裝完成後,啟動 Docker 並設定開機自動啟動:
systemctl start docker
systemctl enable docker 驗證安裝是否成功:
docker --version 2.2 安裝 Docker Compose
現代 Docker 通常已內建 docker compose 外掛;如果沒有,再安裝獨立的 docker-compose。本教學後續命令統一使用 docker-compose。如果您的系統僅支援外掛形式,請自行替換為 docker compose。
方法一:檢查內建外掛
docker compose version 方法二:安裝獨立二進位檔
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version 3. 建立伺服器目錄與設定檔
3.1 直接使用登入後的預設目錄
本教學預設直接使用登入後的預設目錄存放 docker-compose.yml 和 .env,無需額外建立專案資料夾。如果您使用 root 登入,這個目錄通常就是 /root。
登入後,兩個設定檔應並排放在您的家目錄中(例如以 root 登入時,該目錄即為 /root):
/root/
├── docker-compose.yml ← Docker Compose 設定檔
└── .env ← 環境變數(伺服器設定) 3.2 建立 .env 環境變數檔案
.env 檔案用於存放伺服器參數。請直接使用系統預設的 vi 編輯器建立:
vi .env 在開啟的檔案中,以下提供兩份可直接使用的完整設定。請依你想要的模式擇一貼上,並填入 GAME_TOKEN(若要開放公開伺服器,還需將 GAME_IP 改為真實公網 IP):
沙盒模式伺服器
# 遊戲授權 TOKEN(向官方申請,公開伺服器必填)
GAME_TOKEN=
# 伺服器名稱
GAME_NAME=The Sandbox
# 公網 IP(127.0.0.1 僅供本機測試;請填寫真實公網 IP,其他玩家才能連線)
GAME_IP=203.0.113.10
# 伺服器連接埠(UDP)
GAME_PORT=26666
# 屍體消失時間(秒)
GAME_DEAD_TIME=600
# 後代數量:0=禁用,1=允許 1 個,2=允許 2 個……
GAME_CHILD=1
# 啟用沙盒模式
GAME_MODE_SANDBOX=true
# 註冊到全球伺服器列表
GAME_GLOBAL=true
# 最大玩家數
GAME_MAX_PLAYERS=50
# 伺服器節點(僅供玩家判斷所在地區,無實際作用)
GAME_NODE=AS
# 公開伺服器
GAME_PUBLIC=true
# 允許基因熟練度
GAME_GENE_SKILLFUL=true
# 允許擊殺獲得熟練度
GAME_KILL_SKILLFUL=true
# 允許學習基因
GAME_LEARN=true
# 遊戲難度(數值越大越難)
GAME_HARD=1
# 關閉進化蛋(卵永遠只產出當前種族)
GAME_EVOL=false
# 地圖名稱
GAME_MAP=Oasis
# 允許 AI 伴侶
GAME_AI_MATE=true 進化模式伺服器
# 遊戲授權 TOKEN(向官方申請,公開伺服器必填)
GAME_TOKEN=
# 伺服器名稱
GAME_NAME=The Evolution
# 公網 IP(127.0.0.1 僅供本機測試;請填寫真實公網 IP,其他玩家才能連線)
GAME_IP=203.0.113.10
# 伺服器連接埠(UDP)
GAME_PORT=26666
# 屍體消失時間(秒)
GAME_DEAD_TIME=1200
# 後代數量:0=禁用,1=允許 1 個,2=允許 2 個……
GAME_CHILD=1
# 啟用進化模式
GAME_MODE_EVOL=true
# 允許卵中出現進化蛋(這不是進化模式開關)
GAME_EVOL=true
# 啟用原始模式
GAME_MODE_PRIMEVAL=true
# 註冊到全球伺服器列表
GAME_GLOBAL=true
# 最大玩家數
GAME_MAX_PLAYERS=50
# 伺服器節點(僅供玩家判斷所在地區,無實際作用)
GAME_NODE=AS
# 公開伺服器
GAME_PUBLIC=true
# 遊戲難度(數值越大越難)
GAME_HARD=0
# 允許 AI 伴侶
GAME_AI_MATE=true 儲存並離開:先按 i 進入編輯模式,編輯完成後按 Esc,輸入 :wq 並按 Enter。完整參數說明請參考 《遊戲伺服器開服配置手冊》。對於開關型參數,只要寫變數名稱並賦值任意值(例如 1)就表示啟用。
💡 提示:點擊上方程式碼區塊的 下載 按鈕即可將該範例存成檔案。下載的 .env 檔案名稱為 sandbox.env 或 evolution.env,請重新命名為 .env 後再部署。
3.3 建立 docker-compose.yml 檔案
vi docker-compose.yml services:
# 遊戲應用
gameserv:
image: hkccr.ccs.tencentyun.com/mesozoicdawn/gameserver:latest
container_name: gameserv
# 環境變數檔案(若檔名不同,例如 sandbox.env,請修改下方檔名)
env_file:
- .env
volumes:
- /data/Database:/app/GameServ_Data/Database
- /data/Mods:/app/GameServ_Data/StreamingAssets/Mods
- /data/Logs:/app/GameServ_Data/Logs
# 掛載宿主機時區
- /etc/localtime:/etc/localtime:ro
# Watchtower 更新通知信號
- /data/Signals:/app/GameServ_Data/Signals
- /data/Signals:/signals
environment:
- GAME_AUTO_RESTART=1
- TZ=Asia/Shanghai
labels:
- "com.centurylinklabs.watchtower.scope=gameserv"
- "com.centurylinklabs.watchtower.enable=true"
# 更新前通知遊戲服自動存檔
- "com.centurylinklabs.watchtower.lifecycle.pre-update=/usr/local/bin/watchtower-pre-update gameserv"
- "com.centurylinklabs.watchtower.lifecycle.pre-update-timeout=2"
restart: unless-stopped
stop_grace_period: 60s
healthcheck:
test: ["CMD-SHELL", "pgrep -f GameServ.x86_64 || exit 1"]
interval: 50s
timeout: 5s
retries: 3
start_period: 60s
# 主機模式(降低延遲)
network_mode: host
deploy:
resources:
limits:
cpus: '1.8'
memory: 3800M
# Watchtower 自動更新
watchtower:
image: containrrr/watchtower
container_name: watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
# Docker 26+ 需指定 API 版本
- DOCKER_API_VERSION=1.40
- WATCHTOWER_POLL_INTERVAL=300
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_LABEL_ENABLE=true
- WATCHTOWER_TIMEOUT=120s
command:
- "--label-enable"
- "--scope"
- "gameserv"
- "--cleanup"
# 啟用 lifecycle hook
- "--enable-lifecycle-hooks"
restart: unless-stopped
deploy:
resources:
limits:
cpus: '0.2'
memory: 128M network_mode: host表示容器直接使用主機網路,因此.env中的GAME_PORT必須與防火牆放行的連接埠一致。- 資料目錄(
/data/Database、/data/Mods、/data/Logs、/data/Signals)會保存在宿主機上。Docker 會自動建立這些目錄,您無需手動建立。 deploy.resources.limits.memory: 3800M限制遊戲伺服器最多使用約 3.8G 記憶體,cpus: '1.8'限制最多 1.8 核 CPU。請依伺服器配置自行調整deploy.resources.limits下的數值。
3.4 建立資料目錄(可選)
雖然 Docker 會自動建立綁定目錄,但手動建立可以幫助您更早確認權限是否正確:
mkdir -p /data/Database /data/Mods /data/Logs 4. 啟動伺服器
確認目前位於存放 docker-compose.yml 和 .env 的目錄後執行。按照本教學預設流程,直接在登入後的預設目錄執行即可;如果您使用 root 登入,通常就是 /root。
docker-compose up -d -d參數表示在背景執行。- 首次啟動會從映像倉庫拉取遊戲伺服器映像,請耐心等待。
- 可以使用
docker-compose logs -f檢視即時日誌,按Ctrl+C離開日誌檢視,容器不會停止。
如果一切正常,伺服器會完成啟動並向官方大廳註冊(前提是已配置有效的 GAME_PUBLIC 和 GAME_TOKEN)。
5. 防火牆放行埠
為了讓其他玩家能夠連線,請務必放行 .env 中設定的 GAME_PORT(預設 26666)對應的 UDP 連接埠。
- 如果使用雲端伺服器,請在安全群組中新增 UDP 連接埠放行規則。
- 如果伺服器啟用了系統防火牆(如
ufw),執行以下命令:
ufw allow 26666/udp 6. 日常管理命令
| 操作 | 命令 |
|---|---|
| 啟動伺服器 | docker-compose up -d |
| 停止伺服器 | docker-compose down |
| 重新啟動伺服器 | docker-compose restart |
| 檢視日誌 | docker-compose logs -f --tail=100 |
| 更新映像並重新啟動 | docker-compose pull 然後 docker-compose up -d |
| 進入容器內部 | docker exec -it gameserv bash |
- 停止伺服器時,Docker 會預留 60 秒儲存資料,請勿強制
kill。 watchtower容器會自動監測映像更新,並在 5 分鐘間隔內自動拉取新版本並重新啟動服務。
7. 如何修改設定
- 執行
cd ~後,使用vi .env開啟設定檔。 - 儲存後執行
docker-compose down,再執行docker-compose up -d重新載入環境變數。
必須先 down 再 up,直接 restart 可能不會重新讀取新的環境變數。
8. 常見問題
8.1 伺服器啟動後在大廳找不到?
- 檢查
.env中的GAME_TOKEN是否填寫正確,並確認已向官方申請。 - 檢查是否設定了
GAME_PUBLIC=1。 - 檢查伺服器公網 IP 是否與
GAME_IP一致,可使用curl ifconfig.me檢查。 - 檢查防火牆與安全群組是否已放行 UDP 連接埠。
- 檢視日誌:
docker-compose logs -f gameserv。
8.2 連接埠被佔用?
修改 .env 中的 GAME_PORT 為其他連接埠,並同步更新防火牆放行規則。
8.3 記憶體不足導致容器退出?
- 修改
docker-compose.yml中的mem_limit。 - 適度降低
GAME_MAX_PLAYERS等高消耗參數。
8.4 如何安裝 MOD?
將 MOD 檔案放入宿主機的 /data/Mods 目錄,並在 .env 中新增 GAME_MODS=Mod名稱1,Mod名稱2,然後重新啟動伺服器。
8.5 資料如何備份?
備份宿主機的 /data/Database 目錄即可,該目錄包含玩家角色、巢穴、龍蛋等資料。建議定時打包並上傳至雲端儲存。
9. 取得協助
- 查閱完整參數文件:《遊戲伺服器開服配置手冊》。
- 加入官方 Discord 社群或 QQ 群,取得最新映像位址和 TOKEN 申請方式。