ข้ามไปเนื้อหาหลัก

~20 นาทีUbuntu 22.04/24.04 · SteamCMD + systemd

เปิดเซิฟ Valheim ให้แก๊งเล่นได้ 24 ชม.

ปิดเครื่องตัวเองแล้วโลกไม่หาย — ย้ายเซิฟขึ้น VPS ใน 20 นาที มีทุกคำสั่งให้ก๊อปวางทีละบรรทัด

  1. 01เช่า VPS แล้ว SSH เข้าเครื่อง
  2. 02ติดตั้ง SteamCMD
  3. 03โหลดเซิร์ฟเวอร์ Valheim (app 896660)
  4. 04เขียนสคริปต์สตาร์ท ตั้งชื่อโลก + รหัส
  5. 05เปิดพอร์ต 2456–2457/udp
  6. 06ทำ systemd ให้รัน 24/7
  7. 07(เสริม) ลงม็อด BepInEx จาก Thunderstore
  8. 08(เสริม) ย้ายโลกเดิมจากเครื่องตัวเอง

เซิฟ Valheim แบบเปิดจากในเกมมีข้อจำกัดเดียวที่น่ารำคาญที่สุด: คนเปิดต้องออนไลน์ตลอด พอย้ายขึ้น VPS โลกของแก๊งจะรันของมันเอง 24 ชั่วโมง ใครว่างตอนไหนก็เข้าได้ ไกด์นี้ใช้วิธีทางการ (SteamCMD) เป็นเส้นหลัก และมีทางลัด LinuxGSM ให้ท้ายเรื่อง

01

เช่า VPS แล้ว SSH เข้าเครื่อง

VPS-02 (2 vCPU / RAM 4 GB / NVMe 60 GB — 350฿/เดือน) เอาอยู่สบายสำหรับแก๊ง ~10 คน เลือก Ubuntu 22.04 หรือ 24.04 แล้วเข้าเครื่อง:

$ ssh root@IP-ของคุณ
root@bkk:~$ apt update && apt upgrade -y
02

ติดตั้ง SteamCMD

SteamCMD เป็นแพ็กเกจ 32-bit เลยต้องเปิด multiverse กับสถาปัตยกรรม i386 ก่อน (ระหว่างติดตั้งจะมีหน้าจอให้กดยอมรับ license ของ Steam):

root@bkk:~$ add-apt-repository multiverse && dpkg --add-architecture i386
root@bkk:~$ apt update && apt install -y steamcmd
03

โหลดเซิร์ฟเวอร์ Valheim (app 896660)

ตัว dedicated server ของ Valheim แจกฟรีผ่าน Steam ในชื่อ app id 896660 ล็อกอินแบบ anonymous ได้เลย ไม่ต้องมีเกม:

root@bkk:~$ /usr/games/steamcmd +force_install_dir /root/valheim \
+login anonymous +app_update 896660 validate +quit
Success! App '896660' fully installed.
04

เขียนสคริปต์สตาร์ท ตั้งชื่อโลก + รหัส

สร้างไฟล์ /root/valheim/run.sh — กติกาสำคัญ: รหัสต้องยาว ≥ 5 ตัว และห้ามซ้ำกับชื่อเซิฟไม่งั้นเซิร์ฟจะเงียบตายโดยไม่บอกเหตุผล (อยากเปิด crossplay ให้เติม -crossplay ต่อท้าย):

#!/bin/bash
cd /root/valheim
export LD_LIBRARY_PATH=./linux64:$LD_LIBRARY_PATH
./valheim_server.x86_64 -nographics -batchmode \
-name "เซิฟแก๊งเรา" -world "Midgard" \
-password "รหัส5ตัวขึ้น" -port 2456 -public 1
root@bkk:~$ chmod +x /root/valheim/run.sh
05

เปิดพอร์ต 2456–2457/udp

root@bkk:~$ ufw allow 2456:2457/udp
# ในเกม: Join Game → Join IP → IP-ของคุณ:2456
06

ทำ systemd ให้รัน 24/7

สร้าง /etc/systemd/system/valheim.service เพื่อให้เซิร์ฟเปิดเองตอนบูตเครื่อง และเด้งกลับมาเองถ้าล่ม:

[Unit]
Description=Valheim Dedicated Server
After=network.target
[Service]
ExecStart=/root/valheim/run.sh
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
root@bkk:~$ systemctl enable --now valheim
root@bkk:~$ journalctl -u valheim -f # ดู log สด
Game server connected

ไม่อยากจัดการเองทุกอย่าง? LinuxGSM (โอเพนซอร์ส MIT) รวบขั้นที่ 2–6 เหลือ ./vhserver install แล้วได้คำสั่ง start/stop/update/backup/monitor มาครบชุด:

หน้า Deploy Valheim Game Servers ของ LinuxGSM — ทางลัดติดตั้งเซิฟ Valheim บน Linux
linuxgsm.com/servers/vhserver — ทางลัดสำหรับคนไม่อยากตั้ง systemd เอง
07

(เสริม) ลงม็อดจาก Thunderstore

ม็อดฝั่งเซิร์ฟของ Valheim เกือบทั้งหมดรันบน BepInEx — โหลดแพ็กBepInExPack Valheim จาก Thunderstore แตกไฟล์ทับโฟลเดอร์ /root/valheim แล้ววางไฟล์ม็อด (.dll) ใน BepInEx/plugins/จากนั้น restart — ม็อดฮิตอย่าง ValheimPlus หรือ Plant Everything ก็ลงวิธีนี้ทั้งนั้น

หน้ารวมม็อด Valheim บน Thunderstore — BepInExPack ถูกปักหมุดเป็นตัวแรก
thunderstore.io/c/valheim — ม็อด 3,000+ ตัว BepInExPack คือตัวที่ต้องลงก่อน
08

(เสริม) ย้ายโลกเดิมจากเครื่องตัวเอง

เล่นกันมานานแล้วไม่อยากเริ่มโลกใหม่ — ก๊อปไฟล์ .db กับ .fwl ของโลกเดิมจากเครื่องคุณ (Windows: %USERPROFILE%\AppData\LocalLow\IronGate\Valheim\worlds_local) ขึ้นไปที่ ~/.config/unity3d/IronGate/Valheim/worlds_local/ บน VPS แล้วตั้ง -world ในสคริปต์ให้ตรงกับชื่อไฟล์ เท่านั้นเอง:

$ scp Midgard.db Midgard.fwl \
root@IP-ของคุณ:~/.config/unity3d/IronGate/Valheim/worlds_local/

คำถามที่เจอบ่อย

เซิฟ Valheim ใช้ RAM เท่าไหร่

เริ่มที่ 2–3 GB สำหรับเพื่อน 2–5 คน แต่ยิ่งสำรวจแมพเยอะ ไฟล์โลกยิ่งโต RAM ยิ่งกิน — 4 GB (VPS-02) คือจุดที่ปลอดภัยสำหรับเล่นยาว ๆ 10 คน

รหัสผ่านเซิฟมีเงื่อนไขอะไร

ต้องยาวอย่างน้อย 5 ตัวอักษร และห้ามเป็นส่วนหนึ่งของชื่อเซิฟ ไม่งั้นเซิร์ฟเวอร์จะไม่ยอมสตาร์ท — อาการคือเปิดแล้วดับเงียบ ๆ ซึ่งคนเจอกันเยอะมาก

เปิด crossplay ให้เพื่อนเล่นผ่าน Game Pass ได้ไหม

ได้ เติม -crossplay ในสคริปต์สตาร์ท แต่ระบบจะเปลี่ยนไปใช้ PlayFab แทน Steam ซึ่ง ping แกว่งกว่า — ถ้าทุกคนเล่นบน Steam อยู่แล้ว ไม่ใส่จะนิ่งกว่า

อัปเดตเซิร์ฟยังไงเวลาเกมออกแพตช์

รันคำสั่ง steamcmd ตัวเดิมจากขั้นที่ 3 ซ้ำอีกรอบ (app_update 896660 validate) แล้ว restart — ถ้าใช้ LinuxGSM ก็แค่ ./vhserver update

พร้อมสั่งแล้ว? ดูสเปก VPS ที่เหมาะกับ Valheim

หรือกลับไปดูไกด์ทั้งหมด 34 หน้า

เซิร์ฟแลค = ย้ายเครื่องแรงกว่าให้ฟรีเริ่ม 150฿/เดือน · ดาต้าเซ็นเตอร์กรุงเทพ ping 5–20 ms

เปิดเซิร์ฟเลย