
Ubuntu server 18.04 config static IP with netplan
เดิมก่อนหน้า Ubuntu server 18.04 LTS จะออกมาให้ใช้งานกันนั้น จะเป็น Ubuntu server 16.04 LTS เราตั้งค่า (config) static IP ให้กับ server ด้วยไฟล์นี้ /etc/network/interfaces ซึ่งก็คือ software package ชื่อ ifupdown และ DNS resolver ที่ใช้ก็คือ resolvconf แต่ใน Ubuntu server 18.04 นี้ เปลี่ยนไปใช้ package ชื่อ netplan แก้ไขที่ไฟล์ /etc/netplan/01-netcfg.yaml และใช้ DNS resolver คือ systemd-resolve ซึ่งจะ connect สอบถามชื่อ DNS จาก internal DNS ที่ IP 127.0.0.53 (ตรวจดูด้วยคำสั่ง cat /etc/resolv.conf) โดย default จะเป็นค่า network interface แบบ รับค่า IP มาจาก DHCP server ไฟล์ /etc/netplan/01-netcfg.yaml network: version: 2 renderer: networkd ethernets: enp0s3: dhcp4: yes dhcp6: yes หากต้องการใช้เลข IP แบบ Static IP ก็ต้องตั้งค่าเองในแฟ้ม /etc/netplan/01-netcfg.yaml เป็นตัวอย่างประมาณว่า IP คือ 10.0.100.251 ใน class C (/24) มี gateway คือ 10.0.100.1 ทำหน้าที่ nameserver ด้วย และมี nameserver ที่สองคือ 192.100.77.10 network: version: 2 renderer: networkd ethernets: enp0s3: dhcp4: no addresses: [ 10.0.100.251/24 ] gateway4: 10.0.100.1 nameservers: addresses: – 10.0.100.1 – 192.100.77.10 หลังจากแก้ไขค่าเสร็จแล้ว สั่งให้ network ทำงานใหม่ ใช้คำสั่ง sudo netplan apply ถ้าตอนนี้ใช้ netplan version 0.36.3 เราสามารถตั้งชื่อ network interface เป็นชื่อ vif1 แทน physical network interface เดิม ก่อนอื่น ให้ใช้คำสั่ง ifconfig เพื่อดูค่า MAC address ของ enp0s3 สมมติคือ 44:bb:33:85:91:08 ตัวอย่างการแก้ไขข้อมูล network: version: 2 renderer: networkd ethernets: vif1: match: macaddress: “44:bb:33:85:91:08” set-name: vif1 dhcp4: no addresses: [ 10.0.100.251/24 ] gateway4: 10.0.100.1 nameservers: addresses: – 10.0.100.1 – 192.100.77.10 หลังจากแก้ไขค่าเสร็จแล้ว ใช้คำสั่ง sudo reboot หลาย ๆ คน อาจจะอยากตั้งชื่อ network interface เป็นชื่อ eth0