- Добавление дополнительного IP
- Шаг 1. Добавление IP на VDS
- Вариант 1: с помощью пакета iproute2
- Вариант 2: с помощью утилиты ifconfig
- Шаг 2. Добавление IP в конфигурацию сервера
- Ubuntu 14.04, 16.04 / Debian 8, 9
- Ubuntu 18.04, 20.04
- CentOS 6, 7
- CentOS 8
- Два Ip адреса на сетевой карте в Linux
- Первый способ как добавить дополнительный второй IP адрес сетевой карте в Linux
- Второй способ настройки дополнительного IP адреса на сетевой карте в Linux
- Третий способ как назначить дополнительный адрес сетевой карте
- How do I add an additional IP address to /etc/network/interfaces?
- 3 Answers 3
Добавление дополнительного IP
Это инструкция для серверов с операционными системами Linux. Если вы используете сервер с ОС Windows, воспользуйтесь этой статьей .
Для добавление дополнительного IP-адреса на сервер необходимо выполнить описанные ниже шаги.
Шаг 1. Добавление IP на VDS
После выделения IP-адреса в панели управления вам необходимо физически добавить этот адрес на сервер. Сделать это вы можете двумя способами, используя предложенные ниже команды.
Вариант 1: с помощью пакета iproute2
Замените 92.53.X.X на корректный IP-адрес:
ip a add 92.53.X.X/32 dev eth0
Замените 2a03:6f00:4::X.X на корректный IPv6-адрес:
ip -f inet6 a add 2a03:6f00:4::X.X/64 dev eth0
Также необходимо указать default route для IPv6, если вы не сделали этого раньше. В примере ниже указан шлюз для адреса из подсети 2a03:6f00:4::X.X/64 , замените его на нужное вам значение (например, для адреса 2a03:6f00:5:1::X.X необходимо указать шлюз 2a03:6f00:5:1::1 , и т.д.).
ip -f inet6 r add default via 2a03:6f00:4::1 dev eth0
Вариант 2: с помощью утилиты ifconfig
Замените 92.53.X.X на корректный IP-адрес:
ifconfig eth0:1 92.53.X.X/32 netmask 255.255.255.0
Замените 2a03:6f00:4::X.X на корректный IPv6-адрес:
ifconfig eth0:1 2a03:6f00:4::X.X/64
Шаг 2. Добавление IP в конфигурацию сервера
После добавления IP-адреса на VDS необходимо добавить этот адрес в конфигурацию сервера, чтобы после перезагрузки он был добавлен автоматически.
Ubuntu 14.04, 16.04 / Debian 8, 9
Откройте файл /etc/network/interfaces :
nano /etc/network/interfaces
Добавьте в него следующие строки, заменив 192.168.X.X на нужный IP:
auto eth0:0
iface eth0:0 inet static
address 192.168.X.X
netmask 255.255.255.0
service networking restart
Откройте файл /etc/network/interfaces :
nano /etc/network/interfaces
Добавьте в него следующие строки заменив адрес и шлюз ( gateway ) на нужные значения:
iface eth0 inet6 static
address 2a03:6f00:5:1::X:X
gateway 2a03:6f00:5:1::1
netmask 64
service networking restart
Ubuntu 18.04, 20.04
Необходимо отредактировать файл /etc/netplan/01-netcfg.yaml :
nano /etc/netplan/01-netcfg.yaml
Строго под строкой dhcp4: yes добавьте в него следующую строку, заменив 192.168.X.X на ваш IP:
Итоговый вариант будет выглядеть примерно так:
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: yes
addresses: [192.168.X.X/32]
Обратите внимание! Необходимо соблюдать иерархичность структуры; каждый новый уровень директив должен начинаться с двух пробелов (не отступов Tab).
Необходимо отредактировать файл /etc/netplan/01-netcfg.yaml :
nano /etc/netplan/01-netcfg.yaml
Строго под строкой dhcp4: yes добавьте следующие строки, указав ваш IP и соответствующий шлюз:
addresses: ["2a03:6f00:5:1::X:X/64"]
gateway6: "2a03:6f00:5:1::1"
Итоговый вариант будет выглядеть примерно так:
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: yes
addresses: ["2a03:6f00:5:1::X:X/64"]
gateway6: "2a03:6f00:5:1::1"
Обратите внимание! Необходимо соблюдать иерархичность структуры; каждый новый уровень директив должен начинаться с двух пробелов (не отступов Tab).
Если необходимо добавить одновременно IPv4- и IPv6-адреса, их можно указать друг за другом в строке addresses , например:
addresses: [192.168.X.X/32, "2a03:6f00:5:1::X:X/64"]
CentOS 6, 7
Создайте файл ifcfg-eth0:1 следующей командой:
touch /etc/sysconfig/network-scripts/ifcfg-eth0:1
Добавьте в него следующие строки (замените 192.168.X.X на нужный IP):
NM_CONTROLLED="no"
DEVICE="eth0:1"
ONBOOT="yes"
BOOTPROTO="static"
IPADDR="192.168.X.X"
PREFIX="32"
Откройте файл /etc/sysconfig/network-scripts/ifcfg-eth0 :
nano /etc/sysconfig/network-scripts/ifcfg-eth0
Добавьте в него следующие строки, указав в строке IPV6ADDR нужный вам IPv6-адрес, а в строке IPV6_DEFAULTGW — соответствующий шлюз:
IPV6ADDR="2a03:6f00:5:1::X:X/64"
IPV6_DEFAULTGW="2a03:6f00:5:1::1"
CentOS 8
Создайте файл ifcfg-ens3:1 следующей командой:
touch /etc/sysconfig/network-scripts/ifcfg-ens3:1
Добавьте в него следующие строки (замените 192.168.X.X на нужный IP):
NM_CONTROLLED="no"
DEVICE="ens3:1"
ONBOOT="yes"
BOOTPROTO="static"
IPADDR="192.168.X.X"
PREFIX="32"
systemctl restart NetworkManager.service
Откройте файл /etc/sysconfig/network-scripts/ifcfg-ens3 :
nano /etc/sysconfig/network-scripts/ifcfg-ens3
Добавьте в него следующие строки, указав в строке IPV6ADDR нужный вам IPv6-адрес, а в строке IPV6_DEFAULTGW — соответствующий шлюз:
IPV6ADDR="2a03:6f00:5:1::X:X/64"
IPV6_DEFAULTGW="2a03:6f00:5:1::1"
systemctl restart NetworkManager.service
Два Ip адреса на сетевой карте в Linux
Иногда возникает необходимость привязать несколько IP адресов к одному сетевому адаптеру. Как оказалось в Linux сделать это очень просто.
В предыдущей статье я писал как настроить сетевую карту используя только консоль в линукс, а конкретно в CentOS. Так вот, настройка дополнительных IP адресов производится теме же командами и способами. С той лишь разницей, что настраивать мы будем уже не саму сетевую карту, а ее подинтерфейс(ы). Иными словами у сетевой карты будет основной адрес и один или несколько дополнительных.
Первый способ как добавить дополнительный второй IP адрес сетевой карте в Linux
Чтобы добавить второй адрес сетевому адаптеру достаточно выполнить команду:
# ifconfig eth0:0 XXX.XXX.XXX.XXX netmask YYY.YYY.YYY.YYY
где YYY.YYY.YYY.YYY — маска сети
XXX.XXX.XXX.XXX — дополнительный IP адрес
а eth0:0 — имя подинтерфейса. Которое состоит из имени сетевого адаптера и номера дополнительного подинтерфейса.
К примеру если мы введем команды:
# ifconfig eth0 172.16.254.33 netmask 255.255.255.0 # ifconfig eth0:0 10.44.225.230 netmask 255.255.255.252
то есть настроим основной адрес и второй дополнительный, то получим примерно следующий результат:
# ifconfig eth0 Link encap:Ethernet HWaddr 00:22:4D:A1:B5:5F inet addr:172.16.254.33 Bcast:172.16.254.255 Mask:255.255.255.0 inet6 addr: fe80::222:4dff:fea1:b55f/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:671877 errors:0 dropped:0 overruns:0 frame:0 TX packets:90532 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:93680865 (89.3 MiB) TX bytes:35292110 (33.6 MiB) Interrupt:16 Memory:80120000-80140000 eth0:0 Link encap:Ethernet HWaddr 00:22:4D:A1:B5:5F inet addr:10.44.225.230 Bcast:10.44.225.231 Mask:255.255.255.252 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:16 Memory:80120000-80140000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:62211 errors:0 dropped:0 overruns:0 frame:0 TX packets:62211 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:5696370 (5.4 MiB) TX bytes:5696370 (5.4 MiB)
Естественно, что подинтерфейсов может быть несколько, соответственно может быть несколько дополнительных IP адресов на одной сетевой карте.
Второй способ настройки дополнительного IP адреса на сетевой карте в Linux
Второй способ — это редактирование конфигурационных файлов. Но теперь уже не для сетевого адаптера, а для его подинтерфейсов. Система имен которых строится по тем же принципам. То есть для подинтерфейса eth0:0 имя файла будет /etc/sysconfig/network-scripts/igcfg-eth0:0
И в моем случае будет иметь следующее содержание:
# cat /etc/sysconfig/network-scripts/igcfg-eth0:0 DEVICE=eth0:0 BOOTPROTO=none NETMASK=255.255.255.252 TYPE=Ethernet IPADDR=10.44.225.230 IPV6INIT=no USERCTL=no
При необходимости его нужно отредактировать, к примеру так:
# nano /etc/sysconfig/network-scripts/igcfg-eth0:0
После чего перезапустите сетевые службы:
и убедитесь, что все работает:
# ifconfig eth0 Link encap:Ethernet HWaddr 00:22:4D:A1:B5:5F inet addr:172.16.254.33 Bcast:172.16.254.255 Mask:255.255.255.0 inet6 addr: fe80::222:4dff:fea1:b55f/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:673649 errors:0 dropped:0 overruns:0 frame:0 TX packets:90795 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:93846686 (89.4 MiB) TX bytes:35395290 (33.7 MiB) Interrupt:16 Memory:80120000-80140000 eth0:0 Link encap:Ethernet HWaddr 00:22:4D:A1:B5:5F inet addr:10.44.225.230 Bcast:10.44.225.231 Mask:255.255.255.252 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:16 Memory:80120000-80140000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:62273 errors:0 dropped:0 overruns:0 frame:0 TX packets:62273 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:5702293 (5.4 MiB) TX bytes:5702293 (5.4 MiB)
Третий способ как назначить дополнительный адрес сетевой карте
Воспользуемся уже знакомой нам утилитой system-config-network-tui
Выбираем пункт настройки адаптеров:
Выбираем необходимый нам подинтерфейс либо выбираем пункт New Device при создании нового:
И настраиваем его по своему усмотрению:
Незабываем сохраняться, после чего перезагружаем сетевую службу:
и проверяем, что все работает:
How do I add an additional IP address to /etc/network/interfaces?
I have an extra IP address available to my server, and so I need to assign it in the interfaces file. At the moment, I’ve got this:
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
What do I add/assign my new IP address ( fff.fff.fff.fff )? And how do I then restart it to accept the new configuration?
3 Answers 3
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
Then you can run sudo ifup eth0:0 to bring it up and sudo ifdown eth0:0 to bring it down.
It may be old (and maybe outdated), but there’s nothing wrong with using this method, since it was not marked ‘deprecated’ and there’s no plan for it being removed in the near future. IMHO this method is cleaner and safer than the others (see the Wilmer’s answer and its comments).
The legacy solution didn’t work for me on Debian Stretch, I ended up with just the second IP. See the iproute2 method, it worked.
You can just have repeated iface stanzas for the same interface. Example from https://wiki.debian.org/NetworkConfiguration#Multiple_IP_addresses_on_one_ :
auto eth0 allow-hotplug eth0 iface eth0 inet static address 192.168.1.42/24 gateway 192.168.1.1 iface eth0 inet static address 192.168.1.43/24 iface eth0 inet static address 192.168.1.44/24 # adding IP addresses from different subnets is also possible iface eth0 inet static address 10.10.10.14/24
So just the solution above but drop the 😡 suffix, which as Heihachi points out is outdated.
(The ip addr suggestion is the worst. It’s ugly and incomplete, as you’ll have to also add a down variant or ifdown won’t work very cleanly.)