Αυτό αφορά το linux, αλλά αν κάποιος γνωρίζει μια γενική μέθοδο *nix θα ήταν καλό.
Ξεκίνησα χθες ένα σύστημα με ένα καλώδιο ethernet συνδεδεμένο. το "NetworkManager" δεν είναι εγκατεστημένο, οπότε μόλις ξεκίνησε πήγα να ψάξω για το όνομα της διασύνδεσης ethernet με το ifconfig
για να ξεκινήσω χειροκίνητα έναν DHCP client, αλλά δεν έδειξε τίποτα άλλο εκτός από το lo
.
Η κάρτα δικτύου εμφανίστηκε μέσω του lspci
και φορτώθηκε το κατάλληλο πρόγραμμα οδήγησης του πυρήνα. Το σύστημα χρησιμοποιεί κανονικά wifi, και θυμάμαι ότι το όνομα της διασύνδεσης ήταν wlan0
. Όταν δοκίμασα το ifconfig wlan0 up
, εμφανίστηκε το wlan0
. Αλλά τα μόνα ονόματα διασύνδεσης ethernet που μπορούσα να θυμηθώ ήταν eth[N]
και em[N]
-- κανένα από τα οποία δεν λειτούργησε.
Αυτό το έγγραφο αναφέρεται σε "προβλέψιμα ονόματα διασύνδεσης" αλλά δεν κάνει καλή δουλειά για να εξηγήσει τι μπορεί να είναι με απλούς όρους. Αναφέρεται σε ένα κομμάτι πηγαίου κώδικα το οποίο υπονοεί ότι το όνομα σε αυτή την περίπτωση μπορεί να εξαχθεί από τους αριθμούς του διαύλου PCI και της υποδοχής, κάτι που φαίνεται να είναι μια περιττά περίπλοκη διαδικασία.
Άλλες αναζητήσεις με οδήγησαν στο συμπέρασμα ότι αυτό μπορεί να καθορίζεται από το systemd
σε συνδυασμό με το udev
, αλλά υπάρχουν σχεδόν 100 αρχεία στο /usr/lib/udev/rules.d
και το να ξοδέψετε μια ώρα προσπαθώντας να προσδιορίσετε πού (και αν) υπάρχει ένα αρχείο ρυθμίσεων του systemd για αυτό φαίνεται επίσης γελοίο.
Θα ήταν επίσης καλό να γνωρίζω με βεβαιότητα ότι είναι διαθέσιμα, όχι μόνο πώς θα μπορούσαν να ονομάζονται αν είναι, ώστε να μπορώ να αποκλείσω προβλήματα υλικού κ.λπ. Δεν υπάρχει ένας απλός τρόπος για να βρείτε τα ονόματα των διαθέσιμων διασυνδέσεων δικτύου στο linux;
Η απλούστερη μέθοδος που γνωρίζω για να καταγράψετε όλες τις διασυνδέσεις σας είναι
ifconfig -a
EDIT
Εάν βρίσκεστε σε ένα σύστημα όπου αυτό έχει καταστεί παρωχημένο, μπορείτε να χρησιμοποιήσετε το
ip link show
Ο πυρήνας τις απαριθμεί ονομαστικά στο /sys
, τόσο ξεχωριστά (π.χ.) στο δέντρο των συσκευών PCI -- αν και η εύρεσή τους εκεί αν δεν ξέρετε πού βρίσκονται για να ξεκινήσετε δεν είναι απλή -- όσο και μαζί μέσω συμβολικών συνδέσμων στο /sys/class/net
. Π.χ:
> ls /sys/class/net
em1 lo wlp6so
Ένα άλλο παράδειγμα:
> ls /sys/class/net
lo p6s1 wlan0
Αν δεν είστε σίγουροι για το ποιο είναι ποιο, μπορείτε να τα βάλετε όλα μαζί με οποιοδήποτε από τα δύο:
ifconfig [name] up
Ή:
ip link set [name] up
Και στη συνέχεια κοιτάξτε τις (αρκετά σαφείς) ενδείξεις που παραθέτει το ifconfig
(χωρίς ορίσματα). Ο πηγαίος κώδικας του systemd που συνδέεται από το έγγραφο του Freedesktop.org αναφέρεται επίσης σε:
Two character prefixes based on the type of interface:
* en -- ethernet
* sl -- serial line IP (slip)
* wl -- wlan
* ww -- wwan
Αν και σε μία από τις παραπάνω περιπτώσεις (p6s1
) δεν υπάρχει πρόθεμα.
Εγώ πάντα κάνω cat /proc/net/dev
είναι απλό και εύκολο να το απομνημονεύσω