Как я могу очистить IP-адрес интерфейса Ethernet, не выключая и не перезагружая интерфейс?


78

Что такое команда Linux для очистки IP-адреса интерфейса без его отключения и / или перезапуска сетевых служб. Кажется странным, если ifconfig может изменить IP-адрес, но не имеет возможности его очистить, или я ошибаюсь?


1
@ Энди: Я думаю, вы неправильно поняли вопрос. @jackhab хочет отменить назначение адреса из интерфейса, а не устанавливать его 0.0.0.0- это просто то, как это делается ifconfig.
Гравитация

@ Grawity Cheers. Отмена назначения адреса означает отключение сетевого адаптера для всех целей и задач?
Энди

@ Энди: Не обязательно. Можно все еще смотреть входящие пакеты. Кроме того, сетевая карта может иметь несколько адресов (хотя в данном случае это не применимо).
Гравитация

Ответы:


134

Используйте ipот iproute2. (Вы также должны указать длину префикса.)

ip addr del 10.22.30.44/16 dev eth0

Чтобы удалить все адреса (если у вас есть несколько):

ip addr flush dev eth0

Работает, но когда я хочу сделать постоянное изменение не-dev, я получаю сообщение об ошибке "eth0 is garbage" (смеется). Я думаю, мне нужно вручную отредактировать этот файл, просто не могу вспомнить имя прямо сейчас
Housemd

24

Так же просто, как ifconfig eth0 0.0.0.0. Они должны были поместить это в руководство.


9

Чтобы удалить все адреса из всех интерфейсов, которые я использовал для цикла:

for i in $(ls /sys/class/net/) ; do
    /usr/sbin/ip addr flush $i &
done

1

Возможно, вы просто хотите получить новый IP-адрес от маршрутизатора [DHCP-enabled]? В этом случае позвоните

dhclient eth0


Это сработало, в то время как назначение IP-адреса не помогло работе сети. Спасибо.
Rich_F
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.