Wie füge ich eine zusätzliche IP-Adresse zu / etc / network / interfaces hinzu?

42

Ich habe eine zusätzliche IP-Adresse für meinen Server und muss diese in der Interface-Datei zuweisen. Im Moment habe ich folgendes:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address aaa.aaa.aaa.aaa
netmask 255.255.254.0
gateway bbb.bbb.bbb.bbb
dns-nameservers ccc.ccc.ccc.ccc ddd.ddd.ddd.ddd eee.eee.eee.eee
dns-search vps-number.com

Was füge ich hinzu, um meine neue IP-Adresse zuzuweisen (fff.fff.fff.fff)? Und wie starte ich es dann neu, um die neue Konfiguration zu akzeptieren?

babbaggeii
quelle
Was für ein Zeichensatz ist das? Wo hast du das gefunden?
Grün

Antworten:

55
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
  address aaa.aaa.aaa.aaa
  netmask 255.255.254.0
  gateway bbb.bbb.bbb.bbb
  dns-nameservers ccc.ccc.ccc.ccc ddd.ddd.ddd.ddd eee.eee.eee.eee
  dns-search vps-number.com

auto eth0:0
iface eth0:0 inet static
  address fff.fff.fff.fff
  netmask 255.255.254.0

Dann kannst du rennen sudo ifup eth0:0, um es hoch und sudo ifdown eth0:0runter zu bringen.

Eric Carvalho
quelle
4
Dies ist eine veraltete Variante mit Aliasen. Verwenden Sie stattdessen unten eins mit "ip addr".
Alexander Kim
5
Es mag alt (und vielleicht veraltet) sein, aber es ist nichts Falsches daran, diese Methode zu verwenden, da sie nicht als "veraltet" markiert wurde und es keinen Plan gibt, sie in naher Zukunft zu entfernen. IMHO ist diese Methode sauberer und sicherer als die anderen (siehe die Antwort von Wilmer und seine Kommentare).
Eric Carvalho
PS Wenn mit auto eth1(es hat nicht auf AWS funktioniert) funktioniert nicht wie im Beispiel auto eth0:0.
IvRRimUm
Die alte Lösung hat bei Debian Stretch nicht funktioniert , ich hatte nur die zweite IP. Siehe die iproute2Methode , es hat funktioniert.
X-Yuri
24

Für eine zusätzliche IP-Adresse füge ich normalerweise hinzu:

up ip addr add fff.fff.fff.fff/prefixlen dev eth0

iface eth0 inet staticKlicken Sie für zukünftige Neustarts auf die Zeilengruppe unten und führen Sie den Befehl sudo ip addr add fff.fff.fff.fff/prefixlen dev eth0erneut manuell aus, um ihn direkt zu aktivieren.

Wenn Ihre Netzmaske ist 255.255.254.0dann prefixlensollte 23für Sie.

Ich würde gerne wissen, ob es einen besseren Weg gibt.

Robie Basak
quelle
Vielen Dank, der akzeptierte Ansatz funktioniert nicht für das Bonden ( ifenslave ), aber das tut es!
Mekkanizer
upist problematisch, da network-online.target nicht darauf wartet. Systemdiensten wie nginx up
gelingt
Für Debian Stretch / Ubuntu 16.04 Xenial oder höher gibt es die offizielle Lösung .
X-Yuri
22

Wie Heihachi betont, ist die Verwendung von ethx: x-Aliasen veraltet. Die ip addrLösung ist jedoch schlechter. Es ist hässlich und unvollständig, da Sie auch eine downVariante hinzufügen müssen oder ifdownnicht sehr sauber arbeiten.

Siehe https://wiki.debian.org/NetworkConfiguration#Multiple_IP_addresses_on_one_Interface für eine bessere Lösung: Sie können jetzt nur noch für die gleiche Schnittstelle wiederholt iface Strophen haben. Also eben die Lösung oben aber das :xSuffix weglassen.

Wilmer
quelle
2
In der Dokumentation zu Ihrem Link finden Sie Informationen zur modernsten Methode (iproute2): Beachten Sie jedoch, dass diese Methode gefährlich ist ! Bestimmte Treiber / Hardware-Kombinationen können die Verknüpfung manchmal nicht herstellen, wenn den Alias-Schnittstellen keine Bezeichnungen zugewiesen sind. In Anbetracht der offiziellen Dokumentation, die besagt, dass der neue Weg nicht so zuverlässig ist, würde ich es vorziehen, bei dem veralteten zu bleiben.
Wirklich schöner
1
Upvote wegen offizieller und präziser Referenzdokumentation, aber nicht für "eine bessere Lösung", da es in der offiziellen Dokumentation als gefährlich gekennzeichnet ist.
Wirklich schön
2
@reallynice Angemessener Punkt, obwohl IMHO, wenn dies Probleme auf einem System verursacht, das für mich wie ein fehlerhafter Kernel / Treiber klingt. Ich verwende seit Jahren mehrere IP-Adressen auf einer einzelnen Schnittstelle ohne die hässlichen Aliase: 0 /: 1 / etc. (Außerdem bin ich mir ziemlich sicher, dass die Lösung aus dem Wiki funktional der obigen Lösung von Robbie entspricht.)
Wilmer
@Wilmer Ich habe ein vmxnet3-Gerät (VMware ESXi 6.5) unter Ubuntu 16.04, und ich konnte nur den neuen Weg finden, das erste Gerät aufzurufen. Das Löschen des: x-Suffix war für mich eindeutig nicht besser. Die Dokumentation hat einen Fehler behoben, den ich mit dem Suffix: x erhalten habe.
jbo5112
Das letzte bekannte Problem mit der iproute2Methode war im Jahr 2015 . Und die Legacy-Methode (haben Sie den Namen bemerkt?) Hat bei Debian Stretch bei mir nicht funktioniert. Es schien, als ob die späteren Optionen (von eth0:0) die früheren ( from eth0) überschrieben . Das heißt, nachdem systemctl restart networkingich nur die zweite IP erhalten hatte (die erste IP wurde getrennt).
X-Yuri