Als Linux -Administrator haben Sie verschiedene Tools, mit denen Sie Ihre Netzwerkverbindungen konfigurieren können, wie z.NMtui, deinNetworkManagermitGnomGrafische Benutzeroberfläche und natürlichnmcli(Network Manager -Befehlszeilen -Tool).
Ich habe viele Administratoren beobachtetNMtuifür seine Einfachheit. Verwendung jedochnmcliErspart Ihnen Zeit, steigert Ihr Vertrauen, ermöglicht die Integration in Skripte und ist das Hauptwerkzeug fürFehlerbehebung bei Linux -Server -Netzwerken, schnell seine Funktionalität wiederherstellen.
Nachdem zahlreiche Kommentare aufgefallen sind, um Hilfe zu suchennmcliIch habe beschlossen, diesen Artikel zu schreiben. Natürlich solltest du immerLesen Sie die MannseitenSorgfältig (sie sind die Nr. 1 -Ressource für Sie). Mein Ziel ist es, Ihnen Zeit zu sparen und Ihnen einige hilfreiche Hinweise zu geben.
NMCLI -Befehlssyntax
Die Syntax vonnmcliIst:
nmcli [OPTIONS] OBJECT {COMMAND | help}
WoOBJECT
ist einer der allgemeinen, Netzwerke, Funk, Verbindung, Gerät und Agent.
Überprüfen Sie den Status des Netzwerkgeräts unter Linux
Ein guter Ausgangspunkt wäre, unsere Geräte zu überprüfen:
nmcli dev status DEVICE TYPE STATE CONNECTION docker0 bridge connected docker0 virbr0 bridge connected virbr0 enp0s3 ethernet connected enp0s3 virbr0-nic ethernet disconnected -- lo loopback unmanaged --
Wie wir in der ersten Spalte sehen können, gibt es eine Liste unserer Netzwerkgeräte. Wir haben eine Netzwerkkarte mit dem Namenenp0s3
. Auf Ihrer Maschine sehen Sie möglicherweise unterschiedliche Namen.
Die Benennung hängt vom Typ der Netzwerkkarte ab (unabhängig davon, ob es sich um Bord, eine PCI -Karte usw.). In der letzten Spalte sehen wir unsere Konfigurationsdateien, die von unseren Geräten verwendet werden, um eine Verbindung zum Netzwerk herzustellen
Es ist einfach zu verstehen, dass unsere Geräte selbst nichts tun können. Sie müssen eine Konfigurationsdatei erstellen, um sie für die Erzielung der Netzwerkkonnektivität anzuweisen. Diese Dateien werden auch 'genannt' genanntVerbindungsprofile'Und wir finden sie in der/etc/sysconfig/network-scriptsVerzeichnis.
cd /etc/sysconfig/network-scripts/ ls
Probenausgabe
ifcfg-enp0s3 ifdown-isdn ifup ifup-plip ifup-tunnel ifcfg-lo ifdown-post ifup-aliases ifup-plusb ifup-wireless ifdown ifdown-ppp ifup-bnep ifup-post init.ipv6-global ifdown-bnep ifdown-routes ifup-eth ifup-ppp network-functions ifdown-eth ifdown-sit ifup-ib ifup-routes network-functions-ipv6 ifdown-ib ifdown-Team ifup-ippp ifup-sit ifdown-ippp ifdown-TeamPort ifup-ipv6 ifup-Team ifdown-ipv6 ifdown-tunnel ifup-isdn ifup-TeamPort
Wie Sie hier sehen können, beginnen die Dateien mit Namen mit Namen mit'ifcfg-'
(Schnittstellenkonfiguration) sind Verbindungsprofile. Wenn wir eine neue Verbindung erstellen oder eine vorhandene ändernnmclioderNMtuiDie Ergebnisse werden hier als Verbindungsprofile gespeichert.
Ich werde euch zwei von ihnen von meiner Maschine zeigen, eine mit einer DHCP -Konfiguration und eine mit statischer IP.
cat ifcfg-static1 cat ifcfg-Myoffice1

Wir wissen, dass einige Eigenschaften unterschiedliche Werte haben und andere nicht existieren, wenn sie nicht notwendig sind.
Werfen wir einen kurzen Blick auf die wichtigsten.
TYPE
- Wir haben dasEthernetGeben Sie hier ein. Wir könnten auch WLAN, Team, Bond und andere haben.DEVICE
- Der Name des mit diesem Profils zugeordneten Netzwerkgeräts.BOOTPROTO
- Wenn es den Wert hat"DHCP"Dann erhält unser Verbindungsprofil eine dynamische IP vom DHCP -Server. Wenn es den Wert hat"keiner"Dann verwendet es keine dynamische IP, und wir weisen wahrscheinlich eine statische IP zu.IPADDR
- Ist die statische IP, die wir unserem Profil zuweisen.PREFIX
- Die Subnetzmaske. Ein Wert von24bedeutet255.255.255.0. Sie können die Subnetzmaske besser verstehen, indem Sie ihr binäres Format aufschreiben. Zum Beispiel Werte von16Anwesend24, Und26meine, dass der erste16Anwesend24, oder26Bits werden jeweils auf 1 gesetzt, und der Rest beträgt 0. Dies definiert die Netzwerkadresse und den Bereich der zugewiesenen IP -Adressen.GATEWAY
- Das Gateway IP.DNS1
AnwesendDNS2
- Zwei DNS -Server, die wir verwenden möchten.ONBOOT
- Wenn es den Wert hat"Ja"Dies bedeutet, dass unser Computer auf dem Start dieses Profil liest und versucht, es seinem Gerät zuzuweisen.
Überprüfen Sie die Netzwerkverbindung unter Linux
Lassen Sie uns nun weitermachen und unsere Verbindungen überprüfen:
nmcli con show

Die letzte Gerätespalte hilft uns zu verstehen, welche Verbindung ist 'HOCHund rennen und was nicht. Im obigen Bild sehen Sie die beiden aktiven Verbindungen:Myoffice1UndENP0S8.
Hinweis: Wenn Sie nur die aktiven Verbindungen sehen möchten, geben Sie ein:
nmcli con show -a
Hinweis: Sie können das automatische Treffer verwendenTab
Wenn Sie verwendennmcli, ist aber besser, ein minimales Format des Befehls zu verwenden.
Somit sind die folgenden Befehle gleich:
nmcli connection show nmcli con show nmcli c s
Überprüfen Sie die IP -Adresse unter Linux
Wenn ichÜberprüfen Sie die IP -Adressenmeiner Geräte:
ip a

Ich sehe, dass mein Gerät mein Gerätenp0s3
nahm die192.168.1.6IP vom DHCP -Server weil das VerbindungsprofilMyoffice1
Welches ist eine DHCP -Konfiguration.
Wenn ich bringe“up”
Mein Verbindungsprofil mit Namenstatic1
Dann nimmt mein Gerät die statische IP auf192.168.1.40wie es im Verbindungsprofil definiert ist.
nmcli con down Myoffice1 ; nmcli con up static1 nmcli con show
Sehen wir uns die IP -Adresse erneut an:
ip a

Wir können unser erstes Verbindungsprofil erstellen. Die Mindesteigenschaften, die wir definieren müssen, sindTypAnwesendifname,Undcon-name:
type
- für die Art der Verbindung.ifname
- für den Gerätenamen, der unserer Verbindung zugeordnet ist.con-name
- für den Verbindungsnamen.
Erstellen einer neuen Ethernet -Verbindung unter Linux
Lassen Sie uns eine neue Ethernet -Verbindung mit dem Namen herstellenMyhome1
, einem Gerät zugeordnetenp0s3
:
nmcli con add type ethernet con-name Myhome1 ifname enp0s3
Überprüfen Sie die Konfiguration:
cat ifcfg-Myhome1

Wie Sie sehen können, hat esBOOTPROTO=dhcp
, weil wir keine statische IP -Adresse gegeben haben.
Hinweis: Wir können jede Verbindung mit dem ändern“nmcli con mod“
Befehl. Wenn Sie jedoch eine DHCP -Verbindung ändern und sie in static ändern, vergessen Sie nicht, sie zu ändern“ipv4.method”
aus“auto”
Zu“manual”
. Andernfalls erhalten Sie zwei IP -Adressen: eine vom DHCP -Server und die statische.
Erstellen wir ein neues Ethernet -Verbindungsprofil mit einem Namenstatic2
, die einem Gerät zugeordnet werdenenp0s3
, mit statischer IP192.168.1.50, Subnetzmaske255.255.255.0 = 24,und Tor192.168.1.1.
nmcli con add type ethernet con-name static2 ifname enp0s3 ip4 192.168.1.50/24 gw4 192.168.1.1
Überprüfen Sie die Konfiguration:
cat ifcfg-static2

Ändern Sie DNS -Server unter Linux
Ändern wir das letzte Verbindungsprofil und fügen Sie zwei DNS -Server hinzu.
nmcli con mod static2 ipv4.dns “8.8.8.8 8.8.4.4”
Hinweis: Hier gibt es etwas, auf das Sie achten müssen: Die Eigenschaften für IP -Adresse und Gateway haben unterschiedliche Namen, wenn Sie hinzufügen und wenn Sie eine Verbindung ändern. Wenn Sie Verbindungen hinzufügen, die Sie verwenden“ip4”
Und“gw4”
, während Sie sie ändern, verwenden Sie Sie“ipv4”
Und“gwv4”
.
Rufen Sie die Ethernet -Verbindung unter Linux auf
Lassen Sie uns nun dieses Verbindungsprofil ansprechen:
nmcli con down static1 ; nmcli con up static2
Wie Sie sehen können, das Gerätenp0s3
Jetzt hat eine IP -Adresse von192.168.1.50.
ip a

Hinweis: Es gibt viele Eigenschaften, die Sie ändern können. Wenn Sie sich nicht auswendig an sie erinnern, können Sie sich selbst durch Tippen helfen“nmcli con show”
und danach der Verbindungsname:
nmcli con show static2

Sie können alle in Kleinbuchstaben geschriebenen Eigenschaften ändern.
Zum Beispiel:Wenn Sie ein Verbindungsprofil herunterfahren, dieNetworkManagerSucht nach einem anderen Verbindungsprofil und bringt es automatisch auf. (Ich lasse es als Übung, um es zu überprüfen). Wenn Sie nicht möchten, dass Ihr Verbindungsprofil automatisch zusammenhängt:
nmcli con mod static2 connection.autoconnect no
Die letzte Übung ist sehr nützlich: Sie haben ein Verbindungsprofil erstellt, aber Sie möchten, dass es von bestimmten Benutzern verwendet wird. Es ist gut, Ihre Benutzer zu klassifizieren!
Setzen Sie die Ethernet -Verbindungsberechtigungen auf den Benutzer unter Linux
Wir lassen nur BenutzerStellaVerwenden Sie dieses Profil:
nmcli con mod static2 connection.permissions stella
Hinweis: Wenn Sie mehr als einem Benutzer Berechtigungen geben möchten, müssen Sie eingebenuser:user1,user2
Ohne leeren Platz zwischen ihnen:
nmcli con mod static2 connection.permissions user:stella,john

Wenn Sie sich als ein anderer Benutzer anmelden, können Sie nicht mitbringen"hoch"Dieses Verbindungsprofil:
nmcli con show nmcli con up static2 ls /etc/sysconfig/network-scripts

Eine Fehlermeldung besagt diese Verbindung'static2' existiert nicht, auch wenn wir sehen, dass es existiert. Das liegt daran, dass ein aktueller Benutzer keine Erlaubnis hat, diese Verbindung herzustellen.
Abschluss: Zögern Sie nicht, NMCLI zu verwenden. Es ist einfach und hilfsbereit.