Как я могу (из CLI) назначить несколько IP-адресов одному интерфейсу?
На моем сервере я хочу назначить несколько IP-адресов одному NIC, но без использования устаревших ifconfig
или устаревшее обозначение "псевдоним" (например, eth0:0
) в /etc/network/interfaces
потому что в IP Aliasing (на www.kernel.org) вы можете прочитать
IP-псевдонимы - это устаревший способ управления несколькими IP-адресами / масками на интерфейс
3 ответа
Если вам нужен дополнительный IP-адрес, вы можете добавить его к любому интерфейсу на вашей машине с помощью
sudo ip address add <ip-address>/<netmask> dev <interface>
например
sudo ip address add 172.16.100.17/24 dev eth0
добавил бы
172.16.100.17
используя 24-битную маску к списку адресов, настроенных для вашегоeth0
,Вы можете проверить результат с
ip address show eth0
и вы можете удалить этот адрес еще раз с
sudo ip address del 172.16.100.17/24 dev eth0
Конечно, эти изменения теряются при перезагрузке компьютера.
Чтобы сделать дополнительные адреса постоянными, вы можете отредактировать файл
/etc/network/interfaces
добавив как можно больше строф формыiface eth0 static address 172.16.100.17/24
так это выглядит
iface eth0 inet dhcp iface eth0 inet static address 172.16.100.17/24 iface eth0 inet static address 172.16.24.11/24
Вы даже можете сохранить
dhcp
для основного адреса.Для активации этих настроек без перезагрузки используйте
ifdown/ifup
лайкsudo ifdown eth0 && sudo ifup eth0
Важно поместить эти две команды в одну строку, если вы осуществляете удаленное взаимодействие с сервером, поскольку первая из них разорвет ваше соединение! При таком подходе ssh-сессия выживет.
С новым инструментарием так же легко, как и со старым, добавить новые IP-адреса:
ip addr add 192.168.1.1/24 dev eth0
Когда с ip addr show
снова вы видите второй IP-адрес, назначенный интерфейсу:
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
Удалите этот IP-адрес с помощью:
ip addr del 192.168.1.1/24 dev eth0
Комплект iproute2:
Комплект iproute2 - это набор средств связи для межпроцессного взаимодействия между ядром и пространством пользователя по протоколу netlink. Следует заменить целые стандартные сетевые инструменты. Вот что они заменяют:
ifconfig
->ip addr
а такжеip link
route
->ip route
arp
->ip neigh
iptunnel
->ip tunnel
ipmaddr
->ip maddr
netstat
->ss
Одним из способов является:
sudo ip addr add 192.168.0.2/24 dev eth1