Statische IP-Adresse mit NetworkManager für Fedora

7

Ich wollte nur eine statische IP-Adresse für einen Fedora 19-Computer in meinem LAN einrichten. Ich bin an /etc/network/interfacesDebian gewöhnt, aber diese Datei existiert hier nicht.
Nachdem ich ein wenig gegoogelt hatte, fand ich ein kleines Tutorial, in dem man aufgefordert wird, NetworkManager über systemctl zu deaktivieren und das Netzwerk zu aktivieren. Danach konnte man die statische IP-Adresse in einer aufgerufenen Datei konfigurieren /etc/sysconfig/network-scripts/ifcfg-*interfacename*.

Hier ist mein erstes Problem: Ich habe eine Datei mit der MAC-Adresse meiner Schnittstelle gefunden, die von 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 network.service aus Kompatibilitätsgründen immer noch enthalten ist und möglicherweise bald ausgeschlossen wird. Wenn network.service bald durch NetworkManager.service ersetzt wird, sollte ich dann nicht NetworkManager.service auswählen, um meine Netzwerkschnittstellen zu konfigurieren? Wenn ja, wie mache ich das mit NetworkManager von einer Shell aus?

Bearbeiten:
Hier sind die angeforderten 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
wullxz
quelle
Können Sie bitte die Ausgabe der folgenden zwei Befehle posten 1) ls /etc/sysconfig/network-scripts2)ifconfig
Drew Chapin
Ich weiß, dass Sie gesagt haben, Sie wollten es über eine Befehlsshell tun, aber ich habe eine Antwort veröffentlicht, in der detailliert beschrieben wird, wie dies mit der grafischen Oberfläche gemacht wird. Wenn Sie die Ausgabe der 2 Befehle veröffentlichen, die ich im vorherigen Kommentar erwähnt habe, werde ich meine Antwort überarbeiten, um sie über die Befehlsshell zu unterstützen.
Drew Chapin
Ich werde sie posten, nur eine Sekunde.
Wullxz
Ich habe das Gefühl p3p1, als Alias ​​konfiguriert zu sein und enp2s5ist der richtige Name. Was ist mit der Ausgabe von grep -e "NAME=\|HWADDR=" /etc/sysconfig/network-scripts/ifcfg-enp2s5? Ist der Wert von NAME=gleich enp2s5oder p3p1?
Drew Chapin
Der Variablenname könnte DEVICEanstelle von NAME...
Drew Chapin

Antworten:

5

Befehlszeilenanweisungen

Nach langem Graben stellte ich fest, dass die ifcfg- * -Dateinamen und die NAME=Variable in der Datei sehr wenig mit der tatsächlichen Zuweisung zu tun haben. Sie können sie buchstäblich nach Belieben ändern ... Ich habe einen Test auf meinem Computer durchgeführt eth0und die manuelle / statische IP wurde beim Start 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. Ich glaube also, alles was Sie tun müssen ist ...

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

  2. Der WICHTIG Schritt ist , den Strom zu löschen ifcfg-enp2s5 Skript.

    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 war der ifcfg- * Name anders als der tatsächliche Gerätename ? Ich weiß es nicht, vermute aber, dass es etwas damit zu tun hat, wie die Netzwerkeinstellungen während der Installation angewendet wurden.

Grafische Anleitung

  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 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 "Optionen für kabelgebundene Verbindungen"

  11. Klicken Sie auf Speichern ...
  12. Wenn Sie zurück zur Netzwerkeinstellungen, schalten Sie die Wired - Schnittstelle OFF .
  13. Es sollte sich automatisch mit den statischen Adressinformationen wieder einschalten, die Sie in den vorherigen Schritten eingegeben haben. Wenn es sich nicht einschalten lässt, klicken Sie auf den Kippschalter, um es einzuschalten.

    Netzwerkeinstellungen nach manueller IP-Auswahl


Um Ihre Frage zur Verwendung des NetworkManager.serviceOver zu beantworten network.service. Es besteht definitiv das Potenzial, dass es in späteren Versionen entfernt wird. Als allgemeine Faustregel gilt jedoch, dass Sie unabhängig vom Thema immer versuchen sollten, die Verwendung von "aus Gründen der Abwärtskompatibilität" zu vermeiden . Sie sollten sich also an die Verwendung halten, NetworkManager wenn Sie können .

Drew Chapin
quelle
weil ich diese Maschine über SSH steuere. GUI-Zeug ist keine Lösung. Aus diesem Grund wollte ich eine Lösung zum Konfigurieren von NetworkManager auf einer Shell und frage mich auch, warum der Netzwerkdienst ersetzt werden sollte, obwohl er einfach über die Shell konfiguriert werden kann.
Wullxz
Und für Ihre Faustregel: Deshalb frage ich nach einer dieser beiden, aber ich muss eine Shell-basierte Lösung verwenden. Linux wird häufig als Server-Betriebssystem verwendet. Es muss etwas von der Shell geben, oder?
Wullxz
NetworkManager ist Teil des GNOME-Projekts, und ich glaube, das haben sie getan, aber ich kann nichts finden, um es zu sichern. Wenn Sie es noch nicht wissen, macht GNOME ein paar verrückte Sachen .
Drew Chapin
Ich löschte ifcfg-eth*Dateien aus /etc/sysconfig/networkund Network Manager begann zu funktionieren, wie es sollte!
Paul
1

Ich benutze Fedora nicht, aber laut diesem Beitrag sollte die gesuchte Datei ungefähr so ​​aussehen /etc/sysconfig/network-scripts/ifcfg-p3p1:

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 dort sollte funktionieren.

Terdon
quelle
Nein, das tut es nicht. Ich habe irgendwo gelesen, dass man einfach einen ifcfg- Schnittstellennamen erstellen, network.service neu starten und die Eigenschaften bearbeiten sollte. Aber als ich ein leeres ifcfg-p3p1 erstellt habe, wurde network.service nicht erneut gestartet. Es ist definitiv enp2s5, wo p3p1 konfiguriert ist (die statische IP-Adresse, die ich dort konfiguriert habe, wurde auf meine Netzwerkschnittstelle angewendet).
Wullxz
@wullxz Ja, es sieht so aus, als wäre es enp2s5, aber Sie haben den Inhalt dieser Datei noch nicht veröffentlicht. Versuchen Sie es hinzuzufügen, NM_CONTROLLED=noum der Schnittstelle mitzuteilen, dass sie nicht vom Netzwerkmanager gesteuert wird.
Terdon
Wie steuere ich es dann, wenn NetworkManager dies nicht tut? Es muss beim Neustart automatisch gestartet werden.
Wullxz
@wullxz eigentlich keine ahnung, deshalb war das nur ein kommentar. Sie können dies für die Migration auf Unix und Linux markieren, da Sie dort möglicherweise bessere Chancen haben.
Terdon
1
@wullxz Du hast diese (gute) Frage vor weniger als einem Tag gestellt. Bisher hat es gute Antworten gegeben, und wir migrieren Fragen im Allgemeinen nicht gerne weg, es sei denn, sie sitzen hier ohne viel Aufmerksamkeit oder Hoffnung, ein oder zwei Tage lang beantwortet zu werden. Ich schlage vor, Sie melden es an einem Tag oder so erneut, wenn es nicht gelöst ist - sagen Sie einfach, ich habe es Ihnen gesagt. Danke für dein Verständnis.
Slhck