Как избавиться от veth интерфейсов?

Я не уверен, почему / когда, некоторые veth интерфейсы появились в моей системе (Ubuntu 16.0. LTS):

» ifconfig | grep veth
veth4556676 Link encap:Ethernet  HWaddr ee:b9:b9:ed:71:a6  
veth8747335 Link encap:Ethernet  HWaddr 66:40:47:fd:1f:a7  
veth13905bf Link encap:Ethernet  HWaddr ae:73:8f:f7:9d:d4  
veth2636dd7 Link encap:Ethernet  HWaddr fa:b8:3c:d4:52:9c  
veth42de626 Link encap:Ethernet  HWaddr 92:08:43:90:6e:f3  
veth4eedb05 Link encap:Ethernet  HWaddr 66:5f:b8:e7:52:05  
veth7534db0 Link encap:Ethernet  HWaddr 16:9c:06:e6:f2:aa  
veth83508c7 Link encap:Ethernet  HWaddr 5a:55:6c:ee:e5:7b  
veth8f275d6 Link encap:Ethernet  HWaddr 46:18:a1:52:7f:e9  
veth9f370c9 Link encap:Ethernet  HWaddr da:9e:49:37:b4:16  
vethb96da94 Link encap:Ethernet  HWaddr 42:11:90:11:8a:f4  
vethba463c9 Link encap:Ethernet  HWaddr 06:40:d5:9a:79:7a  
vethd820900 Link encap:Ethernet  HWaddr a2:94:53:c8:53:bf  
vethdd077a0 Link encap:Ethernet  HWaddr 1a:f9:00:93:05:5e  
vethef191e6 Link encap:Ethernet  HWaddr b2:b0:e1:68:50:7c  
vethf70a6f9 Link encap:Ethernet  HWaddr a6:a7:72:dd:88:69  

Это происходит в недавно перезагруженной системе. У меня есть два вопроса:

  1. Почему эти ветеринарные интерфейсы присутствуют?
  2. Как я могу избавиться от них?

Примечание: в последнее время я занимался некоторыми вещами, связанными с Vagrant / VirtualBox, так что это может быть причиной.

3 ответа

Почему те veth интерфейсы присутствуют?

Возможно, потому что вы используете платформу виртуализации, такую ​​как vmware или virtualbox или vagrant.

Избавиться от veth интерфейсы!

Я полагаю, что существует лучшее решение, но пока вы можете сделать это таким образом.

  • Получение имени interfaces

    ifconfig | grep "^veth" | cut -d' ' -f1
    

    Вот grep "^veth" выбирает только те интерфейсы (перечислены ifconfig), которые начинаются с veth а также cut показывает только имена по dисключить содержимое и показать только первый fIELD.

  • Теперь мы должны выключить драйверы для этого интерфейса, используя

    ifconfig vethxxxxxx down
    

    Кроме того, вы можете сделать это с помощью ip команда (как предложено dirkt).

    ip link set $veth down
    

    Но так как их слишком много, используйте for цикл как это:

    for veth in $(ifconfig | grep "^veth" | cut -d' ' -f1)
    do
        ifconfig $veth down    # OR this ip link set $veth down
    done
    
  • Вот одна строка для копирования пасты:

    for veth in $(ifconfig | grep "^veth" | cut -d' ' -f1); do ifconfig $veth down; done
    

Не стесняйтесь добавлять больше материала к ответу.

Добавляя к ответу @C0deDaedalus, предоставленное решение не работает для меня полностью, поэтому я изменил его, чтобы он работал сip:

Отключите все интерфейсы

      for veth in $(ip a | grep veth | cut -d' ' -f 2 | rev | cut -c2- | rev | cut -d '@' -f 1 )
do
    sudo ip link set $veth down
done

Удалить все интерфейсы

      for veth in $(ip a | grep veth | cut -d' ' -f 2 | rev | cut -c2- | rev | cut -d '@' -f 1 )      
do
    sudo ip link delete $veth  
done

В зависимости от того, есть ли у вас root или нет, вы можете сохранитьsudoили нет

Попробуйте улучшить сценарий (легко читается)

найти имя интерфейса (выберите тот, который вам нравится)

      ip link | grep -Eo '\bveth\w+'

ifconfig | grep -Eo '^veth\w+'

ifconfig | grep '^veth' | cut -d':' -f1

выключи интерфейс

      for f in `ifconfig | grep -Eo '^veth\w+'`;
  do echo === $f;
  sudo ifconfig $f up;
done

ПРИМЕЧАНИЕ .
Когда я отключаю этот интерфейс, мой экземпляр докера не работает.

О Veth :
https://vivek-syngh.medium.com/linux-virtual-ethernet-devices-aba9c3840d0d

https://developers.redhat.com/blog/2018/10/22/introduction-to-linux-interfaces-for-virtual-networking#

https://man7.org/linux/man-pages/man4/veth.4.html

Другие вопросы по тегам