10

Когда-то я использовал ifdown eth0 для отключения сетевого адаптера. Прошли годы с тех пор, как я смог заставить это работать, в основном с тех пор, как я работал в Ubuntu/Debian.

Я получаю это:

$ sudo ifdown eth0
ifdown: interface eth0 not configured

Если я запускаю ifconfig, я получаю:

eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx  
          inet addr:192.168.20.50  Bcast:192.168.21.255  Mask:255.255.254.0
          inet6 addr: fe80::6e3b:e5ff:fe36:2ee/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1205280 errors:0 dropped:502 overruns:0 frame:0
          TX packets:34930 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:165685286 (165.6 MB)  TX bytes:5754120 (5.7 MB)
          Interrupt:20 Memory:f7f00000-f7f20000 

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:9146 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9146 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:734342 (734.3 KB)  TX bytes:734342 (734.3 KB)

Я гуглил, чтобы узнать, как это сделать, и все, что я могу найти, говорит запустить ifdown eth0. Как остановить сетевой адаптер на коробках Debian/Ubuntu?

4 ответа4

14

Я сталкиваюсь с той же проблемой на Debian. Я не знаю точную причину, однако, это работает с sudo ifconfig eth0 down для меня.

Редактировать: Спасибо @kostix за его аннотации. Я не стал подробно разбираться с проблемой, поскольку использую ее для временного отключения интерфейса. Если вы хотите навсегда сбить его, то путь вниз - ifdown. Чтобы это работало, вам нужно добавить строку eth0=eth0 в /run/network/ifstate и строки auto eth0 и iface eth0 inet dhcp в /etc/network/interfaces .

10

если ifconfig недоступен в вашем дистрибутиве, это означает, что он заменен командой ip . В этом случае решением будет ip link set eth0 down

2

Нет однозначного ответа, так как в Debian может быть несколько способов управления сетью. Я знаю по крайней мере три:

  • "Традиционный" подход, использующий /sbin/ifup , /sbin/ifdown и /etc/init.d/networking , все использует файл конфигурации /etc/network/interfaces . Они предоставляются пакетом ifupdown .

    Поскольку ifdown ничего не знает об адаптере, я считаю, что для управления сетью используется другой способ.

    Мне также известно о пакете, который считается заменой ifupdown , netscript , но поскольку он использует те же средства для управления адаптерами, это, вероятно , также не ваш случай.

  • Сетевой менеджер
  • Wicd

Возможно, вы должны выяснить, какой из них создан и работать оттуда. И nm и wicd обычно настраиваются с помощью инструментов GUI (и обычно через апплеты, начинающиеся вместе с вашим DE). nm имеет инструмент командной строки, который называется nm-cli . Не уверен насчет wicd .

Если вы выполнили простую установку и выбрали задачу "Рабочий стол", то я считаю (хотя и не уверен), что у вас установлен NetworkManager.

1

интерфейс eth0 не настроен

Литералы означает

не настроен в файле /run /network /ifstate

Команды ifupdown имеют гистерезис: после активации интерфейса с помощью ifup он сохраняется в /run/network/ifstate котором вы его активировали.

ifup eth0
cat /run/network/ifstate
eth0=eth0
(+other interfaces)

ifdown eth0
cat /run/network/ifstate
(+other interfaces)

Состояние будет сохранено, даже если операция не удалась (в основном из-за того, что /etc/network/interfaces написана неправильно). Мое основное решение до сих пор состоит в том, чтобы вручную отредактировать /run/network/ifstate чтобы он действовал как eth0, и затем выключить его:

nano /run/network/ifstate
eth0=eth0

ifdown eth0

Затем вы можете начать снова с чистой настройкой.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .