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 (switch user) από το τερματικό ή τη γραμμή εντολών.

Ορισμός στατικής διεύθυνσης 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

Στην παραπάνω έξοδο, μπορούμε να δούμε ότι το όνομα της διεπαφής, η διεύθυνση ethernet και η κατάσταση επισημαίνονται με διαφορετικά χρώματα.

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 από τη διεπαφή δικτύου

Στο προηγούμενο παράδειγμα, χρησιμοποιήσαμε την υπο-εντολή προσθήκη για να εκχωρήσουμε μια διεύθυνση 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. Πώς μπορώ να ελέγξω τον πίνακα δρομολόγησης

Ένας πίνακας δρομολόγησης αποθηκεύει τις απαραίτητες πληροφορίες για την προώθηση ενός πακέτου δικτύου στον σωστό προορισμό. Μπορούμε να χρησιμοποιήσουμε το αντικείμενο route της εντολής 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 στο σύστημα. Μπορείτε να προσθέσετε την προεπιλεγμένη πύλη on the fly όπως φαίνεται κάτω από την εντολή.

Αρχικά, ας προσθέσουμε μια διεπαφή δικτύου 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 σημαίνει το Πρωτόκολλο ανάλυσης διεύθυνσης, το οποίο χρησιμοποιείται για την εύρεση της διεύθυνσης MAC που σχετίζεται με τη συγκεκριμένη διεύθυνση IP.

Μπορούμε να χρησιμοποιήσουμε το αντικείμενο neigh με την εντολή ip για να εμφανίσουμε την προσωρινή μνήμη ARP:

ip neigh show

Στην παραπάνω εντολή, το neigh αντιπροσωπεύει γειτονικά αντικείμενα.

20. Πώς να προσθέσετε μια καταχώριση ARP

Για να δημιουργήσουμε μια νέα καταχώρηση ARP, μπορούμε να χρησιμοποιήσουμε την υπο-εντολή προσθήκη με το αντικείμενο 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 σημαίνει Μέγιστη μονάδα μετάδοσης, η οποία αντιπροσωπεύει το μεγαλύτερο μέγεθος πακέτου που μπορεί να μεταδοθεί σε μία μόνο συναλλαγή. Μπορούμε να χειριστούμε το μέγεθος του 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 με το αντικείμενο link:

Αρχικά, αναφέρετε την τρέχουσα διεύθυνση 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.

man ip
συμπέρασμα

Σε αυτό το άρθρο, συζητήσαμε μερικά κοινά παραδείγματα της εντολής ip. Κάποιος μπορεί να χρησιμοποιήσει αυτά τα παραδείγματα στην καθημερινή ζωή για να εκτελέσει τη διαχείριση δικτύου.

Γνωρίζετε κάποιο άλλο καλύτερο παράδειγμα της εντολής ip στο Linux; Πείτε μας τις απόψεις σας στα παρακάτω σχόλια.