อัปเดตล่าสุด: กุมภาพันธ์ 2026

Steam Cache Server

สำหรับร้านเกมส์ - เพิ่มความเร็วดาวน์โหลดเกม

ตั้งค่า LanCache ด้วย Docker แบบ Step-by-Step ลด Bandwidth และเพิ่มความเร็วในการดาวน์โหลดเกม Steam, Origin, Epic

Steam Origin Docker 30 นาที
Steam
Origin
Docker

สารบัญ

Steam Cache คืออะไร?

Steam Cache หรือ LanCache คือ Local Caching Proxy Server ที่ทำหน้าที่เก็บไฟล์เกมที่ดาวน์โหลดแล้วไว้ในเครือข่ายภายใน เมื่อเครื่องอื่นต้องการดาวน์โหลดเกมเดียวกัน จะดาวน์โหลดจาก Cache Server แทนที่จะดาวน์โหลดจากอินเทอร์เน็ตโดยตรง

หลักการทำงาน:

  1. 1 PC 1 ดาวน์โหลดเกมจาก Steam → ไฟล์ถูก Cache ไว้
  2. 2 PC 2 ดาวน์โหลดเกมเดียวกัน → ดาวน์โหลดจาก Cache Server
  3. 3 ความเร็วเพิ่มขึ้น 10-100 เท่า!

LanCache Monolithic

Container หลักที่รวบรวม Cache สำหรับทุก Platform ใน Container เดียว

  • รองรับ Steam, Origin, Epic, Battle.net
  • ใช้ Nginx เป็น Proxy Cache
  • รองรับ HTTP Range Requests
  • Cache Size ปรับได้

ข้อดีสำหรับร้านเกมส์

เร็วขึ้น 10-100x

ดาวน์โหลดจาก LAN แทนอินเทอร์เน็ต

ประหยัด Bandwidth

ลดการใช้อินเทอร์เน็ต 70-90%

ลูกค้าพอใจ

ไม่ต้องรอนาน Update เกมเร็ว

คุ้มค่า

ลดค่าอินเทอร์เน็ตรายเดือน

ตัวอย่างการประหยัด

เกมใหญ่ (เช่น GTA V, RDR2)

100+ GB

ร้าน 20 เครื่อง ดาวน์โหลดเกมเดียวกัน

2,000 GB = 2 TB

มี Cache Server

100 GB เท่านั้น!

Platform ที่รองรับ

Steam

Valve

  • รองรับทุกเกมบน Steam
  • Workshop Content
  • Game Updates

Origin

EA Games

  • FIFA, Battlefield, Apex
  • EA Play Games
  • Game Updates

Epic Games

Epic Store

  • Fortnite
  • Free Games
  • Game Updates

Battle.net

Blizzard

  • Overwatch, WoW, Diablo
  • Hearthstone
  • StarCraft II

Riot Games

League of Legends

  • League of Legends
  • Valorant
  • Legends of Runeterra

Windows Update

Microsoft

  • Windows Updates
  • Driver Updates
  • Store Apps

สิ่งที่ต้องเตรียม

Hardware Requirements

  • CPU: 2 Cores ขึ้นไป (แนะนำ 4 Cores)
  • RAM: 4 GB ขึ้นไป (แนะนำ 8-16 GB)
  • Storage: SSD 500 GB - 2 TB (ขึ้นกับจำนวนเกม)
  • Network: Gigabit LAN

แนะนำสำหรับร้าน 10-20 เครื่อง:

  • • Intel NUC / Mini PC ราคาประหยัด
  • • HP EliteDesk / Dell OptiPlex (มือสอง)
  • • Custom PC: i3/i5 + 8GB RAM + 1TB SSD

Software Requirements

  • OS: Ubuntu Server 20.04/22.04 หรือ Debian 11/12
  • Docker: Docker Engine 20.x ขึ้นไป
  • Router: ที่สามารถตั้งค่า DNS ได้

Network Requirements:

  • • Cache Server ต้องมี Static IP
  • • Router ต้องตั้งค่า DNS ได้
  • • แนะนำให้แยก VLAN สำหรับ Cache

ข้อควรระวัง

การตั้งค่า DNS Poisoning อาจส่งผลต่อการทำงานของเว็บไซต์บางแห่ง หากพบปัญหาให้ตรวจสอบ DNS Configuration หรือปิด Cache Server ชั่วคราว

สถาปัตยกรรมระบบ

Internet Router DHCP + DNS Cache Server LanCache Monolithic IP: 192.168.1.100 Port: 80, 443 Storage: /cache/data Gaming PCs PC1 PC2 PC3 DNS: 192.168.1.100 Data Flow 1. PC → DNS Query 2. Cache DNS → PC (Cache IP) 3. PC → HTTP Request → Cache 4. Cache → Game Files → PC

หลักการทำงาน

  1. 1. Lancache-DNS ทำ DNS Hijack ให้ Steam CDN ชี้ไปที่ Cache Server
  2. 2. เมื่อ PC ดาวน์โหลดเกม จะส่ง Request ไปที่ Cache Server
  3. 3. Cache Server ตรวจสอบว่ามีไฟล์อยู่แล้วหรือไม่
    • มี → ส่งไฟล์จาก Cache (เร็ว!)
    • ไม่มี → ดาวน์โหลดจาก CDN แล้ว Cache ไว้
1

ติดตั้ง Docker

ติดตั้ง Docker Engine บน Ubuntu Server

Install Docker on Ubuntu
# Update system
sudo apt update && sudo apt upgrade -y

# Install Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# Add current user to docker group
sudo usermod -aG docker $USER

# Start Docker
sudo systemctl start docker
sudo systemctl enable docker

# Verify installation
docker --version
docker run hello-world
2

รัน LanCache Monolithic

สร้าง Cache Server หลัก

ก่อนรันคำสั่ง ให้ตรวจสอบ IP Address ของ Cache Server ด้วย hostname -I

Create Cache Directories
# Create directories for cache data and logs
sudo mkdir -p /cache/data
sudo mkdir -p /cache/logs

# Set permissions (adjust as needed)
sudo chown -R $USER:$USER /cache
Run LanCache Monolithic
# Run LanCache Monolithic container
docker run --restart unless-stopped \
  --name lancache \
  --detach \
  -v /cache/data:/data/cache \
  -v /cache/logs:/data/logs \
  -p 80:80 \
  -p 443:443 \
  -e CACHE_MEM_SIZE=500m \
  -e CACHE_DISK_SIZE=1000g \
  -e CACHE_MAX_AGE=3650d \
  lancachenet/monolithic:latest

# Check container status
docker ps | grep lancache

Environment Variables

Variable Default Description
CACHE_MEM_SIZE 500m Memory สำหรับ Cache Metadata (1MB ≈ 8000 entries ≈ 8GB disk)
CACHE_DISK_SIZE 1000g ขนาด Cache สูงสุดบน Disk
CACHE_MAX_AGE 3650d อายุ Cache ก่อนลบ (10 ปี)
UPSTREAM_DNS 8.8.8.8 8.8.4.4 DNS Server สำหรับ Resolve จริง
3

รัน Lancache DNS

ตั้งค่า DNS Server สำหรับ Hijack CDN

HOST_IP คือ IP ของ Cache Server (เครื่องที่รัน Docker)

Run Lancache DNS
# Get your host IP
export HOST_IP=$(hostname -I | cut -d' ' -f1)
echo "Cache Server IP: $HOST_IP"

# Run Lancache DNS container
docker run --restart unless-stopped \
  --name lancache-dns \
  --detach \
  -p 53:53/udp \
  -p 53:53/tcp \
  -e USE_GENERIC_CACHE=true \
  -e LANCACHE_IP=$HOST_IP \
  lancachenet/lancache-dns:latest

# Check container status
docker ps | grep dns

ตรวจสอบว่าทำงานถูกต้อง

# Test DNS from another machine
nslookup lancache.steamcontent.com [CACHE_SERVER_IP]

# Should return your Cache Server IP
# Example: 192.168.1.100
4

ตั้งค่า Router

กำหนด DNS Server ให้ Client ใช้ Cache DNS

ขั้นตอนสำคัญ

Router ต้องส่ง DNS IP = Cache Server IP ให้กับ Client ทุกเครื่อง
ถ้า Router ไม่รองรับ อาจต้องตั้งค่า DNS บนแต่ละเครื่องแทน

วิธีที่ 1: ตั้งค่า DHCP DNS (แนะนำ)

เข้าไปที่ Router Settings → LAN / DHCP แล้วเปลี่ยน DNS Server เป็น IP ของ Cache Server

ตัวอย่าง Configuration:

DHCP Range:

192.168.1.100 - 192.168.1.200

DNS Server (Primary):

192.168.1.100 (Cache Server)

Gateway:

192.168.1.1

DNS Server (Secondary):

ไม่ต้องใส่!

วิธีที่ 2: ตั้งค่า DNS บนแต่ละเครื่อง

Windows - Set DNS (Admin PowerShell)
# Set DNS to Cache Server (run as Admin)
netsh interface ip set dns "Ethernet" static 192.168.1.100 primary

# Flush DNS cache
ipconfig /flushdns

# Verify DNS
nslookup lancache.steamcontent.com

สำหรับ MikroTik Router

MikroTik DNS Configuration
# Set DHCP Server to use Cache DNS
/ip dhcp-server network
set [find] dns-server=192.168.1.100

# Or create new network with Cache DNS
/ip dhcp-server network
add address=192.168.1.0/24 gateway=192.168.1.1 \
    dns-server=192.168.1.100
5

ทดสอบระบบ

ตรวจสอบว่า Cache ทำงานถูกต้อง

Test 1: ตรวจสอบ DNS

Test DNS Resolution
# Flush DNS first
ipconfig /flushdns

# Test Steam CDN DNS
nslookup lancache.steamcontent.com

# Expected result: Should return your Cache Server IP
# Name:    lancache.steamcontent.com
# Address: 192.168.1.100

# Test other CDNs
nslookup origin-a.akamaihd.net
nslookup epicgames-download1.akamaized.net

Test 2: ทดสอบดาวน์โหลดเกม

  1. 1

    ดาวน์โหลดเกมใดก็ได้จาก Steam (ครั้งแรก)

    ความเร็วจะใกล้เคียงความเร็วอินเทอร์เน็ตปกติ

  2. 2

    ลบเกมและดาวน์โหลดใหม่ (ครั้งที่ 2)

    ความเร็วควรเพิ่มขึ้นอย่างเห็นได้ชัด!

  3. 3

    ทดสอบจากเครื่องอื่นดาวน์โหลดเกมเดียวกัน

    ความเร็วควรเท่ากับครั้งที่ 2 (ดึงจาก Cache)

ตรวจสอบ Cache Stats

Monitor Cache Logs
# View access logs in real-time
docker exec -it lancache tail -f /data/logs/access.log

# Check cache size
du -sh /cache/data

# List cached files
ls -la /cache/data/

# Check container logs
docker logs lancache

การ Pre-fill Cache

Pre-fill คือการดาวน์โหลดเกมลง Cache ล่วงหน้า เพื่อให้เวลาลูกค้ามาเล่นไม่ต้องรอดาวน์โหลดนาน

เกมที่ควร Pre-fill

  • Valorant - เกมยอดนิยม eSports
  • Apex Legends - Battle Royale
  • League of Legends - MOBA
  • CS2 - FPS ยอดนิยม
  • GTA V - Open World

วิธี Pre-fill

  1. 1 ติดตั้ง Steam บนเครื่อง Test
  2. 2 Login และดาวน์โหลดเกมที่ต้องการ
  3. 3 รอจนเสร็จ → เกมอยู่ใน Cache แล้ว
  4. 4 ทำซ้ำกับเกมอื่นๆ

Tips

  • • Pre-fill ช่วงเวลาที่ร้านปิดหรือไม่มีลูกค้า
  • • ใช้ Off-peak hours เพื่อประหยัด Bandwidth
  • • Pre-fill เกมใหม่ที่กำลังฮิต

การดูแลระบบ

ตรวจสอบประจำวัน

  • ตรวจสอบ Container Status
  • ตรวจสอบ Disk Space
  • ตรวจสอบ Access Logs
# Quick status check
docker ps -a | grep -E "lancache|dns"
df -h /cache

Maintenance

  • Update Container ทุกเดือน
  • Clear Cache เก่าที่ไม่ใช้
  • Monitor Disk Space
# Update containers
docker pull lancachenet/monolithic:latest
docker restart lancache lancache-dns

การแก้ไขปัญหา

ปัญหา: Steam ไม่ดึงจาก Cache

สาเหตุที่เป็นไปได้:

  • • DNS ไม่ได้ชี้ไปที่ Cache Server
  • • Client ใช้ DNS อื่น (เช่น 8.8.8.8)
  • • Firewall บล็อก Port 80/443

วิธีแก้:

  • • ตรวจสอบ nslookup lancache.steamcontent.com
  • • ตั้งค่า DNS เฉพาะ Cache Server
  • • ตรวจสอบ iptables / firewall

ปัญหา: Container ไม่ Start

สาเหตุที่เป็นไปได้:

  • • Port 80/443 ถูกใช้แล้ว
  • • Docker ไม่ทำงาน
  • • ไม่มี Disk Space

วิธีแก้:

  • sudo netstat -tlnp | grep :80
  • sudo systemctl start docker
  • df -h

ปัญหา: Cache เต็ม

สาเหตุที่เป็นไปได้:

  • • CACHE_DISK_SIZE ไม่พอ
  • • Disk ใกล้เต็ม

วิธีแก้:

  • • เพิ่ม CACHE_DISK_SIZE
  • • ลบไฟล์ Cache เก่า: rm -rf /cache/data/*
  • • เพิ่ม Hard Disk

คำถามที่พบบ่อย (FAQ)

Q: ต้องใช้เครื่อง Server แพงไหม?

A: ไม่จำเป็น! Mini PC หรือ PC เก่าที่มี 4GB RAM + 500GB SSD ก็ใช้ได้แล้ว สำหรับร้าน 10-20 เครื่อง ถ้าร้านใหญ่กว่านั้นควรเพิ่ม RAM และ Storage

Q: ถ้าลูกค้ามาดาวน์โหลดเกมใหม่ที่ยังไม่มีใน Cache?

A: เกมใหม่จะดาวน์โหลดจากอินเทอร์เน็ตตามปกติ แต่จะถูก Cache ไว้โดยอัตโนมัติ ครั้งต่อไปที่มีคนดาวน์โหลดเกมเดียวกันจะได้จาก Cache

Q: รองรับ Windows Update ด้วยไหม?

A: ใช่! LanCache รองรับ Windows Update ด้วย ช่วยลด Bandwidth เวลามี Update ใหญ่ๆ ทุกเครื่องจะไม่ต้องโหลดจาก Microsoft ซ้ำ

Q: Cache จะหมดอายุไหม?

A: ตั้งค่า CACHE_MAX_AGE ได้ Default = 10 ปี (3650 วัน) ถ้าเกมมี Update ใหม่ Cache เก่าจะถูกแทนที่อัตโนมัติ

Q: ต้องเปิดเครื่อง Cache Server ตลอดเวลาไหม?

A: ควรเปิดตลอดเวลาที่ร้านเปิด ถ้าปิด Cache Server ลูกค้าจะไม่สามารถดาวน์โหลดเกมได้ (เพราะ DNS ชี้ไปที่ Cache Server)

สรุป

สิ่งที่เรียนรู้:

  • ติดตั้ง Docker และ LanCache
  • ตั้งค่า Lancache DNS
  • ตั้งค่า Router DHCP DNS
  • ทดสอบและ Monitor Cache
  • Pre-fill Cache ล่วงหน้า

Best Practices:

  • ใช้ SSD สำหรับ Cache Storage
  • Pre-fill เกมฮิตก่อนเปิดร้าน
  • Update Container สม่ำเสมอ
  • Monitor Disk Space

บทความที่เกี่ยวข้อง