
ภาพที่ 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:
-
เปิด VirtualBox
-
ไปที่ Tools หรือ File > Tools
-
เลือก Network Manager
-
ไปที่แท็บ NAT Networks
-
สร้าง Network ใหม่ เช่น
lab-nat -
กำหนด Network CIDR เช่น
192.168.100.0/24 -
เปิด 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
