เปรียบเทียบ NAT, NAT Network, Bridged และ Host-only ใน VirtualBox

เปรียบเทียบ NAT, NAT Network, Bridged และ Host-only ใน VirtualBox

ภาพที่ 1 เปรียบเทียบ NAT, NAT Network, Bridged และ Host-only 


ทำไม VM ต่อเน็ตได้ แต่ SSH เข้าไม่ได้

ใครที่เริ่มใช้งาน VirtualBox เพื่อทดลอง Ubuntu Server, Rocky Linux, Kali Linux หรือทำ Lab ระบบเครือข่าย มักเจอคำถามคลาสสิกว่า “ทำไม VM ต่อ Internet ได้ แต่เครื่อง Host SSH เข้า VM ไม่ได้” หรือ “ทำไม VM สองเครื่อง Ping กันไม่เจอ ทั้งที่ตั้งค่า Network แล้ว”

คำตอบส่วนใหญ่อยู่ที่การเลือก Network Mode ใน VirtualBox ครับ เพราะคำว่า NAT, NAT Network, Bridged และ Host-only ฟังดูคล้ายกัน แต่การใช้งานจริงต่างกันมาก โดยเฉพาะเรื่อง Internet, การติดต่อระหว่าง VM, การเข้าจากเครื่อง Host และการให้เครื่องอื่นในวง LAN เห็น VM

บทความนี้จะเปรียบเทียบแบบเข้าใจง่าย พร้อมตัวอย่างใช้งานจริงสำหรับ SysAdmin, ครูอาจารย์ นักศึกษา และผู้ที่ต้องทำ Lab Server บนเครื่องตัวเอง


Network Mode ใน VirtualBox สำคัญอย่างไร

VirtualBox เป็นโปรแกรม Virtualization ที่ช่วยให้เราสร้าง Virtual Machine หรือ VM หลายเครื่องบนคอมพิวเตอร์เครื่องเดียวได้ เช่น Ubuntu Server, Rocky Linux, Windows Server หรือ Kali Linux

แต่ VM จะทำงานเหมือน Server จริงได้หรือไม่ ขึ้นอยู่กับการตั้งค่า Network Adapter เป็นหลัก เพราะ Network Mode จะกำหนดว่า VM สามารถสื่อสารกับใครได้บ้าง เช่น

  • VM ออก Internet ได้หรือไม่

  • เครื่อง Host SSH เข้า VM ได้หรือไม่

  • VM เครื่องที่ 1 คุยกับ VM เครื่องที่ 2 ได้หรือไม่

  • เครื่องอื่นในวง LAN มองเห็น VM หรือไม่

  • VM เหมาะกับการทำ Lab ส่วนตัวหรือเปิดบริการให้คนอื่นทดสอบ

ใน VirtualBox โหมดที่ใช้บ่อยที่สุดมี 4 แบบ คือ NAT, NAT Network, Bridged Adapter และ Host-only Adapter


พื้นฐานที่จำเป็นก่อนเริ่ม

บทความนี้ทดสอบแนวคิดกับสภาพแวดล้อมตัวอย่างดังนี้

  • VirtualBox: 7.2.x

  • Host OS: Windows 11 / Linux Desktop / macOS

  • Guest OS: Ubuntu Server 26.04 หรือ Rocky Linux 10

  • VM ตัวอย่าง:

    • VM1: Ubuntu Server

    • VM2: Rocky Linux

  • ความรู้พื้นฐาน:

    • ใช้คำสั่ง ip a, ping, ssh ได้

    • เข้าเมนู Settings ของ VM ใน VirtualBox ได้

    • เข้าใจ IP Address เบื้องต้น เช่น 192.168.1.10/24

แนะนำ Screenshot:

  • หน้า Settings > Network ของ VirtualBox

  • หน้าจอคำสั่ง ip a ภายใน VM

  • ตัวอย่างการ Ping ระหว่าง Host กับ VM


ภาพรวมแบบเร็วที่สุด

ถ้าต้องการจำให้เร็ว ให้ดูแบบนี้ครับ

Mode ออก Internet Host เข้า VM VM คุยกัน เครื่องอื่นใน LAN เห็น VM เหมาะกับ
NAT ได้ ไม่ตรง ต้อง Port Forward ไม่เหมาะ ไม่เห็น VM เครื่องเดียว ออกเน็ต
NAT Network ได้ ต้อง Port Forward หรือ Route เพิ่ม ได้ ไม่เห็นโดยตรง Lab หลาย VM
Bridged ได้ ได้ ได้ เห็น VM เหมือนเครื่องจริง เปิด Server ในวง LAN
Host-only ไม่ได้โดยตรง ได้ ได้ ไม่เห็น Lab ปิดภายในเครื่อง

1. NAT — ง่ายที่สุดสำหรับ VM เครื่องเดียว

NAT เป็นโหมดเริ่มต้นของ VirtualBox หลายกรณี จุดเด่นคือ VM สามารถออก Internet ได้ทันที โดย VirtualBox จะทำหน้าที่คล้าย Router/NAT ให้ VM ใช้อินเทอร์เน็ตผ่านเครื่อง Host

ตัวอย่างภาพรวม

ภาพที่ 2 การทำงานของ NAT 

โดยปกติ VM ที่ใช้ NAT มักได้ IP ประมาณนี้

ip a

ตัวอย่างผลลัพธ์ที่อาจพบ:

inet 10.0.2.15/24

ข้อดีของ NAT คือใช้ง่ายมาก เหมาะกับการติดตั้ง Package, Update ระบบ หรือทดลอง VM เครื่องเดียว เช่น

# อัปเดตรายการแพ็กเกจบน Ubuntu
sudo apt update

# ทดสอบออก Internet
ping -c 4 google.com

แต่ข้อจำกัดสำคัญคือ เครื่อง Host หรือเครื่องอื่นใน LAN จะไม่สามารถเข้ามาหา VM ได้ตรง ๆ ถ้าต้องการ SSH เข้า VM ต้องตั้งค่า Port Forwarding

ตัวอย่างแนวคิด Port Forwarding:

Host Port 2222  --->  VM Port 22

หลังตั้งค่าแล้ว จากเครื่อง Host สามารถ SSH ได้ด้วยคำสั่ง:

# SSH เข้า VM ผ่าน Port Forwarding
ssh user@127.0.0.1 -p 2222

NAT เหมาะกับกรณีที่เราต้องการแค่ให้ VM ออก Internet เพื่อ update package, ติดตั้ง software หรือทดลองคำสั่ง Linux เบื้องต้น แต่ไม่เหมาะกับ Lab ที่ต้องมี VM หลายเครื่องคุยกัน


2. NAT Network — เหมาะกับ Lab หลาย VM ที่ต้องออก Internet

NAT Network คล้าย NAT แต่เพิ่มความสามารถสำคัญคือ VM หลายเครื่องที่อยู่ใน NAT Network เดียวกันสามารถคุยกันได้ และยังออก Internet ได้ด้วย

ตัวอย่างภาพรวม

ภาพที่ 3 การทำงานของ NAT Network

นี่คือโหมดที่เหมาะมากสำหรับทำ Lab เช่น

  • Ubuntu Server เป็น Web Server

  • Rocky Linux เป็น Database Server

  • Kali Linux ใช้ทดสอบ Security Lab แบบควบคุม

  • Node-RED, MQTT, Docker, Nginx, Apache ทำงานร่วมกันหลายเครื่อง

ตัวอย่างการสร้าง NAT Network ผ่าน GUI:

  1. เปิด VirtualBox

  2. ไปที่ Tools หรือ File > Tools

  3. เลือก Network Manager

  4. ไปที่แท็บ NAT Networks

  5. สร้าง Network ใหม่ เช่น lab-nat

  6. กำหนด Network CIDR เช่น 192.168.100.0/24

  7. เปิด DHCP ถ้าต้องการให้ VM รับ IP อัตโนมัติ

แนะนำ Screenshot:

  • หน้าสร้าง NAT Network

  • ค่า CIDR 192.168.100.0/24

  • VM1 และ VM2 เลือก Adapter เป็น NAT Network เดียวกัน

ถ้าต้องการใช้คำสั่ง VBoxManage สามารถทำได้เช่นกัน

# แสดง NAT Network ที่มีอยู่
VBoxManage list natnets
# สร้าง NAT Network ชื่อ lab-nat
VBoxManage natnetwork add \
  --netname lab-nat \
  --network "192.168.100.0/24" \
  --enable \
  --dhcp on
# เริ่มใช้งาน NAT Network
VBoxManage natnetwork start --netname lab-nat

หลังจากนั้นให้ไปที่ VM > Settings > Network แล้วเลือก

Attached to: NAT Network
Name: lab-nat

ภายใน VM ทดสอบด้วยคำสั่ง:

# ตรวจสอบ IP Address
ip a

# ทดสอบ Ping ระหว่าง VM
ping 192.168.100.11

# ทดสอบ Internet
ping -c 4 8.8.8.8

ข้อดีของ NAT Network คือทำ Lab หลายเครื่องได้ง่าย ปลอดภัยกว่า Bridged เพราะ VM ไม่ได้โผล่ออกไปเป็นเครื่องจริงในวง LAN โดยตรง แต่ข้อจำกัดคือ ถ้าต้องการให้ Host หรือเครื่องอื่นเข้ามาหา Service ใน VM อาจต้องตั้งค่า Port Forwarding เพิ่ม


3. Bridged Adapter — ให้ VM อยู่ในวง LAN เหมือนเครื่องจริง

Bridged Adapter เป็นโหมดที่ทำให้ VM เชื่อมเข้ากับ Network จริงของเครื่อง Host เช่น Wi-Fi หรือ Ethernet ทำให้ VM ได้ IP จาก Router จริงในวง LAN เดียวกับเครื่องอื่น

ตัวอย่างภาพรวม

ภาพที่ 4 การทำงานของ  Bridged Adapter

เมื่อใช้ Bridged Adapter ตัว VM จะดูเหมือนคอมพิวเตอร์อีกเครื่องหนึ่งในเครือข่ายจริง เช่น ถ้า Router แจก IP เป็น 192.168.1.0/24 VM ก็อาจได้ IP เช่น 192.168.1.50

โหมดนี้เหมาะกับกรณี:

  • ต้องการเปิด Web Server ใน VM ให้เครื่องอื่นในวง LAN เข้าได้

  • ต้องการให้มือถือทดสอบเว็บที่รันใน VM

  • สอน Server Lab ในห้องเรียน

  • ทดสอบ DNS, DHCP, Web Server, File Server ในวง LAN จริง

  • ทำ Demo ระบบให้เครื่องอื่นเข้ามาทดลอง

ตัวอย่างคำสั่งตรวจสอบ IP ใน VM:

# ตรวจสอบ IP ของ VM
ip a

ถ้า VM รัน Nginx:

# ติดตั้ง Nginx บน Ubuntu
sudo apt update
sudo apt install nginx -y

# ตรวจสอบสถานะบริการ
systemctl status nginx

จากเครื่องอื่นในวง LAN เปิด Browser ไปที่:

http://192.168.1.50

⚠️ ข้อควรระวัง: Bridged ทำให้ VM อยู่ในวง Network จริง ดังนั้นถ้าเปิด Service เช่น SSH, Apache, Nginx, Samba หรือ Database ควรตั้ง Firewall และรหัสผ่านให้เหมาะสม ไม่ควรเปิดบริการที่ไม่จำเป็นในเครือข่ายสาธารณะ เช่น Wi-Fi โรงแรม, Wi-Fi ร้านกาแฟ หรือ Wi-Fi ที่ไม่ไว้ใจ

ตัวอย่างเปิด Firewall เฉพาะ SSH และ HTTP บน Ubuntu:

# เปิดใช้งาน UFW
sudo ufw enable

# อนุญาต SSH
sudo ufw allow ssh

# อนุญาต HTTP
sudo ufw allow 80/tcp

# ตรวจสอบสถานะ Firewall
sudo ufw status

4. Host-only Adapter — เครือข่ายส่วนตัวระหว่าง Host กับ VM

Host-only Adapter เป็นโหมดที่สร้าง Network ส่วนตัวระหว่างเครื่อง Host กับ VM หรือระหว่าง VM หลายเครื่องภายในเครื่องเดียวกัน โดยไม่ออกไปยัง Internet โดยตรง

ตัวอย่างภาพรวม

ภาพที่ 5 การทำงานของ Host-only Adapter

โหมดนี้เหมาะกับการทำ Lab ที่ต้องการความปลอดภัยหรือแยกออกจาก Network จริง เช่น

  • ทดลอง SSH ระหว่าง Host กับ VM

  • ทดสอบ Web Server ภายในเครื่องตัวเอง

  • ทำ Lab Linux Networking

  • ทำ Lab Database โดยไม่ให้หลุดออกวง LAN

  • ทดสอบระบบก่อนเปิดใช้งานจริง

ข้อดีคือ Host เข้าหา VM ได้ง่าย เช่น SSH จากเครื่อง Host เข้า VM ได้โดยตรง

# SSH จาก Host เข้า VM ผ่าน Host-only IP
ssh user@192.168.56.10

ข้อจำกัดคือ VM จะไม่ออก Internet โดยตรง ถ้าต้องการทั้ง Internet และ Host-only แนะนำใช้ 2 Adapter ร่วมกัน

ตัวอย่างการตั้งค่าที่นิยมมาก:

Adapter 1: NAT        -> ใช้ออก Internet
Adapter 2: Host-only  -> ใช้ให้ Host SSH เข้า VM

นี่เป็นสูตรที่เหมาะกับผู้เริ่มต้นที่สุด เพราะได้ทั้ง Internet และการ Remote เข้า VM แบบง่าย

ใน VM จะเห็น Network Interface อย่างน้อย 2 ตัว เช่น

# แสดง Network Interface ทั้งหมด
ip a

ตัวอย่างที่อาจพบ:

enp0s3 = NAT
enp0s8 = Host-only

ถ้าต้องการกำหนด Static IP ให้ Host-only บน Ubuntu Server สามารถตั้งค่า Netplan ได้ เช่น

# เปิดไฟล์ Netplan
sudo nano /etc/netplan/01-netcfg.yaml

ตัวอย่างไฟล์:

network:
  version: 2
  ethernets:
    enp0s3:
      dhcp4: true
    enp0s8:
      addresses:
        - 192.168.56.10/24

จากนั้น Apply ค่า:

# ใช้ค่า Network ใหม่
sudo netplan apply

# ตรวจสอบ IP
ip a

⚠️ ก่อนแก้ไข Netplan ควรตรวจสอบชื่อ Interface ให้ถูกต้องด้วย ip a เพราะแต่ละ VM อาจใช้ชื่อ Interface ไม่เหมือนกัน เช่น enp0s3, enp0s8, ens33


ตารางเปรียบเทียบแบบใช้งานจริง

สถานการณ์ แนะนำใช้ Mode
ติดตั้ง Ubuntu Server แล้วต้องการ update package NAT
ทำ Lab 2–3 VM และต้องการให้ VM คุยกัน NAT Network
ต้องการให้มือถือหรือเครื่องอื่นใน LAN เข้าเว็บบน VM Bridged
ต้องการ SSH จาก Host เข้า VM แบบส่วนตัว Host-only
ต้องการ VM ออก Internet และ Host SSH เข้าได้ง่าย NAT + Host-only
ต้องการจำลอง Network ภายในห้องเรียน NAT Network หรือ Bridged
ต้องการความปลอดภัย ไม่ให้ VM โผล่ในวง LAN Host-only หรือ NAT Network
ต้องการให้ VM เหมือน Server จริงในวง LAN Bridged

ตัวอย่าง Lab แนะนำสำหรับผู้เริ่มต้น

Lab 1: VM เครื่องเดียวสำหรับเรียน Linux

ใช้โหมด:

Adapter 1: NAT

เหมาะสำหรับ:

  • ฝึกคำสั่ง Linux

  • ติดตั้ง Package

  • ทดลอง Docker

  • ทดลอง Nginx/Apache แบบภายใน VM

ข้อดีคือไม่ต้องตั้งค่าเยอะ VM ออก Internet ได้ทันที


Lab 2: VM ออกเน็ตได้ และ Host SSH เข้าได้

ใช้โหมด:

Adapter 1: NAT
Adapter 2: Host-only

เหมาะสำหรับ:

  • เรียน Ubuntu Server

  • เรียน Rocky Linux

  • ใช้ VS Code Remote SSH จาก Host เข้า VM

  • ทำ Lab Docker, Nginx, Apache

นี่เป็นรูปแบบที่แนะนำมากสำหรับนักศึกษาและผู้เริ่มต้น เพราะแยกหน้าที่ชัดเจน NAT ใช้ออก Internet ส่วน Host-only ใช้ Remote เข้าเครื่อง


Lab 3: Server Demo ในห้องเรียน

ใช้โหมด:

Adapter 1: Bridged Adapter

เหมาะสำหรับ:

  • เปิด Web Server ให้เพื่อนในห้องเข้า

  • ทดสอบระบบผ่านมือถือ

  • สาธิต Apache/Nginx/Node-RED

  • Demo ระบบ IoT Dashboard

ข้อควรระวังคือ VM จะอยู่ในวง LAN จริง ต้องดูแล Firewall ให้เรียบร้อย


Lab 4: Multi-Server Lab

ใช้โหมด:

Adapter 1: NAT Network

ตัวอย่าง:

VM1: Web Server      192.168.100.10
VM2: Database Server 192.168.100.11
VM3: Monitoring      192.168.100.12

เหมาะสำหรับ:

  • LAMP Stack แบบแยกเครื่อง

  • Prometheus + Grafana

  • Docker Swarm เบื้องต้น

  • Ansible Lab

  • DNS + Web Server Lab


ทดสอบและ Verify

หลังตั้งค่า Network Mode แล้ว ควรตรวจสอบ 4 จุดนี้เสมอ

1. ตรวจสอบ IP Address

# ดู IP และ Interface ทั้งหมด
ip a

ดูว่า VM ได้ IP จากวงที่คาดไว้หรือไม่ เช่น

  • NAT: มักเจอ 10.0.2.x

  • NAT Network: ตามวงที่เราสร้าง เช่น 192.168.100.x

  • Bridged: วงเดียวกับ Router จริง เช่น 192.168.1.x

  • Host-only: มักเป็นวงส่วนตัว เช่น 192.168.56.x

2. ทดสอบ Gateway หรือ Router

# ดู default route
ip route

ถ้ามี default route แปลว่ามีทางออกจาก VM ไป Network ภายนอก

3. ทดสอบ Internet

# ทดสอบออก Internet ด้วย IP
ping -c 4 8.8.8.8

# ทดสอบ DNS
ping -c 4 google.com

ถ้า Ping 8.8.8.8 ได้ แต่ Ping google.com ไม่ได้ มักเป็นปัญหา DNS

4. ทดสอบ SSH

# ตรวจสอบ SSH Server
systemctl status ssh

ถ้ายังไม่ได้ติดตั้ง SSH Server บน Ubuntu:

# ติดตั้ง OpenSSH Server
sudo apt update
sudo apt install openssh-server -y

# เปิดใช้งาน SSH
sudo systemctl enable --now ssh

จากเครื่อง Host ทดสอบ:

# SSH เข้า VM
ssh user@192.168.56.10

ปัญหาที่พบบ่อย

1. ใช้ NAT แล้ว SSH เข้า VM ไม่ได้

สาเหตุ: NAT ไม่เปิดให้ Host เข้า VM โดยตรง

วิธีแก้:

  • ตั้งค่า Port Forwarding

  • หรือเพิ่ม Adapter 2 เป็น Host-only

2. ใช้ Bridged แล้ว VM ไม่ได้ IP

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

  • เลือก Network Adapter ผิด เช่น เลือก Ethernet ทั้งที่ Host ใช้ Wi-Fi

  • Router ไม่แจก DHCP

  • Network มีการจำกัด MAC Address

  • Wi-Fi บางระบบไม่รองรับ Bridged ได้สมบูรณ์

วิธีแก้:

  • เลือก Adapter ให้ตรงกับที่ใช้งานจริง

  • ทดลองเปลี่ยนจาก Wi-Fi เป็น LAN

  • กำหนด Static IP ให้ VM

  • ใช้ NAT Network แทนถ้าเป็น Lab ภายใน

3. Host-only ออก Internet ไม่ได้

สาเหตุ: Host-only ถูกออกแบบให้เป็นวงส่วนตัวระหว่าง Host กับ VM

วิธีแก้:

  • เพิ่ม Adapter 1 เป็น NAT

  • ใช้ Adapter 2 เป็น Host-only

  • ไม่แนะนำให้ปิด Firewall เพื่อแก้ปัญหาแบบสุ่ม

4. VM Ping กันไม่ได้ใน NAT

สาเหตุ: NAT ปกติไม่ได้เหมาะสำหรับ VM-to-VM Communication

วิธีแก้:

  • เปลี่ยนเป็น NAT Network

  • หรือใช้ Host-only หากไม่ต้องออก Internet


สรุป

การเลือก Network Mode ใน VirtualBox ไม่ใช่แค่เลือกให้ VM ต่อ Internet ได้ แต่เป็นการกำหนดสถาปัตยกรรมเครือข่ายของ Lab ทั้งชุด

ถ้าต้องการง่ายที่สุด ใช้ NAT
ถ้าต้องการทำ Lab หลาย VM ใช้ NAT Network
ถ้าต้องการให้ VM เป็นเหมือนเครื่องจริงในวง LAN ใช้ Bridged
ถ้าต้องการเครือข่ายส่วนตัวระหว่าง Host กับ VM ใช้ Host-only
และถ้าต้องการสูตรที่ใช้งานได้ดีสำหรับผู้เริ่มต้น ให้ใช้ NAT + Host-only ร่วมกัน

สำหรับงาน SysAdmin จริง การเข้าใจ 4 โหมดนี้จะช่วยให้เราออกแบบ Lab ได้ปลอดภัยขึ้น ทดสอบระบบได้แม่นยำขึ้น และลดเวลาการแก้ปัญหา Network ของ VM ได้มากครับ



Write by Dr.Arnut Ruttanatirakul
SysAdmin Knowledge
https://www.sysadmin.in.th
June 13, 2026