Jak dodać dodatkowy adres IP do / etc / network / interfaces?

42

Mam dodatkowy adres IP dostępny dla mojego serwera, dlatego muszę go przypisać w pliku interfejsów. W tej chwili mam to:

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

Co dodać, aby przypisać mój nowy adres IP (fff.fff.fff.fff)? Jak zrestartować go, aby zaakceptować nową konfigurację?

babbaggeii
źródło
Co to za zestaw znaków? Gdzie to znalazłeś?
Green

Odpowiedzi:

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

Następnie możesz pobiec, sudo ifup eth0:0aby go podnieść i sudo ifdown eth0:0sprowadzić.

Eric Carvalho
źródło
4
Jest to przestarzały wariant z aliasami. Zamiast tego użyj poniżej „ip addr”.
Alexander Kim
5
Może być stary (i może przestarzały), ale przy użyciu tej metody nie ma nic złego, ponieważ nie został on oznaczony jako „przestarzały” i nie ma planu, aby usunąć go w najbliższej przyszłości. IMHO ta metoda jest czystsza i bezpieczniejsza niż inne (patrz odpowiedź Wilmera i jej komentarze).
Eric Carvalho,
PS Jeśli używasz auto eth1(nie działało w AWS) nie działa, użyj jak w przykładzie auto eth0:0.
IvRRimUm
Starsze rozwiązanie nie działało dla mnie na Debian Stretch, skończyłem z drugim IP. Zobacz iproute2metodę , która zadziałała.
x-yuri
24

Aby uzyskać dodatkowy adres IP, zwykle dodaję:

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

na dole sekcji w iface eth0 inet staticcelu sudo ip addr add fff.fff.fff.fff/prefixlen dev eth0ponownego uruchomienia w przyszłości, a następnie ponownie uruchom polecenie ręcznie, aby aktywować je bezpośrednio.

Jeśli maska jest 255.255.254.0wtedy prefixlenpowinno być 23dla ciebie.

Chciałbym jednak wiedzieć, czy jest lepszy sposób.

Robie Basak
źródło
dziękuję bardzo, przyjęte podejście nie działa w przypadku wiązania ( ifenslave ), ale to działa!
mekkanizer
upjest problematyczne, ponieważ network-online.target nie czeka na to. usystematyzowane usługi, takie jak nginx, nie powiążą adresu IP dodanego uppodczas uruchamiania
sdaffa23fdsf
W przypadku Debian Stretch / Ubuntu 16.04 Xenial lub nowszej wersji istnieje oficjalne rozwiązanie .
x-yuri
22

Jak wskazuje Heihachi, użycie aliasów ethx: x jest nieaktualne. Jednak ip addrrozwiązanie jest gorsze. Jest brzydka i niekompletna, ponieważ musisz również dodać downwariant lub ifdownnie będzie działał bardzo czysto.

Zobacz https://wiki.debian.org/NetworkConfiguration#Multiple_IP_addresses_on_one_Interface, aby uzyskać lepsze rozwiązanie: Możesz teraz po prostu powtórzyć sekcje iface dla tego samego interfejsu. Więc tylko powyższe rozwiązanie, ale upuść :xprzyrostek.

Wilmer
źródło
2
Z dokumentacji pod linkiem, mówiąc o najnowocześniejszej metodzie robienia rzeczy (zwanej iproute2): Zauważ jednak, że ta metoda jest niebezpieczna ! Niektóre kombinacje sterowników / sprzętu mogą czasami nie wyświetlać łącza, jeśli do interfejsów aliasowych nie są przypisane żadne etykiety. Biorąc pod uwagę, że jest to oficjalna dokumentacja stwierdzająca, że ​​nowy sposób nie jest tak niezawodny, wolałbym trzymać się przestarzałego.
naprawdęnice
1
Głosuj z powodu oficjalnej i precyzyjnej dokumentacji, ale nie z powodu „lepszego rozwiązania”, ponieważ w oficjalnej dokumentacji jest oznaczona jako niebezpieczna.
naprawdęnice
2
@reallynice Rozsądny punkt, choć IMHO, jeśli powoduje to problemy w systemie, który wydaje mi się błędnym jądrem / sterownikiem. Od lat używam wielu adresów IP na jednym interfejsie bez brzydkich aliasów: 0 /: 1 / itd. (Jestem też prawie pewien, że rozwiązanie z Wiki jest funkcjonalnie równoważne powyższemu rozwiązaniu Robbiego).
Wilmer
@Wilmer Mam urządzenie vmxnet3 (VMware ESXi 6.5) na Ubuntu 16.04 i mogłem tylko uzyskać nowy sposób na uruchomienie pierwszego urządzenia. Usunięcie sufiksu: x wyraźnie nie było dla mnie lepsze. Dokumentacja usunęła błąd, który otrzymywałem z sufiksem: x.
jbo5112,
Ostatni znany problem z iproute2metodą miał miejsce w 2015 r . A starsza metoda (czy zauważyłeś nazwę?) Nie działała dla mnie w Debian Stretch. Wyglądało na to, że późniejsze opcje (z eth0:0) zastąpiły wcześniejsze ( from eth0). To znaczy, systemctl restart networkingkiedy skończyłem z drugim adresem IP (pierwszy adres IP został odłączony).
x-yuri