Как избавиться от 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
Это происходит в недавно перезагруженной системе. У меня есть два вопроса:
- Почему эти ветеринарные интерфейсы присутствуют?
- Как я могу избавиться от них?
Примечание: в последнее время я занимался некоторыми вещами, связанными с Vagrant / VirtualBox, так что это может быть причиной.
3 ответа
Почему те veth
интерфейсы присутствуют?
Возможно, потому что вы используете платформу виртуализации, такую как vmware или virtualbox или vagrant.
Избавиться от veth
интерфейсы!
Я полагаю, что существует лучшее решение, но пока вы можете сделать это таким образом.
Получение имени
interfaces
ifconfig | grep "^veth" | cut -d' ' -f1
Вот
grep "^veth"
выбирает только те интерфейсы (перечисленыifconfig
), которые начинаются сveth
а такжеcut
показывает только имена поd
исключить содержимое и показать только первыйf
IELD.Теперь мы должны выключить драйверы для этого интерфейса, используя
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