กำหนด IP Address คงที่บน Ubuntu Server / Desktop (Netplan) | พร้อมวิธีเปลี่ยน, คืนค่า DHCP, รวมถึง Backup & Restore การตั้งค่า
ip aip link showls /sys/class/net/ens33 หรือ enp0s3 ส่วน Docker อาจมี eth0
ls /etc/netplan/00-installer-config.yaml หากไฟล์คุณชื่ออื่นให้เปลี่ยนตาม)sudo cp /etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml.baksudo cp /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.bak/etc/netplan/ เพื่อป้องกันความผิดพลาด
sudo cp /etc/netplan/00-installer-config.yaml.bak /etc/netplan/00-installer-config.yamlsudo netplan applyls /etc/netplan/*.bak เพื่อดู และเลือกกู้คืนจากไฟล์ .bak ที่ต้องการ จากนั้น sudo netplan apply ทันที
sudo netplan try หากใช้ Static แล้วเน็ตหลุด, รอ 120 วินาทีระบบจะ revert อัตโนมัติ — แต่การมี Backup ช่วยให้ Restore มั่นคงกว่า
sudo nano /etc/netplan/00-installer-config.yamlnetwork:
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 ให้เหมาะสมกับเน็ตเวิร์คของคุณ
network:
version: 2
ethernets:
enp0s3:
dhcp4: true
sudo netplan trysudo netplan applyip a | grep -A 2 ens33sudo netplan try ระบบจะถามยืนยัน ถ้าไม่ตอบกลับภายใน 120 วินาที会自动 revert (ปลอดภัย) — เหมาะกับการทดสอบ Static IP
ip route show defaultping -c 4 192.168.1.1ping -c 4 google.comresolvectl statussudo nano /etc/netplan/00-installer-config.yamldhcp4: yes และลบ addresses, routes, nameservers ออกnetwork:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: yes
sudo netplan applyaddresses เป็น IP ใหม่ แล้ว sudo netplan apply ได้ทันที โดยไม่ต้องรีบูต
50-cloud-init.yaml ให้แก้ไขไฟล์นั้นแทน และควร backup ก่อนเสมอsudo nano /etc/netplan/50-cloud-init.yamlsudo cp /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.baksudo netplan --debug applysystemctl status systemd-networkdjournalctl -u systemd-networkd --since "5 minutes ago"arp -nsudo cp /etc/netplan/*.bak /etc/netplan/ 2>/dev/null; sudo netplan apply