วิธีตั้งค่า IP ถาวร บน Ubuntu 20.04 LTS Server ด้วย Netplan
เผยแพร่ วันที่ 25 กันยายน 2566 โดย Chatbordin
Preview
โดยทั่วไปแล้ว การกำหนด IP ให้กับเครื่องคอมพิวเตอร์จะใช้วิธีการ DHCP ซึ่งเราเตอร์จะเป็นผู้กำหนด IP ให้กับเครื่องคอมพิวเตอร์โดยอัตโนมัติ แต่หากเราต้องการให้ IP ของเครื่องคอมพิวเตอร์เป็นค่าเดิมเสมอ หรือเรียกอีกอย่างว่า Static IP เราสามารถกำหนด IP ให้กับเครื่องคอมพิวเตอร์ได้ด้วยวิธีการต่อไปนี้
สิ่งที่ต้องเตรียม
1. คอมพิวเตอร์ที่มีระบบปฏิบัติการ Ubuntu 20.04 LTS Server
2. การใช้คำสั่ง 'sudo' ในการเข้าถึงสิทธิ์ root บนระบบปฏิบัติการ Ubuntu
2. การใช้คำสั่ง 'sudo' ในการเข้าถึงสิทธิ์ root บนระบบปฏิบัติการ Ubuntu
ขั้นตอนการตั้งค่า
Step 1: ตรวจสอบข้อมูลเครือข่าย
1.1) ใช้คำสั่งip aเพื่อดูข้อมูลเครือข่ายของเครื่องคอมพิวเตอร์
ซึ่งจะได้ข้อมูลคล้ายดังรูปนี้ (รูปตัวอย่างเป็นรูปที่ถูกตั้งค่า IP ถาวรแล้ว หากยังไม่ถูกตั้งค่า valid_lft และ preferred_lft จะเป็นระยะเวลาคงเหลือในรูปแบบ xxxxsec)

Preview
ip a
1.2) จากรูปจะเห็นว่าชื่ออุปกรณ์ของผมคือ wlx1cbfce222378 (ซึ่งเป็น wifi ถ้าต่อสายแลนปกติจะเป็น eth0)
3: wlx1cbfce222378: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 1c:bf:ce:22:23:78 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.165/24 brd 192.168.1.255 scope global dynamic noprefixroute wlx1cbfce222378
valid_lft 68275sec preferred_lft 68275sec
inet6 fe80::6661:5c7e:aa38:9144/64 scope link noprefixroute
valid_lft forever preferred_lft foreverip a
เราจะเห็นว่า IP ของเครื่องคอมพิวเตอร์ของผมคือ 192.168.1.165
ซึ่งถูกกำหนดมาอัตโนมัติโดย DHCP และมีบิตสำรองของเครือข่ายคือ 24 ให้จด ชื่ออุปกรณ์ และ เลขบิตสำรองของเครือข่ายไว้
Preview
Step 2: ทำการตั้งค่าเครือข่ายด้วย Netplan
Netplan เป็นเครื่องมือการจัดการเครือข่ายตัวพื้นฐานสำหรับ Ubuntu ไฟล์ตั้งค่าสำหรับ Netplan จะลงท้ายด้วยนามสกุล .yaml
ข้อควรระวัง: ควรระวังช่องว่างในไฟล์ตั้งค่าเนื่องจากเป็นส่วนหนึ่งของไวยากรณ์ หากไม่มีการเว้นวรรคที่ถูกต้อง Netplan จะไม่สามารถใช้งานไฟล์ตั้งค่าได้
2.1) ใช้คำสั่งls /etc/netplan เพื่อดูไฟล์ตั้งค่าเดิมที่มีอยู่ หากไม่พบไฟล์ใดๆ ให้สร้างไฟล์ใหม่โดยใช้ชื่อที่เริ่มต้นด้วยตัวเลข เช่น 01- และลงท้ายด้วย .yaml ตัวเลขดังกล่าวใช้เพื่อกำหนดลำดับความสำคัญของไฟล์ หากมีไฟล์ตั้งค่ามากกว่าหนึ่งไฟล์
2.2) ผมจะสร้างไฟล์ตั้งค่าใหม่ด้วยชื่อ 01-network-manager-all.yaml ดังนั้นให้ใช้คำสั่ง sudo nano /etc/netplan/01-network-manager-all.yaml และใส่ข้อมูลดังนี้
network: version: 2
ไฟล์ 01-network-manager-all.yaml
ความหมายคือ network ที่เป็น version: 2 (ใช้รูปแบบการตั้งค่าเวอร์ชัน 2)
2.4) เพิ่มชนิดของตัวเรนเดอร์ (renderer) โดยปกติจะมีให้เลือกเป็น networkd และ NetworkManager และชนิดของเครือข่าย (wifis หรือ ethernets หรือ modems หรือ bridges) ตามด้วยชื่ออุปกรณ์ในข้อ 1.2
network:
version: 2
renderer: networkd
wifis:
wlx1cbfce222378:ไฟล์ 01-network-manager-all.yaml
2.5) เนื่องจากเรากำลังตั้งค่า IP ถาวร และไม่ต้องการกำหนด IP ดังนั้น เราจะตั้งค่า dhcp4 เป็น false (หากต้องการกำหนด IP แบบไดนามิกให้ใช้ true) โดยเลข 4 หมายถึง IPv4
network:
version: 2
renderer: networkd
wifis:
wlx1cbfce222378:
dhcp4: falseไฟล์ 01-network-manager-all.yaml
2.6) ในที่นี้เราจะเลือก IP ถาวรเป็น 192.168.1.166 ทับด้วยเลข 24 ซึ่งเป็นเลขบิตสำรองที่เราจดไว้ในตอนแรก และเลือกเกตเวย์เป็น 192.168.1.1 ตาม IP เราเตอร์ของเรา
network:
version: 2
renderer: networkd
wifis:
wlx1cbfce222378:
dhcp4: false
addresses:
- 192.168.1.165/24
routes:
- to: default
via: 192.168.1.1ไฟล์ 01-network-manager-all.yaml
2.7) ต่อมากำหนด nameservers ซึ่งเป็น DNS server ที่หนึ่ง และ DNS server ที่สองเพื่อใช้สำรอง ในที่นี้ผมใช้ 8.8.8.8 ซึ่งเป็นของ Google และ 8.8.8.4 ซึ่งเป็นเซิร์ฟเวอร์สำรองของ Google
คุณสามารถเปลี่ยนค่า nameservers เป็นค่าอื่นได้ตามความต้องการ โดยสามารถดูของเจ้าอื่นๆได้ที่ https://www.google.com/search?q=dns+server+list
network:
version: 2
renderer: networkd
wifis:
wlx1cbfce222378:
dhcp4: false
addresses:
- 192.168.1.165/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.8.4]ไฟล์ 01-network-manager-all.yaml
2.8) ในกรณีการเชื่อมต่อเครือข่ายผ่าน Wifi เราจะต้องกำหนดชื่อ SSID (หรือชื่อ Wifi) และรหัสผ่านด้วย
network:
version: 2
renderer: networkd
wifis:
wlx1cbfce222378:
dhcp4: false
addresses:
- 192.168.1.165/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.8.4]
access-points:
"ชื่อ Wifi":
password: "รหัสผ่าน"ไฟล์ 01-network-manager-all.yaml
2.9) หลังจากนั้นให้กด Ctrl + X เพื่อออกจากการแก้ไข และกด Y เพื่อยืนยันการบันทึก
2.10) ใช้คำสั่งsudo netplan tryเพื่อทดสอบไฟล์ที่เราแก้ไขว่ามีข้อผิดพลาดหรือไม่ ระยะเวลาในการโหลดอาจช้าหรือเร็ว ขึ้นอยู่กับสเปคของเครื่องและความเร็วของเครือข่าย และกด Enter เพื่อยืนยัน
2.11) หากไม่มีข้อผิดพลาดให้ใช้คำสั่งsudo netplan applyเพื่อทำการบันทึกการตั้งค่าและใช้งาน
2.12) ใช้คำสั่งip a เพื่อดูข้อมูลเครือข่าย และตรวจสอบว่า IP ถูกตั้งค่าถูกต้องหรือไม่ จากรูปจะเห็นว่าเลข IP ใหม่ถูกตั้งค่าแล้ว

Preview
ip a
Step 3: ใช้คำสั่งping google.com เพื่อทดสอบการเชื่อมต่อกับเครือข่าย
หากสำเร็จจะแสดงผลดังรูป

Preview
ping google.com
