Wie kann ich (von CLI aus) einer Schnittstelle mehrere IP-Adressen zuweisen?

43

Auf meinem Server möchte ich einer Netzwerkkarte mehrere IP-Adressen zuweisen, aber ohne die veraltete ifconfigoder veraltete "Alias" -Notation (like eth0:0) in zu verwenden, /etc/network/interfacesda Sie im IP-Aliasing (auf www.kernel.org) lesen können

IP-Aliase sind eine veraltete Möglichkeit, mehrere IP-Adressen / Masken pro Schnittstelle zu verwalten

guntbert
quelle
ifconfig ist veraltet? Ich wusste es nicht.
Mahesh
@ Mahesh Ja, ifconfig ist ein Artefakt aus der SysV-Ära. 'iproute2' ist das modernere Werkzeug. ifconfig wird für eine Weile in verschiedenen Distributionen verfügbar sein, aber ja, es ist veraltet. "Veraltet" ist nur eine umgangssprachliche Bezeichnung für "Suche nach etwas Neuerem".
David Betz

Antworten:

48
  1. Wenn Sie nur für den Moment eine zusätzliche IP-Adresse benötigen, können Sie diese mit einer beliebigen Schnittstelle auf Ihrem Computer hinzufügen

     sudo ip address add <ip-address>/<netmask> dev <interface>
    

    zum Beispiel

     sudo ip address add 172.16.100.17/24 dev eth0
    

    würde unter 172.16.100.17Verwendung einer 24-Bit-Netzmaske zu der Liste der für Sie konfigurierten Adressen hinzufügen eth0.

    Sie können das Ergebnis mit überprüfen

    ip address show eth0
    

    und mit können Sie diese Adresse wieder löschen

    sudo ip address del 172.16.100.17/24 dev eth0
    

    Natürlich gehen diese Änderungen verloren, wenn Sie Ihren Computer neu starten.

  2. Um die zusätzlichen Adressen dauerhaft zu machen, können Sie die Datei bearbeiten, /etc/network/interfacesindem Sie so viele Zeilengruppen des Formulars hinzufügen

    iface eth0 static
        address 172.16.100.17/24
    

    so dass es aussieht

    iface eth0 inet dhcp
    
    iface eth0 inet static
        address 172.16.100.17/24
    
    iface eth0 inet static
        address 172.16.24.11/24
    

    Sie können sogar die dhcpfür die primäre Adresse behalten .

    Um diese Einstellungen ohne Neustart zu aktivieren, verwenden Sie ifdown/ifuplike

    sudo ifdown eth0 && sudo ifup eth0
    

    Es ist wichtig , dass Sie diese beiden Befehle in eine Zeile setzen, wenn Sie eine Remotefunktion auf dem Server ausführen, da die erste Ihre Verbindung unterbricht! Auf diese Weise wird die SSH-Sitzung überleben.

guntbert
quelle
Sie können einen VPN mit mehr als einer IP-Adresse erstellen, indem Sie vom Software-Manager aus installieren.
Michael
Unter Ubuntu 16.04.3 LTS ist nach dem Hinzufügen oder Löschen einer IP kein Neustart erforderlich
Daniel F
1
Es sieht so aus, als ob ifdown in neueren Ubuntu-Versionen veraltet ist.
Sajuuk
20

Mit dem neuen Toolkit ist es genauso einfach wie mit dem alten Toolkit, neue IP-Adressen hinzuzufügen:

ip addr add 192.168.1.1/24 dev eth0

Bei ip addr showerneuter Suche sehen Sie die zweite der Schnittstelle zugewiesene IP-Adresse:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.100/24 brd 192.168.0.255 scope global eth0
    inet 192.168.1.1/24 scope global eth0
    inet6 fe80::223:54ff:fe45:f307/64 scope link
       valid_lft forever preferred_lft forever

Entfernen Sie diese IP-Adresse mit:

ip addr del 192.168.1.1/24 dev eth0

Die iproute2 Suite:

Die iproute2-Suite ist die Kommunikationssuite für die Interprozesskommunikation zwischen dem Kernel und dem Benutzerbereich über das Netlink-Protokoll. Es sollte die gesamten Standard-Netzwerkwerkzeuge ersetzen. Folgendes ersetzen sie:

  • ifconfig-> ip addrundip link
  • route -> ip route
  • arp -> ip neigh
  • iptunnel -> ip tunnel
  • ipmaddr -> ip maddr
  • netstat -> ss
Chaos
quelle
Danke für die Bereitstellung der passenden Befehle.
guntbert
thx @chaos, kann ich mehr IPs haben als meine Anzahl von Schnittstellen auf meinem System?
Lazarus
@jazzz Ja, wie Sie in der Ausgabe meines Interfaces oben sehen können, wurden ihm 2 IP-Adressen zugewiesen (192.168.0.100 und 192.168.1.1). Sie können bei Bedarf eine weitere hinzufügen.
Chaos
@chaos, aber wie kann ich sie verwenden, für eine Instanz Ich möchte eine Gruppe erstellen zum Sammels ,, kann ich von ihnen eine Gruppe bilden , ,, können Sie bitte auf meine Frage beziehen askubuntu.com/questions/547105/...
lazarus
1
@chaos Ich akzeptiere meine eigene Antwort anstelle Ihrer exzellenten, da Ihrer die "Permanenz" fehlt, die ich für eine Serverkonfiguration erwarte.
guntbert
0

Ein Weg ist:

sudo ip addr add 192.168.0.2/24 dev eth1
Bert
quelle