Statische IP-Adresse mit NetworkManager?

25788
wullxz

Ich wollte nur eine statische IP-Adresse für eine Fedora 19-Maschine in meinem LAN einrichten. Ich bin /etc/network/interfacesaus Debian gewöhnt, aber diese Datei existiert hier nicht.
Nachdem ich ein bisschen gegoogelt hatte, fand ich ein kleines Tutorial, in dem der NetworkManager über systemctl deaktiviert und das Netzwerk aktiviert wurde. Danach konnte man die statische IP-Adresse in einer Datei namens konfigurieren /etc/sysconfig/network-scripts/ifcfg-*interfacename*.

Hier ist mein erstes Problem: Ich habe eine Datei gefunden, deren MAC-Adresse von meiner Schnittstelle angezeigt wird, ifconfigaber der Name nach ifcfg- stimmt nicht mit dem Namen von ifconfig überein. Warum ist das so?

Mein zweites Problem betrifft die Verwendung von NetworkManager.service oder network.service. Ich habe in einem Forum gelesen, dass der network.service aus Kompatibilitätsgründen noch enthalten ist und in Kürze ausgeschlossen werden kann. Wenn network.service bald durch NetworkManager.service ersetzt wird, kann ich dann NetworkManager.service nicht zur Konfiguration meiner Netzwerkschnittstellen verwenden? Wenn ja, wie mache ich das mit NetworkManager von einer Shell aus?

Edit:
Hier sind die gewünschten Ausgaben:

[root@bitch /]# ifconfig lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 0 (Local Loopback) RX packets 97 bytes 12042 (11.7 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 97 bytes 12042 (11.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0  p3p1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.178.11 netmask 255.255.255.0 broadcast 192.168.178.255 inet6 fe80::214:85ff:febc:1c63 prefixlen 64 scopeid 0x20<link> ether 00:14:85:bc:1c:63 txqueuelen 1000 (Ethernet) RX packets 134347 bytes 169988336 (162.1 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 78199 bytes 6595669 (6.2 MiB) TX errors 0 dropped 0 overruns 1 carrier 0 collisions 0  [root@bitch /]# ls -l /etc/sysconfig/network-scripts/ total 200 -rw-r--r--. 1 root root 437 Sep 15 02:05 ifcfg-enp2s5 -rw-r--r--. 1 root root 254 May 31 09:49 ifcfg-lo lrwxrwxrwx. 1 root root 24 Jun 27 19:12 ifdown -> ../../../usr/sbin/ifdown -rwxr-xr-x. 1 root root 627 May 31 09:49 ifdown-bnep -rwxr-xr-x. 1 root root 5553 May 31 09:49 ifdown-eth -rwxr-xr-x. 1 root root 781 May 31 09:49 ifdown-ippp -rwxr-xr-x. 1 root root 4141 May 31 09:49 ifdown-ipv6 lrwxrwxrwx. 1 root root 11 Jun 27 19:12 ifdown-isdn -> ifdown-ippp -rwxr-xr-x. 1 root root 1642 May 31 09:49 ifdown-post -rwxr-xr-x. 1 root root 1068 May 31 09:49 ifdown-ppp -rwxr-xr-x. 1 root root 837 May 31 09:49 ifdown-routes -rwxr-xr-x. 1 root root 1444 May 31 09:49 ifdown-sit -rwxr-xr-x. 1 root root 1462 May 31 09:49 ifdown-tunnel lrwxrwxrwx. 1 root root 22 Jun 27 19:12 ifup -> ../../../usr/sbin/ifup -rwxr-xr-x. 1 root root 12445 May 31 09:49 ifup-aliases -rwxr-xr-x. 1 root root 859 May 31 09:49 ifup-bnep -rwxr-xr-x. 1 root root 10234 May 31 09:49 ifup-eth -rwxr-xr-x. 1 root root 12033 May 31 09:49 ifup-ippp -rwxr-xr-x. 1 root root 10437 May 31 09:49 ifup-ipv6 -rwxr-xr-x. 1 root root 804 May 31 09:49 ifup-ipx lrwxrwxrwx. 1 root root 9 Jun 27 19:12 ifup-isdn -> ifup-ippp -rwxr-xr-x. 1 root root 642 May 31 09:49 ifup-plip -rwxr-xr-x. 1 root root 1043 May 31 09:49 ifup-plusb -rwxr-xr-x. 1 root root 2609 May 31 09:49 ifup-post -rwxr-xr-x. 1 root root 4154 May 31 09:49 ifup-ppp -rwxr-xr-x. 1 root root 1925 May 31 09:49 ifup-routes -rwxr-xr-x. 1 root root 3268 May 31 09:49 ifup-sit -rwxr-xr-x. 1 root root 2607 May 31 09:49 ifup-tunnel -rwxr-xr-x. 1 root root 3775 May 31 09:49 ifup-wireless -rwxr-xr-x. 1 root root 4623 May 31 09:49 init.ipv6-global -rw-r--r--. 1 root root 13836 May 31 09:49 network-functions -rw-r--r--. 1 root root 26134 May 31 09:49 network-functions-ipv6 

Inhalt von / etc / sysconfig / network-scripts / ifcfg-enp2s5:

PEERROUTES="yes" IPV6INIT="yes" NAME="enp2s5" IPV6_PEERDNS="yes" DEFROUTE="yes" UUID="7622e20e-3f2a-4b5c-83d8-f4f6e22ed7ec" PEERDNS="yes" IPV4_FAILURE_FATAL="no" HWADDR="00:14:85:BC:1C:63" BOOTPROTO="static" IPV6_DEFROUTE="yes" IPV6_AUTOCONF="yes" IPV6_FAILURE_FATAL="no" TYPE="Ethernet" ONBOOT="yes" IPV6_PEERROUTES="yes" IPADDR=192.168.178.11 NETMASK=255.255.255.0 BROADCAST=192.168.178.255 NETWORK=192.168.178.0 GATEWAY=192.168.178.1 

Grepping dmesg für udevd:

[root@bitch network-scripts]# dmesg | grep udevd [ 0.788381] systemd-udevd[97]: starting version 204 [ 2.457296] systemd-udevd[322]: starting version 204 [ 3.110272] systemd-udevd[329]: renamed network interface eth0 to p3p1 
7
Können Sie bitte die Ausgabe der folgenden zwei Befehle posten: 1) `ls / etc / sysconfig / network-scripts` 2)` ifconfig` Drew Chapin vor 10 Jahren 0
Ich weiß, Sie sagten, Sie wollten es von einer Befehls-Shell aus machen, aber ich habe eine Antwort veröffentlicht, in der beschrieben wird, wie Sie dies mit der grafischen Benutzeroberfläche tun können. Wenn Sie die Ausgabe der 2 Befehle veröffentlichen, die ich im vorherigen Kommentar erwähnt habe, werde ich meine Antwort überarbeiten, um die Verwendung der Befehls-Shell zu erleichtern. Drew Chapin vor 10 Jahren 0
Ich werde sie posten, nur eine Sekunde. wullxz vor 10 Jahren 0
Ich habe das Gefühl, dass "p3p1" als Alias ​​konfiguriert ist und "enp2s5" der wahre Name ist. Was ist mit der Ausgabe von `grep -e" NAME = \ | HWADDR = "/ etc / sysconfig / network-scripts / ifcfg-enp2s5`? Ist der Wert von `NAME =` gleich `enp2s5` oder` p3p1`? Drew Chapin vor 10 Jahren 0
Der Variablenname könnte "DEVICE" anstelle von "NAME" sein ... Drew Chapin vor 10 Jahren 0
Etwas anderes, das helfen könnte, ist `dmesg | grep udevd` Drew Chapin vor 10 Jahren 0
Ich habe nochmal bearbeitet. "NAME" in enp2s5 ist auf enp2s5 gesetzt. Kein Alias ​​hier dmesg sagt, udevd hat eth0 in enp2s5 umbenannt. Immer noch keine Ahnung woher p3s1 kommt ... wullxz vor 10 Jahren 0
udevd ist der Dienst, der dafür verantwortlich ist, Netzwerkgeräten "vorhersagbare Namen" zuzuweisen. Es benennt "eth0" in "p3p1" um, was der aktuelle Name ist, wie er von "ifconfig" angezeigt wird. Beim Erstellen Ihrer `/ etc / sysconfig / network-scripts / ifcfg- *` -Dateien läuft also etwas. Ich suche immer noch, woher diese Namen eigentlich gerissen werden. Drew Chapin vor 10 Jahren 0
Die Ausgabe `dmesg | grep enp2s5` könnte enthüllen, warum die Netzwerkskripte "enp2s5" anstelle von "p3p1" verwenden (was es sein sollte). Drew Chapin vor 10 Jahren 0
Ich würde gerne wissen, was passiert, wenn Sie `/ etc / sysconfig / network-scripts / ifcfg-enp2s5` in` ifcfg-p3p1` umbenennen und `NAME = enp2s5` in` NAME = p3p1` umwandeln (grundsätzlich umbenennen) Netzwerkskript zur Verwendung des Gerätenamens aus "ifconfig"). Sie sagten jedoch, Sie hätten nur über SSH darauf zugegriffen, daher möchte ich nichts vorschlagen, um zu verhindern, dass Sie wieder in den PC / Server gelangen. Drew Chapin vor 10 Jahren 0
Ich habe meine Antwort mit einer Lösung aktualisiert, die meiner Meinung nach funktionieren wird. Drew Chapin vor 10 Jahren 0

2 Antworten auf die Frage

5
Drew Chapin

Befehlszeilenanweisungen

Nach langem Graben habe ich festgestellt, dass die Dateinamen der ifcfg- * und die NAME=Variable in der Datei sehr wenig mit der tatsächlichen Zuweisung zu tun haben. Sie können sie buchstäblich in das ändern, was Sie möchten ... Ich habe einen Test auf meinem Computer durchgeführt eth0und die manuelle / statische IP-Adresse wurde beim Start immer noch angewendet. Der Schlüssel hier scheint die HWADDRVariable in der Datei zu sein. Der NAME=Wert scheint nur der Name zu sein, der in den grafischen Network Manager-Einstellungen angezeigt wird. Das heißt, ich glaube, alles was Sie tun müssen, ist ...

  1. Stellen Sie sicher, dass NetworkManager.serviceweiterhin aktiviert und network.servicedeaktiviert ist.

  2. Der WICHTIGSTE Schritt ist das Löschen des aktuellen ifcfg-enp2s5- Skripts.

    sudo rm /etc/sysconfig/network-scripts/ifcfg-enp2s5 
  3. Erstellen Sie ein neues Skript mit dem Namen ifcfg-p3p1

    sudo nano /etc/sysconfig/network-scripts/ifcfg-p3p1 
  4. Stellen Sie den Inhalt von ifcfg-p3p1 wie folgt ein und aktualisieren Sie die entsprechenden IP-Einstellungen mit den gewünschten Einstellungen.

    TYPE=Ethernet BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no NAME=p3p1 UUID=7622e20e-3f2a-4b5c-83d8-f4f6e22ed7ec ONBOOT=yes DNS1=10.0.0.1 IPADDR0=10.0.0.2 PREFIX0=24 GATEWAY0=10.0.0.1 HWADDR=00:14:85:BC:1C:63 IPV6_PEERDNS=yes IPV6_PEERROUTES=yes 

Warum der ifcfg- * Name vom tatsächlichen Gerätenamen abweicht? Ich weiß es nicht, vermute aber, dass dies etwas damit zu tun hat, wie die Netzwerkeinstellungen während der Installation angewendet wurden.

Grafische Anweisungen

  1. Öffnen Sie die Systemeinstellungen
  2. Klicken Sie auf Netzwerk
  3. Klicken Sie auf Optionen ...
  4. Klicken Sie auf die Registerkarte IPv4-Einstellungen * oder IPv6-Einstellungen, je nachdem, welche IP-Version Ihr Heimnetzwerk verwendet (höchstwahrscheinlich IPv4 ).
  5. Klicken Sie auf das Kombinationsfeld Methode und wählen Sie die Option Manuell .
  6. Klicken Sie auf die Schaltfläche Hinzufügen .
  7. Geben Sie die Adresse, die Sie in den möchten Adresse Spalten (zB 10.0.0.20).
  8. Geben Sie die Netzmaske für Ihr Netzwerk in die Spalte Netzmaske ein (z. B. 255.255.255.0).
  9. Geben Sie das Gateway (normalerweise die IP- Adresse Ihres Routers) in die Spalte " Gateway" ein (z. B. 10.0.0.1).
  10. Geben Sie Ihren DNS-Server in das Textfeld DNS-Server ein (z. B. 10.0.0.1).

    Dialogfeld für verkabelte Verbindungsoptionen

  11. Klicken Sie auf Speichern ...
  12. Wenn Sie zurück zur Netzwerkeinstellungen, schalten Sie die Wired - Schnittstelle OFF .
  13. Die statischen Adressinformationen, die Sie in den vorherigen Schritten eingegeben haben, werden automatisch wieder eingeschaltet. Wenn dies nicht der Fall ist, klicken Sie auf den Kippschalter, um ihn einzuschalten.

    Netzwerkeinstellungen nach manueller IP-Auswahl


Um Ihre Frage zur Verwendung des NetworkManager.serviceOver zu beantworten network.service. Es ist durchaus möglich, dass es in späteren Versionen entfernt werden könnte. Als Faustregel gilt, dass Sie unabhängig vom Thema immer versuchen sollten, " alles aus Gründen der Rückwärtskompatibilität" zu vermeiden . Sie sollten sich also an die Verwendung halten, NetworkManager wenn Sie können .

weil ich diese Maschine über SSH steuere. GUI-Sachen sind keine Lösung. Deshalb wollte ich eine Lösung zum Konfigurieren von NetworkManager in einer Shell. Ich wundere mich auch, warum der Netzwerkdienst ersetzt werden sollte, obwohl er einfach von der Shell aus konfiguriert werden kann. wullxz vor 10 Jahren 0
Und für Ihre Faustregel: Deshalb frage ich nach einer der beiden, aber ich muss eine Shell-basierte Lösung verwenden. Linux wird häufig als Server-Betriebssystem verwendet. Es muss * etwas aus der Shell geben, oder? wullxz vor 10 Jahren 0
NetworkManager ist Teil des GNOME-Projekts, und ich glaube, das war ihre Aufgabe, aber ich kann nichts finden, was es unterstützt. Wenn Sie es noch nicht wissen, macht [GNOME verrücktes Zeug] (http://en.wikipedia.org/wiki/Controversy_over_GNOME_3). Drew Chapin vor 10 Jahren 0
Ich habe `ifcfg-eth *` -Dateien aus `/ etc / sysconfig / network` gelöscht und der Network Manager funktionierte einwandfrei! Paul vor 7 Jahren 0
1
terdon

Ich benutze kein Fedora, aber laut diesem Post sollte die Datei, die Sie suchen, /etc/sysconfig/network-scripts/ifcfg-p3p1die sein, die ungefähr so ​​aussehen sollte :

DEVICE=eth0 BOOTPROTO=none HWADDR=00:13:20:5E:C0:47 ONBOOT=yes DHCP_HOSTNAME=balthasar.benhome.com TYPE=Ethernet USERCTL=no IPV6INIT=no PEERDNS=no IPADDR=172.16.3.3 NETMASK=255.255.255.192 GATEWAY=172.16.3.1 

Das Einrichten der IP sollte funktionieren.

Nein, tut es nicht. Ich habe irgendwo gelesen, dass man einfach einen ifcfg- * interface-Namen * anlegen, network.service neu starten und die Eigenschaften bearbeiten muss. Wenn ich ein leeres ifcfg-p3p1 erstellt habe, würde der network.service nicht mehr starten. Es ist definitiv enp2s5, wo p3p1 konfiguriert ist (die statische IP-Adresse, die ich dort konfiguriert habe, wurde auf meine Netzwerkschnittstelle angewendet). wullxz vor 10 Jahren 0
@wullxz Ja, es sieht so aus, als wäre es enp2s5, aber Sie hatten zuvor den Inhalt dieser Datei nicht gepostet. Versuchen Sie, NM_CONTROLLED = no hinzuzufügen, um der Schnittstelle mitzuteilen, dass sie nicht vom Netzwerkmanager gesteuert wird. terdon vor 10 Jahren 0
Wie kontrolliere ich es dann, wenn NetworkManager das nicht tut? Sie muss beim Neustart automatisch gestartet werden. wullxz vor 10 Jahren 0
@wullxz eigentlich keine Ahnung, deshalb war das nur ein Kommentar. Sie können dies für die Migration nach [Unix.se] markieren, da Sie möglicherweise bessere Chancen haben. terdon vor 10 Jahren 0
ok, werde das versuchen. wullxz vor 10 Jahren 0
@wullxz kreuzen Sie einfach nicht an, markieren Sie die Aufmerksamkeit des Moderators, wählen Sie andere aus und erklären Sie, dass Sie es migriert haben möchten. terdon vor 10 Jahren 0
hat das schon gemacht wullxz vor 10 Jahren 0
@wullxz Sie haben diese (gute) Frage vor weniger als einem Tag gestellt. Bis jetzt gibt es gute Antworten, und wir mögen es normalerweise nicht, Fragen wegzuziehen, es sei denn, sie sitzen hier ohne viel Aufmerksamkeit oder Hoffnung, für ein oder zwei Tage beantwortet zu werden. Ich schlage vor, dass Sie es an einem Tag erneut kennzeichnen, wenn es nicht behoben ist. Sagen Sie einfach, ich habe es Ihnen gesagt. Danke für dein Verständnis. slhck vor 10 Jahren 1