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

~25 นาทีUbuntu 22.04/24.04 · SteamCMD + srcds

เปิดเซิฟ GMod addon ไม่จำกัด

sandbox กับเพื่อน หรือปูทางไป DarkRP — ทุกคำสั่งก๊อปวางได้ และตั้ง Workshop ให้ผู้เล่นโหลด addon เองอัตโนมัติ

  1. 01เช่า VPS แล้ว SSH เข้าเครื่อง
  2. 02ติดตั้ง SteamCMD + ไลบรารี 32-bit
  3. 03โหลดเซิร์ฟเวอร์ GMod (app 4020)
  4. 04สตาร์ทเซิร์ฟครั้งแรก
  5. 05เปิดพอร์ต 27015
  6. 06ลง addon จาก Workshop collection
  7. 07ทำ systemd ให้รัน 24/7

เสน่ห์ของเซิฟ Garry's Mod คือ addon — และนั่นคือเหตุผลที่มันควรอยู่บน VPS: คุณคุมได้เองว่าจะลงอะไร กี่ตัว gamemode ไหน ไม่ติดข้อจำกัดของแผงสำเร็จรูป ตัวเซิร์ฟเวอร์เป็น srcds ของ Valve ที่เบามาก เปิดจบได้ใน ~25 นาที

01

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

VPS-02 (2 vCPU / RAM 4 GB / NVMe 60 GB — 350฿/เดือน) พอสำหรับ sandbox และ DarkRP ขนาดกลาง เลือก Ubuntu 22.04 หรือ 24.04:

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

ติดตั้ง SteamCMD + ไลบรารี 32-bit

srcds ของ GMod เป็นไบนารี 32-bit — นอกจาก SteamCMD ต้องลง lib 32-bit เพิ่มด้วย:

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

โหลดเซิร์ฟเวอร์ GMod (app 4020)

เซิร์ฟเวอร์ Garry's Mod คือ app id 4020 โหลดแบบ anonymous ได้ ไม่ต้องมีเกมในบัญชี:

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

สตาร์ทเซิร์ฟครั้งแรก

ลองรันแบบ sandbox บนแมพ gm_construct ดูก่อนว่าเซิร์ฟขึ้น:

root@bkk:~$ cd /root/gmod
root@bkk:~$ ./srcds_run -game garrysmod -console \
+gamemode sandbox +map gm_construct +maxplayers 16 \
+hostname "เซิฟ GMod ของเรา"
VAC secure mode is activated.

ค่าอย่าง sv_password, rcon_password ใส่เพิ่มในไฟล์ garrysmod/cfg/server.cfg ได้ (สร้างไฟล์เองถ้ายังไม่มี)

05

เปิดพอร์ต 27015

root@bkk:~$ ufw allow 27015/tcp && ufw allow 27015/udp
# ผู้เล่นเข้าได้จาก server browser หรือ connect IP:27015 ใน console
06

ลง addon จาก Workshop collection

วิธีที่ถูกต้องคือทำ collection: เข้า Workshop ของ GModกด Browse → Collections → สร้าง collection ของตัวเอง แล้วกดรวม addon ที่อยากได้เข้าไป จากนั้นเอาเลขท้าย URL ของ collection มาใส่ตอนสตาร์ท พร้อม API key ที่ขอฟรีจากsteamcommunity.com/dev/apikey:

หน้า Steam Workshop ของ Garry's Mod — จุดสร้าง collection รวม addon ของเซิฟ
steamcommunity.com/app/4000/workshop — addon เป็นล้านตัว รวมเป็น collection แล้วชี้จากเซิฟ
root@bkk:~$ ./srcds_run -game garrysmod -console \
-authkey "STEAM-API-KEY" \
+host_workshop_collection "เลข-collection" \
+gamemode sandbox +map gm_construct +maxplayers 16

เซิร์ฟจะโหลด addon ทั้ง collection ให้เองตอนสตาร์ท และผู้เล่นที่ join จะถูกสั่งให้โหลดชุดเดียวกันอัตโนมัติ

07

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

เก็บคำสั่งสตาร์ทลง /root/gmod/run.sh (chmod +x) แล้วสร้าง /etc/systemd/system/gmod.service:

[Unit]
Description=Garry's Mod Server
After=network.target
[Service]
WorkingDirectory=/root/gmod
ExecStart=/root/gmod/run.sh
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
root@bkk:~$ systemctl enable --now gmod

ทางลัด: LinuxGSM (gmodserver)รวบขั้นที่ 2–7 เหลือ ./gmodserver install พร้อมคำสั่ง update/backup/monitor ในตัว:

หน้า Deploy Garry's Mod Game Servers ของ LinuxGSM
linuxgsm.com/servers/gmodserver — ทางลัดโอเพนซอร์ส (MIT)

หลังเปิดเซิร์ฟแล้ว

ปัญหาที่เจอจริงกับเซิร์ฟ Garry’s Mod และวิธีแก้

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

ผู้เล่นเข้ามาแล้วไม่มี addon ทั้งที่เซิร์ฟลงไว้แล้ว

สาเหตุ — ลง addon ไว้ที่เซิร์ฟอย่างเดียว แต่ไม่ได้บอกให้ผู้เล่นโหลด

วิธีแก้ — ใช้ +host_workshop_collection ผูก Collection ไว้ตอนสตาร์ท ผู้เล่นจะโหลดเองอัตโนมัติ — และถ้ามีไฟล์ที่ไม่ได้อยู่บน Workshop ต้องประกาศด้วย resource.AddFile ใน Lua ด้วย

เซิร์ฟ crash เมื่อคนเริ่มเยอะ

สาเหตุ — Lua error จาก addon ที่ชนกันเอง ไม่ใช่เรื่องสเปกเครื่อง

วิธีแก้ — เปิด log แล้วหาบรรทัด Lua Error ตัวแรกสุด ถอด addon ตัวนั้นออกก่อน — addon เก่าที่ไม่ได้อัปเดตหลายปีคือตัวต้องสงสัยอันดับแรกเสมอ

เซิร์ฟไม่โผล่ในลิสต์สาธารณะ

สาเหตุ — GMod ก็ใช้ระบบ GSLT เหมือนเกมอื่นของ Valve ถ้าไม่ใส่จะเป็นเซิร์ฟที่เข้าได้เฉพาะคนที่รู้ IP

วิธีแก้ — ขอ token ที่ steamcommunity.com/dev/managegameservers (app id 4000) แล้วใส่ผ่าน +sv_setsteamaccount

ผู้เล่นโหลด addon นานมากก่อนเข้าเกม

สาเหตุ — ทุกคนโหลดจาก Workshop พร้อมกันตอนเข้า ซึ่งช้าและล้มเหลวบ่อย

วิธีแก้ — ตั้ง FastDL ชี้ไปที่เว็บโฮสต์ของคุณเอง แล้วผู้เล่นจะดึงไฟล์จากที่นั่นแทน เร็วกว่าและคุมได้ว่าใครได้ไฟล์เวอร์ชันไหน

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

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

ตัว srcds เบา — sandbox เพื่อนไม่กี่คนใช้ ~2 GB แต่พอลง addon เยอะ ๆ หรือเล่น DarkRP ที่คนเข้า 20+ คน ควรมี 4 GB ขึ้นไป (VPS-02) เพราะ addon ทุกตัวโหลดเข้า RAM ตอนสตาร์ท

ต้องมี GMod ในบัญชี Steam ไหมถึงจะเปิดเซิฟได้

ไม่ต้อง — เซิร์ฟเวอร์ (app 4020) โหลดผ่าน login anonymous ได้เลย ส่วนผู้เล่นทุกคนต้องมีเกมแท้ของตัวเอง

จะเปิดเซิฟ DarkRP ต้องทำยังไงต่อ

DarkRP เป็น gamemode ที่โหลดจาก GitHub ของทีมพัฒนา — โคลนลงโฟลเดอร์ garrysmod/gamemodes/ แล้วเปลี่ยน +gamemode darkrp ตอนสตาร์ท ที่เหลือคือลง addon อาชีพ/อาวุธจาก Workshop ตามธีมเซิฟ

ผู้เล่นต้องโหลด addon เองไหม

ไม่ต้อง ถ้าตั้ง Workshop collection แล้วใส่ resource.AddWorkshop (หรือใช้ +host_workshop_collection) เกมจะให้ผู้เล่นโหลด addon อัตโนมัติตอน join — แนะนำเปิด sv_allowdownload และตั้ง sv_loadingurl ให้สวย ๆ ด้วย

จะทำเซิร์ฟ DarkRP ต้องใช้สเปกเท่าไหร่

DarkRP หนักกว่า sandbox ธรรมดามาก เพราะมีระบบเงิน อาชีพ ที่ดิน และสคริปต์ที่รันตลอดเวลา — เซิร์ฟ DarkRP ที่มีคนจริงยี่สิบคนควรเริ่มที่แพ็กกลางขึ้นไป และตัวที่ถึงเพดานก่อนมักเป็น CPU ไม่ใช่ RAM เพราะ Lua ทำงานบนเธรดเดียว ถ้าเริ่มหน่วงให้ดูจำนวน addon ก่อนคิดเรื่องอัปแพ็ก

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

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

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

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