ตั้งค่า Fix IP (Static IP)

กำหนด IP Address คงที่บน Ubuntu Server / Desktop (Netplan) | พร้อมวิธีเปลี่ยน, คืนค่า DHCP, รวมถึง Backup & Restore การตั้งค่า

Ubuntu 18.04 - 24.04 Netplan + YAML Backup / Restore
1
ตรวจสอบชื่อ Network Interface
🖧 ก่อนตั้งค่า Static IP ให้ดูว่าอินเทอร์เฟซที่ใช้งานชื่ออะไร (เช่น eth0, ens33, enp0s3)
ip a
ip link show
ls /sys/class/net/
ตัวอย่าง: บน VM มักเป็น ens33 หรือ enp0s3 ส่วน Docker อาจมี eth0
2
สำรอง (Backup) และ กู้คืน (Restore) ค่า Netplan
📦 ก่อนแก้ไข config ใดๆ ให้ทำการสำรองไฟล์ Netplan เสมอ และหากตั้งค่า Static IP แล้วเกิดปัญหาหรือต้องการกลับไปใช้ config เดิม สามารถกู้คืนจากไฟล์สำรองได้ทันที
🔍 1. ดูชื่อไฟล์ Netplan ปัจจุบัน
ls /etc/netplan/
💾 2. สำรองไฟล์ (ตัวอย่างใช้ 00-installer-config.yaml หากไฟล์คุณชื่ออื่นให้เปลี่ยนตาม)
sudo cp /etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml.bak
sudo cp /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.bak
สำคัญ: ควรสำรอง ทุกไฟล์ .yaml ที่พบใน /etc/netplan/ เพื่อป้องกันความผิดพลาด
♻️ 3. คืนค่า (Restore) Netplan จาก Backup — เมื่อใดก็ตามที่ Static IP ใช้ไม่ได้ หรืออยากกลับไปใช้ config เดิม (DHCP หรือ static ก่อนหน้า)
sudo cp /etc/netplan/00-installer-config.yaml.bak /etc/netplan/00-installer-config.yaml
sudo netplan apply
เคล็ดลับ Restore แบบเร็ว: หากคุณจำชื่อไฟล์สำรองไม่ได้ ให้ใช้ ls /etc/netplan/*.bak เพื่อดู และเลือกกู้คืนจากไฟล์ .bak ที่ต้องการ จากนั้น sudo netplan apply ทันที
ข้อแนะนำ: ก่อนปรับเป็น Static IP ทุกครั้ง ควรทำ Backup แล้วสามารถทดสอบด้วย sudo netplan try หากใช้ Static แล้วเน็ตหลุด, รอ 120 วินาทีระบบจะ revert อัตโนมัติ — แต่การมี Backup ช่วยให้ Restore มั่นคงกว่า
3
แก้ไข Netplan กำหนด Static IP (Fix IP)
📝 เปิดไฟล์ Netplan ด้วย nano และใส่ค่า IP, Gateway, DNS (ตัวอย่างใช้ ens33)
sudo nano /etc/netplan/00-installer-config.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    ens33:               # เปลี่ยนเป็นชื่อ interface ของคุณ
      dhcp4: no
      addresses:
        - 192.168.1.199/24    # IP คงที่ / subnet mask
      routes:
        - to: default
          via: 192.168.1.1     # Gateway
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4
สำคัญ: เปลี่ยน ens33 ให้ตรงกับชื่อ interface ของคุณ และปรับ addresses, via ให้เหมาะสมกับเน็ตเวิร์คของคุณ
📌 ส่วนเดิมที่อาจเป็น DHCP: หากไฟล์เดิมเป็น DHCP ให้แก้ตามตัวอย่างด้านบน
network:
  version: 2
  ethernets:
    enp0s3:
      dhcp4: true
4
ทดสอบและใช้การตั้งค่า Netplan
⚙️ ก่อน Apply ให้ตรวจสอบ syntax ก่อน แล้วจึง netplan apply
sudo netplan try
sudo netplan apply
ip a | grep -A 2 ens33
หากใช้ sudo netplan try ระบบจะถามยืนยัน ถ้าไม่ตอบกลับภายใน 120 วินาที会自动 revert (ปลอดภัย) — เหมาะกับการทดสอบ Static IP
5
ตรวจสอบ Gateway & DNS
📡 หลังจาก set static IP ให้ทดสอบ ping gateway และ internet
ip route show default
ping -c 4 192.168.1.1
ping -c 4 google.com
resolvectl status
🔄
เปลี่ยน IP หรือคืนค่า DHCP
🛠️ ถ้าต้องการปรับเปลี่ยน IP คงที่อีกครั้ง หรือเปลี่ยนกลับเป็น DHCP (รับ IP อัตโนมัติ)
sudo nano /etc/netplan/00-installer-config.yaml
✅ คืนค่า DHCP: แก้ไข section ให้เป็น dhcp4: yes และลบ addresses, routes, nameservers ออก
network:
  version: 2
  renderer: networkd
  ethernets:
    ens33:
      dhcp4: yes
sudo netplan apply
การเปลี่ยน IP แบบ static สามารถแก้ addresses เป็น IP ใหม่ แล้ว sudo netplan apply ได้ทันที โดยไม่ต้องรีบูต
☁️
กรณี VPS / Cloud (AWS, DigitalOcean)
📌 สำหรับเซิร์ฟเวอร์คลาวด์บางที่อาจมี 50-cloud-init.yaml ให้แก้ไขไฟล์นั้นแทน และควร backup ก่อนเสมอ
sudo nano /etc/netplan/50-cloud-init.yaml
sudo cp /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.bak
ข้อควรระวัง: บนคลาวด์ การตั้ง Static IP อาจต้องกำหนด IP ในพอร์ทัลของผู้ให้บริการก่อนเสมอ และควรใช้ netplan try เพื่อไม่ให้เซสชันหลุด
🔍
คำสั่งวินิจฉัย & Restore ด่วน
🩺 ตรวจสอบ Routing, ARP และรีสตาร์ท Netplan พร้อมคำสั่งคืนค่าเร็ว (กรณี static ผิด)
sudo netplan --debug apply
systemctl status systemd-networkd
journalctl -u systemd-networkd --since "5 minutes ago"
arp -n
คืนค่าการตั้งค่าทั้งหมดกลับไปเป็น Backup ฉบับล่าสุดใน 2 คำสั่ง:
sudo cp /etc/netplan/*.bak /etc/netplan/ 2>/dev/null; sudo netplan apply
คำสั่งด้านบนจะคัดลอกไฟล์ .bak ทุกไฟล์กลับมาเป็น .yaml และ apply ทันที (หากมี backup สำรองไว้แล้ว) — รวดเร็วสำหรับกรณีจำไม่ได้ว่าไฟล์ชื่ออะไร
✅ คัดลอกคำสั่งสำเร็จ