ค้นหาเว็บไซต์

24 คำสั่ง "IP" ที่มีประโยชน์เพื่อกำหนดค่าอินเทอร์เฟซเครือข่าย


โดยย่อ: ในคู่มือนี้ เราจะพูดถึงตัวอย่างการใช้งานจริงของคำสั่ง ip ในตอนท้ายของคู่มือนี้ ผู้ใช้จะสามารถทำงานด้านเครือข่ายได้อย่างมีประสิทธิภาพใน Linux จากอินเทอร์เฟซบรรทัดคำสั่ง

ผู้ดูแลระบบมักจำเป็นต้องทำงานด้านเครือข่ายบนเซิร์ฟเวอร์ Linux มีเครื่องมือกราฟิกและบรรทัดคำสั่งมากมายในตลาด อย่างไรก็ตาม ผู้ใช้ Linux ส่วนใหญ่นิยมใช้ คำสั่ง ip เนื่องจากความเรียบง่ายและฟังก์ชันการทำงานที่หลากหลาย

คำสั่ง ip คือยูทิลิตีบรรทัดคำสั่งเครือข่ายใหม่ที่ใช้ในการกำหนดที่อยู่ IP ให้กับอินเทอร์เฟซเครือข่าย หรือกำหนดค่า/อัปเดตตัวแปรเครือข่ายที่มีประโยชน์บนระบบ Linux

มันเป็นส่วนหนึ่งของแพ็คเกจ iproute2 และมีงานการดูแลระบบเครือข่ายหลายอย่าง เช่น การเปิดขึ้นหรือลงอินเทอร์เฟซเครือข่าย การกำหนดและการลบที่อยู่ IP และเส้นทาง การจัดการแคช ARP และอื่นๆ อีกมากมาย

คำสั่ง ip คล้ายกับคำสั่ง ifconfig แบบเก่ามาก แต่มีประสิทธิภาพมากกว่ามากด้วยฟังก์ชันและความสามารถที่เพิ่มเข้ามา

คำสั่ง ifconfig เลิกใช้แล้วและแทนที่ด้วย คำสั่ง ip ใน Linux รุ่นใหม่ทั้งหมด อย่างไรก็ตาม คำสั่ง ifconfig ยังคงใช้งานได้และพร้อมใช้งานสำหรับ Linux ส่วนใหญ่

หมายเหตุ: โปรดสำรองข้อมูลไฟล์การกำหนดค่าก่อนที่จะทำการเปลี่ยนแปลงใดๆ

1. กำหนดค่าที่อยู่ IP แบบคงที่อย่างถาวรใน Linux

หากต้องการกำหนดค่าที่อยู่ IP แบบคงที่อย่างถาวรใน Linux คุณต้องอัปเดตหรือแก้ไขไฟล์การกำหนดค่าเครือข่ายเพื่อกำหนดที่อยู่ IP แบบคงที่ให้กับระบบ คุณต้องเป็นผู้ใช้ระดับสูงที่มีคำสั่ง su (สลับผู้ใช้) จากเทอร์มินัลหรือพรอมต์คำสั่ง

ตั้งค่าที่อยู่ IP แบบคงที่ในระบบ RHEL

เปิดและแก้ไขไฟล์การกำหนดค่าเครือข่ายสำหรับ (eth0 หรือ eth1) โดยใช้โปรแกรมแก้ไขข้อความที่คุณชื่นชอบ ตัวอย่างเช่น การกำหนดที่อยู่ IP ให้กับอินเทอร์เฟซ eth0 ดังต่อไปนี้ในการแจกแจงแบบอิง RHEL

vi /etc/sysconfig/network-scripts/ifcfg-eth0     [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]

ตั้งค่าที่อยู่ IP แบบคงที่ในระบบ Debian

ในการกำหนดค่าที่อยู่ IP แบบคงที่ถาวร คุณจะต้องแก้ไขไฟล์การกำหนดค่าอินเทอร์เฟซเครือข่ายของคุณ /etc/network/interfaces เพื่อทำการเปลี่ยนแปลงถาวรดังที่แสดงด้านล่างสำหรับการแจกแจงแบบ Debian

sudo nano /etc/network/interfaces     [On Debian, Ubuntu and Mint]

จากนั้นรีสตาร์ทบริการเครือข่ายหลังจากป้อนรายละเอียดทั้งหมดโดยใช้คำสั่งต่อไปนี้

sudo systemctl restart networking

2. กำหนดค่าที่อยู่ IP แบบคงที่ชั่วคราวใน Linux

สำหรับการกำหนดค่าเครือข่ายชั่วคราว คุณสามารถใช้ คำสั่ง ip เพื่อกำหนดที่อยู่ IP ให้กับอินเทอร์เฟซเฉพาะ (eth2) ได้ทันที

ip addr add 172.19.1.10/24 dev eth2
OR
sudo ip addr add 172.19.1.10/24 dev eth2

หมายเหตุ: ขออภัย การตั้งค่าทั้งหมดเหล่านี้จะหายไปหลังจากการรีสตาร์ทระบบ

3. วิธีแสดงอินเทอร์เฟซเครือข่ายทั้งหมด

ใน คำสั่ง ip วัตถุลิงก์แสดงถึงอินเทอร์เฟซเครือข่าย เราสามารถใช้คำสั่ง show เพื่อแสดงอินเทอร์เฟซเครือข่ายทั้งหมด

ตอนนี้เรามาแสดงอินเทอร์เฟซเครือข่ายทั้งหมดโดยใช้คำสั่งต่อไปนี้:

ip link show

ผลลัพธ์ด้านบนแสดงรายละเอียดของอินเทอร์เฟซเครือข่ายทั้งหมด เช่น ชื่ออินเทอร์เฟซ ธง สถานะ ที่อยู่ลิงก์ ที่อยู่การออกอากาศ ฯลฯ

4. วิธีตรวจสอบที่อยู่ IP ของอินเทอร์เฟซเครือข่ายเฉพาะ

หากต้องการรับข้อมูลเชิงลึกของอินเทอร์เฟซเครือข่ายส่วนบุคคลของคุณ เช่น ข้อมูลที่อยู่ IP และข้อมูลที่อยู่ MAC ให้ใช้คำสั่งต่อไปนี้ดังที่แสดงด้านล่าง

ip link show eth2

จนถึงตอนนี้เราใช้วัตถุลิงค์แสดงข้อมูลรายละเอียดเกี่ยวกับอินเทอร์เฟซเครือข่าย อย่างไรก็ตาม จะไม่แสดงที่อยู่ IP ที่เชื่อมโยงกับอินเทอร์เฟซเครือข่าย เพื่อเอาชนะข้อจำกัดนี้ เราสามารถใช้วัตถุ addr กับคำสั่ง ip

มาทำความเข้าใจสิ่งนี้ด้วยตัวอย่าง

ip addr show

ที่นี่เราจะเห็นได้ว่าตอนนี้เอาต์พุตจะแสดงที่อยู่ IP ของอินเทอร์เฟซเครือข่ายทั้งหมดพร้อมกับรายละเอียดอื่น ๆ

ในการแสดงที่อยู่ IP ของอินเทอร์เฟซเครือข่ายแต่ละรายการ เพียงแค่ต้องระบุชื่ออินเทอร์เฟซเครือข่ายเป็นอาร์กิวเมนต์ของคำสั่ง

ip addr show eth2

5. วิธีแสดงที่อยู่ IP ในเอาต์พุตสี

คำสั่ง ip แสดงข้อมูลโดยละเอียดเกี่ยวกับออบเจ็กต์เครือข่าย อย่างไรก็ตาม บางครั้งเราจำเป็นต้องดูข้อมูลที่จำกัด ในกรณีเช่นนี้ เราสามารถเปิดใช้งานเอาต์พุตที่เป็นสีได้ ตัวเลือกนี้จะเน้นรายละเอียดที่สำคัญด้วยสีต่างๆ

ลองใช้ตัวเลือก --color ของคำสั่งเพื่อแสดงผลลัพธ์ในสีต่างๆ:

ip --color addr show eth2

ในผลลัพธ์ข้างต้น เราจะเห็นว่าชื่ออินเทอร์เฟซ ที่อยู่อีเธอร์เน็ต และสถานะถูกเน้นด้วยสีที่ต่างกัน

6. วิธีแสดงที่อยู่ IP ในรูปแบบ JSON

ในตัวอย่างก่อนหน้านี้ เราเห็นว่า คำสั่ง ip แสดงข้อมูลที่มีความหมาย อย่างไรก็ตาม ไม่ใช่เรื่องง่ายที่จะแยกวิเคราะห์เอาต์พุตดิบและแยกข้อมูลที่มีความหมายโดยใช้สคริปต์พื้นฐาน ในกรณีเช่นนี้ เราสามารถสั่งให้ คำสั่ง ip สร้างเอาต์พุตในรูปแบบ JSON ได้

ลองใช้ตัวเลือก -j กับคำสั่งเพื่อแสดงเอาต์พุตเดียวกันในรูปแบบ JSON:

ip -j link show eth2

วิธีนี้มีประโยชน์ในขณะที่ทำงานอัตโนมัติเนื่องจาก JSON เป็นรูปแบบที่ได้รับการยอมรับอย่างกว้างขวาง และมีไลบรารี/เครื่องมือตัวแยกวิเคราะห์ JSON มากมายในภาษาการเขียนโปรแกรมต่างๆ

7. วิธีทำให้เอาท์พุต JSON อ่านง่ายขึ้น

ในตัวอย่างก่อนหน้านี้ เราใช้ตัวเลือก -j เพื่อแสดงเอาต์พุตในรูปแบบ JSON รูปแบบ JSON เริ่มต้นนี้มีขนาดกะทัดรัดและประหยัดพื้นที่ อย่างไรก็ตาม ผลลัพธ์ที่ได้นั้นอ่านได้ไม่ง่ายนักเนื่องจากไม่มีการเยื้อง

เพื่อเอาชนะข้อจำกัดนี้ เราสามารถใช้ตัวเลือก -p ซึ่งทำให้เอาต์พุตอ่านได้ง่ายขึ้นโดยการเยื้อง มาทำความเข้าใจสิ่งนี้ด้วยตัวอย่างด้านล่าง:

ip -j -p link show eth2

ที่นี่เราจะเห็นได้ว่าเอาต์พุตเดียวกันนั้นสามารถอ่านได้ง่ายกว่ามากเมื่อเทียบกับตัวอย่างก่อนหน้านี้

8. วิธีลบที่อยู่ IP ออกจากอินเทอร์เฟซเครือข่าย

ในตัวอย่างก่อนหน้านี้ เราใช้คำสั่งย่อย add เพื่อกำหนดที่อยู่ IP ในทำนองเดียวกัน เราสามารถใช้คำสั่งย่อย del เพื่อลบที่อยู่ IP ที่เฉพาะเจาะจงได้

คำสั่งต่อไปนี้จะลบที่อยู่ IP ที่กำหนดออกจากอินเทอร์เฟซที่กำหนด (eth2)

ip addr del 172.19.1.10/24 dev eth2
OR
sudo ip addr del 172.19.1.10/24 dev eth2

ตอนนี้มาตรวจสอบว่าที่อยู่ IP ถูกลบแล้ว:

ip -j -p addr show eth2

ในผลลัพธ์ด้านบน เราจะเห็นว่าขณะนี้อินเทอร์เฟซเครือข่าย eth2 มีที่อยู่ IP เดียวเท่านั้น

9. วิธีเปิดใช้งานอินเทอร์เฟซเครือข่าย

ธง “ขึ้น” พร้อมชื่ออินเทอร์เฟซ (eth2) เปิดใช้งานอินเทอร์เฟซเครือข่าย ตัวอย่างเช่น คำสั่งต่อไปนี้จะเปิดใช้งานอินเทอร์เฟซเครือข่าย eth2

ip link set eth2 up
OR
sudo ip link set dev eth2 up

ตอนนี้เรามาตรวจสอบสถานะที่อัปเดตกัน:

ip -j -p link show eth2 | grep operstate

10. วิธีปิดการใช้งานอินเทอร์เฟซเครือข่าย

การตั้งค่าสถานะ “ลง ” พร้อมชื่ออินเทอร์เฟซ (eth2) ปิดการใช้งานอินเทอร์เฟซเครือข่าย ตัวอย่างเช่น คำสั่งต่อไปนี้จะปิดใช้งานอินเทอร์เฟซเครือข่าย eth2

ip link set eth2 down
OR
sudo ip link set eth2 down

ตอนนี้ เรามาตรวจสอบสถานะของอินเทอร์เฟซเครือข่าย eth2 กัน:

ip -j -p link show eth2 | grep operstate

ผลลัพธ์ด้านบนแสดงสถานะที่แก้ไขของอินเทอร์เฟซเครือข่าย

11. วิธีล้างที่อยู่ IP ของอินเทอร์เฟซเครือข่าย

ในตัวอย่างก่อนหน้านี้ เราเห็นวิธีใช้คำสั่งย่อย del เพื่อลบที่อยู่ IP อย่างไรก็ตาม บางครั้งเราจำเป็นต้องลบที่อยู่ IP ทั้งหมดของอินเทอร์เฟซเครือข่ายนั้น ๆ ในกรณีเช่นนี้ เราสามารถใช้คำสั่งย่อย flush ได้

ขั้นแรก ให้ใช้คำสั่งย่อย flush เพื่อลบที่อยู่ IP ทั้งหมดของอินเทอร์เฟซเครือข่าย eth2:

sudo ip addr flush eth2

ตอนนี้ เรามาตรวจสอบว่าที่อยู่ IP ทั้งหมดของอินเทอร์เฟซเครือข่าย eth2 ถูกลบแล้ว:

ip -j -p addr show eth2

ในเอาต์พุตด้านบน ช่อง addr_info จะแสดงอาร์เรย์ JSON ที่ว่างเปล่า สิ่งนี้บ่งชี้ว่าไม่มีที่อยู่ IP ใด ๆ ที่เชื่อมโยงกับอินเทอร์เฟซเครือข่าย eth2

12. ฉันจะตรวจสอบตารางเส้นทางได้อย่างไร

ตารางเส้นทางจัดเก็บข้อมูลที่จำเป็นเพื่อส่งต่อแพ็กเก็ตเครือข่ายไปยังปลายทางที่ถูกต้อง เราสามารถใช้วัตถุ เส้นทาง ของคำสั่ง ip เพื่อแสดงกฎการกำหนดเส้นทาง

ลองใช้คำสั่งด้านล่างเพื่อแสดงรายการกฎทั้งหมดของตารางเส้นทาง:

ip route show

ในเอาต์พุตด้านบน คอลัมน์แรกแสดงถึงปลายทาง ในขณะที่คอลัมน์สุดท้ายแสดงถึงที่อยู่ IP ต้นทาง

13. ฉันจะเพิ่มเส้นทางแบบคงที่ใหม่ได้อย่างไร

เหตุใดคุณจึงต้องเพิ่มเส้นทางแบบคงที่หรือเส้นทางแบบแมนนวล เนื่องจากการรับส่งข้อมูลต้องไม่ผ่านเกตเวย์เริ่มต้น เราจำเป็นต้องเพิ่มเส้นทางคงที่เพื่อผ่านการจราจรจากวิธีที่ดีที่สุดในการไปถึงจุดหมายปลายทาง

sudo ip route add 172.19.1.0/24 dev eth2 proto kernel scope link src 172.19.1.2

ตอนนี้เรามาตรวจสอบว่าเพิ่มรายการสำเร็จแล้ว:

ip route show

15. วิธีลบเส้นทางแบบคงที่

คำสั่งย่อย del จะลบรายการเฉพาะออกจากตารางเส้นทาง ตัวอย่างเช่น คำสั่งด้านล่างจะลบรายการเส้นทางอุปกรณ์ eth2:

sudo ip route del 172.19.1.0/24

ตอนนี้เรามาตรวจสอบว่ารายการถูกลบออกสำเร็จแล้ว:

ip route show

16. ฉันจะเพิ่มเส้นทางคงที่แบบถาวรได้อย่างไร

เส้นทางข้างต้นทั้งหมดจะหายไปหลังจากการรีสตาร์ทระบบ หากต้องการเพิ่มเส้นทางคงที่ถาวร ให้แก้ไขไฟล์ /etc/sysconfig/network-scripts/route-eth2 (เรากำลังจัดเก็บเส้นทางคงที่สำหรับ (eth2) ตามค่าเริ่มต้น ไฟล์ route-eth2 จะไม่อยู่ที่นั่นและจำเป็นต้องสร้างใหม่

กำหนดเส้นทางถาวรในระบบ RHEL

vi /etc/sysconfig/network-scripts/route-eth2

และเพิ่มบรรทัดต่อไปนี้แล้วบันทึกและออก

172.19.1.0/24 via 172.19.1.2 dev eth2

ตั้งค่าเส้นทางถาวรในระบบ Debian

เปิดไฟล์ /etc/network/interfaces และในตอนท้ายให้เพิ่มเส้นทางคงที่แบบคงอยู่ ที่อยู่ IP อาจแตกต่างกันในสภาพแวดล้อมของคุณ

sudo vi /etc/network/interfaces
auto eth2
iface eth2 inet static
address 172.19.50.2
netmask 255.255.255.0
gateway 172.19.50.100
#########{Static Route}###########
up ip route add 172.19.1.0/24 via 172.19.1.2 dev eth2

จากนั้นรีสตาร์ทบริการเครือข่ายหลังจากป้อนรายละเอียดทั้งหมดโดยใช้คำสั่งต่อไปนี้

sudo systemctl restart networking

17. ฉันจะเพิ่มเกตเวย์เริ่มต้นได้อย่างไร

ในระบบเครือข่าย เกตเวย์เริ่มต้นมีบทบาทสำคัญ มันถูกใช้เมื่อตารางเส้นทางไม่มีข้อมูลใด ๆ เกี่ยวกับปลายทาง

เกตเวย์เริ่มต้นสามารถระบุได้ทั่วโลกหรือสำหรับไฟล์กำหนดค่าเฉพาะอินเทอร์เฟซ ข้อดีของเกตเวย์เริ่มต้นคือเรามี NIC มากกว่าหนึ่งตัวอยู่ในระบบ คุณสามารถเพิ่มเกตเวย์เริ่มต้นได้ทันทีตามที่แสดงด้านล่างคำสั่ง

ขั้นแรก ให้เพิ่มอินเทอร์เฟซเครือข่าย eth0 เป็นเกตเวย์เริ่มต้น:

sudo ip route add default via 172.17.0.1

ตอนนี้เรามาตรวจสอบการตั้งค่าเกตเวย์เริ่มต้นโดยใช้คำสั่งต่อไปนี้:

ip route show

โปรดทราบว่าเราได้ดำเนินการคำสั่งนี้กับเครื่องทดสอบแล้ว โปรดใช้ความระมัดระวังขณะใช้คำสั่งนี้ในสภาพแวดล้อมการใช้งานจริง

18. วิธีลบเกตเวย์เริ่มต้น

เราสามารถใช้คำสั่งต่อไปนี้เพื่อลบเกตเวย์เริ่มต้น:

sudo ip route del default

ตอนนี้ เรามาแสดงรายการตารางเส้นทางเพื่อตรวจสอบว่าเกตเวย์เริ่มต้นถูกลบออกแล้ว:

ip route show

19. วิธีแสดงแคช ARP

ARP ย่อมาจาก Address Resolution Protocol ซึ่งใช้เพื่อค้นหาที่อยู่ MAC ที่เชื่อมโยงกับที่อยู่ IP เฉพาะ

เราสามารถใช้วัตถุ neigh กับคำสั่ง ip เพื่อแสดงแคช ARP:

ip neigh show

ในคำสั่งข้างต้น เสียง neigh แสดงถึงวัตถุข้างเคียง

20. วิธีเพิ่มรายการ ARP

ในการสร้างรายการ ARP ใหม่ เราสามารถใช้คำสั่งย่อย add กับวัตถุ neigh

sudo ip neigh add 172.19.1.0 lladdr 02:42:e3:40:a6:b1 dev eth2

ตอนนี้เรามาแสดงรายการแคช ARP:

ip neigh show

ในผลลัพธ์ข้างต้น เราจะเห็นรายการใหม่สำหรับอินเทอร์เฟซเครือข่าย eth2

21. วิธีลบรายการ ARP

เช่นเดียวกับอ็อบเจ็กต์เครือข่ายอื่นๆ เราสามารถใช้คำสั่งย่อย del เพื่อลบรายการ ARP ตัวอย่างเช่น คำสั่งด้านล่างจะลบรายการ ARP ของอินเทอร์เฟซเครือข่าย eth2:

sudo ip neigh del 172.19.1.0 dev eth2

ตอนนี้เรามาตรวจสอบว่ารายการถูกลบออกแล้วโดยแสดงรายการแคช ARP:

ip neigh show 

22. วิธีล้างรายการ ARP

เราสามารถใช้คำสั่งย่อย flush เพื่อลบรายการ ARP หลายรายการ เพื่อให้เข้าใจสิ่งนี้ ขั้นแรก ให้เพิ่มรายการ ARP สองสามรายการที่มีสถานะ STALE:

sudo ip neigh add 172.19.1.0 lladdr 02:42:e3:40:a6:b1 dev eth2 nud stale
sudo ip neigh add 172.19.2.0 lladdr 02:42:e3:40:a6:b2 dev eth2 nud stale
sudo ip neigh add 172.19.3.0 lladdr 02:42:e3:40:a6:b3 dev eth2 nud stale

ถัดไป ตรวจสอบว่าเพิ่มรายการใหม่สำเร็จแล้ว:

ip neigh show

จากนั้นให้ล้างรายการทั้งหมดโดยใช้คำสั่งด้านล่าง:

sudo ip neigh flush all

สุดท้าย ตรวจสอบว่ารายการทั้งหมดได้ถูกลบออกแล้ว:

ip neigh show

23. วิธีการตั้งค่า MTU สำหรับอินเทอร์เฟซเครือข่าย

MTU ย่อมาจาก Maximum Transmission Unit ซึ่งแสดงถึงขนาดแพ็คเก็ตที่ใหญ่ที่สุดที่สามารถส่งได้ในธุรกรรมเดียว เราสามารถจัดการขนาด MTU ได้ตามความต้องการด้านประสิทธิภาพของเรา

ขั้นแรก เรามาค้นหา MTU ของอินเทอร์เฟซเครือข่าย eth2:

ip -j -p link show eth2 | grep mtu

จากนั้น อัปเดตขนาด MTU ของอินเทอร์เฟซเครือข่าย eth2 เป็น 3000:

sudo ip link set mtu 3000 dev eth2

สุดท้ายตรวจสอบว่า MTU ได้รับการอัพเดตสำเร็จแล้ว:

ip -j -p link show eth2 | grep mtu

24. วิธีเปลี่ยนที่อยู่ Mac ของเครือข่าย

คำสั่ง ip ช่วยให้เราสามารถเปลี่ยนที่อยู่ MAC ของอินเทอร์เฟซเครือข่าย เพื่อให้บรรลุเป้าหมายนี้ เราสามารถใช้คำสั่งย่อย set กับอ็อบเจ็กต์ลิงก์ได้:

ขั้นแรก แสดงรายการที่อยู่ MAC ปัจจุบันของอินเทอร์เฟซเครือข่าย eth2:

ip -j -p link show eth2 | grep address

จากนั้นเปลี่ยนที่อยู่ MAC ของอินเทอร์เฟซเครือข่ายโดยใช้คำสั่งด้านล่าง:

sudo ip link set dev eth2 address 02:42:ac:13:01:03

สุดท้ายตรวจสอบว่าที่อยู่ MAC มีการเปลี่ยนแปลง:

ip -j -p link show eth2 | grep address

โปรดดูหน้าคู่มือที่ทำ man ip จากเทอร์มินัล/พรอมต์คำสั่ง เพื่อทราบข้อมูลเพิ่มเติมเกี่ยวกับ IP Command

man ip
บทสรุป

ในบทความนี้ เราได้พูดถึงตัวอย่างทั่วไปของ คำสั่ง ip เราสามารถใช้ตัวอย่างเหล่านี้ในชีวิตประจำวันเพื่อดำเนินการดูแลระบบเครือข่ายได้

คุณรู้จักตัวอย่างที่ดีที่สุดของคำสั่ง ip ใน Linux หรือไม่? แจ้งให้เราทราบความคิดเห็นของคุณในความคิดเห็นด้านล่าง