Jak mogę (z CLI) przypisać wiele adresów IP do jednego interfejsu?

43

Na moim serwerze chcę przypisać kilka adresów IP do jednej karty sieciowej, ale bez używania przestarzałej ifconfiglub przestarzałej notacji „alias” (jak eth0:0), /etc/network/interfacesponieważ w IP Aliasing (na www.kernel.org) możesz przeczytać

Aliasy IP to przestarzały sposób zarządzania wieloma adresami IP / maskami na interfejs

guntbert
źródło
ifconfig jest przestarzałe? Nie wiedziałem
Mahesh,
@Mahesh Tak, ifconfig to artefakt z czasów SysV. „iproute2” to bardziej nowoczesne narzędzie. ifconfig będzie jeszcze przez jakiś czas na różnych dystrybucjach, ale tak, to jest przestarzałe; „przestarzałe” to po prostu kolokwializm, który zwykliśmy oznaczać „szukaj czegoś nowszego w użyciu”.
David Betz

Odpowiedzi:

48
  1. Jeśli potrzebujesz na chwilę dodatkowego adresu IP, możesz go dodać do dowolnego interfejsu na swoim komputerze

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

    na przykład

     sudo ip address add 172.16.100.17/24 dev eth0
    

    dodałby 172.16.100.17stosując maskę 24bit do listy adresów skonfigurowane do pracy eth0.

    Możesz sprawdzić wynik za pomocą

    ip address show eth0
    

    i możesz ponownie usunąć ten adres za pomocą

    sudo ip address del 172.16.100.17/24 dev eth0
    

    Oczywiście zmiany te zostaną utracone po ponownym uruchomieniu komputera.

  2. Aby dodatkowe adresy były trwałe, możesz edytować plik /etc/network/interfaces, dodając tyle zwrotek formularza

    iface eth0 static
        address 172.16.100.17/24
    

    tak to wygląda

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

    Możesz nawet zachować dhcpadres podstawowy.

    Aby uaktywnić te ustawienia bez wykorzystania do ponownego ifdown/ifuppodobnego

    sudo ifdown eth0 && sudo ifup eth0
    

    Jest to niezbędne , aby umieścić te dwa polecenia w jednej linii, jeśli usług zdalnych do serwera, ponieważ pierwszy z nich spadnie połączenie! Biorąc pod uwagę w ten sposób, sesja ssh przetrwa.

guntbert
źródło
Możesz zrobić VPN z więcej niż jednym adresem IP, instalując z menedżera oprogramowania.
Michael,
Ponowne uruchomienie systemu Ubuntu 16.04.3 LTS nie jest wymagane po dodaniu lub usunięciu adresu IP
Daniel F
1
wygląda na to, że ifdown jest przestarzałe w nowszych wersjach Ubuntu.
Sajuuk,
20

Dzięki nowemu zestawowi narzędzi dodawanie nowych adresów IP jest tak proste, jak w starym:

ip addr add 192.168.1.1/24 dev eth0

Kiedy patrzysz ip addr showponownie, widzisz drugi adres IP przypisany do interfejsu:

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

Usuń ten adres IP za pomocą:

ip addr del 192.168.1.1/24 dev eth0

Pakiet iproute2:

Pakiet iproute2 to pakiet komunikacyjny do komunikacji między procesami między jądrem a przestrzenią użytkownika za pośrednictwem protokołu netlink. Powinien zastąpić całe standardowe narzędzia sieciowe. Oto, co zastępują:

  • ifconfig-> ip addriip link
  • route -> ip route
  • arp -> ip neigh
  • iptunnel -> ip tunnel
  • ipmaddr -> ip maddr
  • netstat -> ss
chaos
źródło
Dzięki za udostępnienie pasujących poleceń.
guntbert
dzięki @chaos, czy mogę mieć więcej adresów IP niż mój brak interfejsów w moim systemie?
Lazarus
@jazzz tak, jak widać na wyjściu mojego interfejsu powyżej, przypisano mu 2 adresy IP (192.168.0.100 i 192.168.1.1). Możesz dodać kolejny, jeśli chcesz.
chaos
@chaos, ale w jaki sposób można z nich korzystać, dla instancji Chcę utworzyć grupę dla multiemisji ,, mogę utworzyć grupę z nich ,, można proszę odnieść się do mojego zapytania askubuntu.com/questions/547105/...
Łazarz
1
@chaos Akceptuję własną odpowiedź zamiast twojej doskonałej, ponieważ brakuje jej „trwałości”, której oczekuję od konfiguracji serwera.
guntbert
0

Jednym ze sposobów jest:

sudo ip addr add 192.168.0.2/24 dev eth1
Bert
źródło