Home > Blog > security

Tailscale VPN คู่มือเชื่อมต่อ Network จากทุกที่แบบ Zero Config

tailscale vpn zero config guide
2026-03-22 | security | 1800 words

การ remote เข้า server หรืออุปกรณ์ที่บ้านจากข้างนอกเป็นเรื่องที่หลายคนต้องการ แต่การ setup VPN แบบดั้งเดิมอย่าง OpenVPN หรือ WireGuard manual นั้นมีขั้นตอนเยอะ ต้องจัดการ certificate, key, config file และยังต้องมี public IP หรือ dynamic DNS อีก Tailscale มาแก้ปัญหาเหล่านี้ได้หมด

บทความนี้จะอธิบายว่า Tailscale คืออะไร ทำงานยังไง และ setup ยังไงให้ใช้งานได้จริงในชีวิตประจำวัน

Tailscale คืออะไร

Tailscale เป็น VPN service ที่สร้างบน WireGuard protocol แต่เพิ่ม control plane ที่จัดการ key exchange และ routing ให้อัตโนมัติ แทนที่จะต้อง generate key และแจกจ่าย config เอง Tailscale ทำทุกอย่างให้ผ่าน identity provider อย่าง Google, Microsoft หรือ GitHub

แนวคิดหลักของ Tailscale คือ mesh network ทุก device เชื่อมต่อถึงกันโดยตรง (peer-to-peer) ไม่ผ่าน server กลาง ทำให้ latency ต่ำและ throughput สูง การเชื่อมต่อจะใช้ NAT traversal เพื่อเจาะผ่าน firewall โดยไม่ต้อง open port

ต่างจาก Traditional VPN ยังไง

Feature Traditional VPN Tailscale
Setup time หลายชั่วโมง 10 นาที
Key management manual อัตโนมัติ
Public IP ต้องการ ใช่ ไม่จำเป็น
Traffic routing ผ่าน server กลาง peer-to-peer
Port forwarding ต้องทำเอง ไม่จำเป็น

การติดตั้ง Tailscale

Linux

ติดตั้งด้วย script เดียว รองรับทุก distro หลัก

curl -fsSL https://tailscale.com/install.sh | sh

# เริ่ม Tailscale และ login
sudo tailscale up

# ดู IP ที่ได้รับ
tailscale ip -4

หลัง login ผ่าน browser แล้ว device จะปรากฏใน Tailscale admin console และได้รับ IP ในช่วง 100.x.x.x

Windows

ดาวน์โหลด installer จาก tailscale.com หรือใช้ winget

winget install tailscale.tailscale

หลังติดตั้ง icon จะปรากฏใน system tray คลิก "Log in" แล้ว authenticate ผ่าน browser

macOS

brew install tailscale

# หรือผ่าน Mac App Store
# ค้นหา "Tailscale" และติดตั้ง

Docker

รัน Tailscale เป็น container สำหรับ server ที่ต้องการ isolate

services:
  tailscale:
    image: tailscale/tailscale:latest
    container_name: tailscale
    hostname: my-homelab
    environment:
      - TS_AUTHKEY=${TS_AUTHKEY}
      - TS_STATE_DIR=/var/lib/tailscale
      - TS_USERSPACE=false
    volumes:
      - tailscale_state:/var/lib/tailscale
      - /dev/net/tun:/dev/net/tun
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    restart: unless-stopped

volumes:
  tailscale_state:

สร้าง auth key ใน Tailscale admin console ที่ Settings > Keys > Generate auth key

ACL Configuration

ค่าเริ่มต้น Tailscale อนุญาตให้ทุก device คุยกันได้หมด แต่ถ้าต้องการ restrict access ให้แก้ ACL (Access Control List)

{
  "groups": {
    "group:admin": ["user@gmail.com"],
    "group:family": ["member1@gmail.com", "member2@gmail.com"]
  },

  "acls": [
    // admin เข้าได้ทุกอย่าง
    {
      "action": "accept",
      "src": ["group:admin"],
      "dst": ["*:*"]
    },
    // family เข้าได้แค่บางพอร์ต
    {
      "action": "accept",
      "src": ["group:family"],
      "dst": ["tag:homelab:80,443,8096"]
    }
  ],

  "tagOwners": {
    "tag:homelab": ["group:admin"]
  }
}

Tailscale SSH

คุณสมบัติที่น่าสนใจมากคือ Tailscale SSH ที่ให้ SSH เข้า device ได้โดยไม่ต้องมี SSH key และจัดการ authentication ผ่าน Tailscale identity

# เปิด Tailscale SSH
sudo tailscale up --ssh

# SSH เข้า device ผ่าน Tailscale
ssh user@device-name
# หรือใช้ MagicDNS
ssh user@hostname.tailnet-name.ts.net

เพิ่ม SSH policy ใน ACL

{
  "ssh": [
    {
      "action": "accept",
      "src": ["group:admin"],
      "dst": ["tag:homelab"],
      "users": ["autogroup:nonroot", "root"]
    },
    // ต้อง check via Tailscale ก่อน SSH
    {
      "action": "check",
      "src": ["group:family"],
      "dst": ["tag:homelab"],
      "users": ["autogroup:nonroot"]
    }
  ]
}

Exit Nodes

Exit node ทำให้ traffic ของ device อื่นออกทาง network ของ device นั้น เหมือน VPN ปกติ เหมาะสำหรับกรณีต้องการ browse ผ่าน IP บ้าน ตอนอยู่ข้างนอก

# ตั้ง server เป็น exit node
sudo tailscale up --advertise-exit-node

# Approve exit node ใน admin console
# หรือด้วย tailscale CLI
tailscale set --exit-node-allow-lan-access=true

# บน client ที่จะใช้ exit node
sudo tailscale up --exit-node=100.x.x.x
# หรือระบุชื่อ
sudo tailscale up --exit-node=my-homeserver

Subnet Routing

Subnet routing ทำให้เข้าถึง device อื่นใน network บ้านได้โดยที่ device เหล่านั้นไม่ต้องติดตั้ง Tailscale เหมาะสำหรับ router, NAS, smart home device หรืออุปกรณ์ที่ไม่รองรับ Tailscale

# ประกาศ subnet ที่ต้องการ route
sudo tailscale up --advertise-routes=192.168.1.0/24

# เปิด IP forwarding
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

# Approve subnet ใน admin console
# Settings > Machines > Edit route settings

หลังจากนี้ device ใน tailnet สามารถเข้า 192.168.1.x ได้เลยผ่าน subnet router

MagicDNS

MagicDNS ทำให้เข้า device ด้วยชื่อแทน IP เช่น ssh user@my-server แทน ssh user@100.64.1.5

เปิดใช้งานได้ที่ admin console > DNS > Enable MagicDNS

ชื่อ device จะเป็น hostname.tailnet-name.ts.net หรือถ้าเปิด "Override local DNS" จะใช้แค่ hostname ได้เลย

# ทดสอบ MagicDNS
ping my-homeserver

# ดู DNS ที่ Tailscale ใช้
tailscale dns status

แชร์ Device กับเพื่อนหรือทีม

# Share device ผ่าน CLI
tailscale share --node=node-id --with=friend@gmail.com

# ดู devices ที่แชร์
tailscale status

หรือผ่าน admin console ไปที่ Machines > เลือก machine > Share แล้วใส่ email ของคนที่ต้องการแชร์ คนนั้นจะต้อง accept invitation ใน Tailscale app ของตัวเอง

เปรียบเทียบกับ WireGuard Manual Setup

WireGuard เป็น protocol ที่เร็วและ secure แต่การ setup manual ต้องทำเยอะกว่ามาก

# WireGuard manual - ต้องทำทุก device
wg genkey | tee privatekey | wg pubkey > publickey

# สร้าง config
cat > /etc/wireguard/wg0.conf << EOF
[Interface]
PrivateKey = $(cat privatekey)
Address = 10.0.0.1/24
ListenPort = 51820

[Peer]
PublicKey = peer-public-key-here
AllowedIPs = 10.0.0.2/32
EOF

sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0

กับ Tailscale ทำแค่ tailscale up ก็พอ แลกกับการที่ต้องพึ่ง Tailscale control plane ซึ่งเป็น service ของบริษัท ถ้าต้องการ self-host control plane ด้วยให้ดู Headscale ซึ่งเป็น open-source alternative

สำหรับการ secure server ที่ใช้ร่วมกับ Tailscale ดูได้ที่ Linux Server Hardening Checklist 2026 และถ้าต้องการ expose service ออก internet โดยไม่ใช้ Tailscale ลองอ่าน Cloudflare Tunnel สำหรับ Self-Hosting ด้วย

Headscale: Self-Hosted Control Plane

สำหรับคนที่ต้องการ control ทุกอย่าง Headscale เป็น self-hosted implementation ของ Tailscale control plane

# ติดตั้ง Headscale ด้วย Docker
services:
  headscale:
    image: headscale/headscale:latest
    container_name: headscale
    restart: unless-stopped
    ports:
      - "8080:8080"
      - "9090:9090"
    volumes:
      - ./headscale-config:/etc/headscale
      - headscale_data:/var/lib/headscale
    command: serve

volumes:
  headscale_data:

Client เชื่อมต่อ Headscale แทน Tailscale

tailscale up --login-server=https://headscale.yourdomain.com

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

Tailscale ฟรีไหม? มี limit อะไรบ้าง?

Plan ฟรีใช้ได้ 3 user, 100 device ต่อ user และทุก feature หลัก ยกเว้น SSO custom identity provider, audit logs และ priority support Plan Personal Plus ราคา $6/เดือน เพิ่ม custom DNS และ features อีกเล็กน้อย สำหรับ Home Lab plan ฟรีเกินพอ

Tailscale ปลอดภัยไหม? Traffic ผ่าน server Tailscale ไหม?

Traffic ไม่ผ่าน server Tailscale (ยกเว้นกรณีที่ NAT traversal ล้มเหลวต้องใช้ DERP relay) Tailscale ทำหน้าที่แค่ coordinate key exchange และ routing สัญญาณ ข้อมูลเข้ารหัสด้วย WireGuard end-to-end

ความเร็วลดลงไหมเมื่อใช้ Tailscale?

ถ้าเชื่อมต่อแบบ direct (peer-to-peer) overhead ต่ำมาก ใกล้เคียง WireGuard ปกติ ถ้าผ่าน DERP relay ความเร็วขึ้นอยู่กับ latency ไปยัง relay server ใกล้สุด ซึ่งมีอยู่หลายภูมิภาค

ใช้ Tailscale กับ Pi-hole ยังไง?

ตั้ง Pi-hole เป็น DNS server ใน Tailscale admin console ที่ DNS > Custom nameservers ใส่ IP ของ Pi-hole ใน tailnet (เช่น 100.x.x.x) แล้วทุก device ใน tailnet จะใช้ Pi-hole เป็น DNS

Tailscale ทำงานบน mobile ได้ไหม?

ทำงานได้บน iOS และ Android มี app ใน App Store และ Play Store แอปทำงาน background ได้และเชื่อมต่ออัตโนมัติเมื่อต้องการ

ถ้า Tailscale down จะเข้า server ไม่ได้ไหม?

ถ้าใช้ Tailscale SSH ต้องมี fallback access เช่น console access หรือ physical access ถ้า Tailscale control plane down การเชื่อมต่อที่มีอยู่แล้วยังทำงานได้ แต่สร้างการเชื่อมต่อใหม่ไม่ได้ แนะนำให้มี access method สำรองไว้เสมอ


Back to Blog | iCafe Forex | SiamLanCard | Siam2R

ปฏิทินข่าว Forex | Smart Money Concept

เทรดทองคำ XAU/USD | EA Semi-Auto ฟรี

TradingView ใช้ฟรี | ดาวน์โหลด EA ฟรี

TradingView ใช้ฟรี | Panel SMC MT5

กราฟทอง TradingView | EA Semi-Auto ฟรี

กราฟทอง TradingView | กลยุทธ์เทรดทอง

โค้ด EA Forex ฟรี | กลยุทธ์เทรดทอง

วิเคราะห์ทองคำ | ดาวน์โหลด EA ฟรี