So konfigurieren Sie Netzwerk -IP -Verbindungen mithilfe von 'NMCLI' unter Linux

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}

WoOBJECTist 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
Überprüfen Sie die Netzwerkkonfiguration

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.
  • DNS1AnwesendDNS2- 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
Aktive Netzwerkverbindungen anzeigen

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 verwendenTabWenn 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
Überprüfen Sie die Server -IP -Adresse

Ich sehe, dass mein Gerät mein Gerätenp0s3nahm die192.168.1.6IP vom DHCP -Server weil das VerbindungsprofilMyoffice1Welches ist eine DHCP -Konfiguration.

Wenn ich bringe“up”Mein Verbindungsprofil mit Namenstatic1Dann 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
Überprüfen Sie die statische IP -Adresse des Netzwerks

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
Erstellen Sie eine neue Netzwerkverbindung

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
Erstellen Sie eine neue Ethernet -Verbindung

Ä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ätenp0s3Jetzt hat eine IP -Adresse von192.168.1.50.

ip a
Überprüfen Sie die IP -Adresse der neuen Netzwerkverbindung

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
Überprüfen Sie die IP -Adresse der neuen Netzwerkverbindung

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,user2Ohne leeren Platz zwischen ihnen:

nmcli con mod static2 connection.permissions user:stella,john
Ermöglichen Sie den Benutzern Netzwerkverbindungen

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
Netzwerkverbindung aktivieren

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.