Есть ли эквивалентная команда для «init.d / перезапуск сети» в OS X

17

Время от времени я сталкивался с проблемами с сетевыми подключениями клиентов OS X (Wired и Wireless, Leopard / Snow Leopard), где ничто не решит проблему до перезагрузки.

  • Есть ли какой-то особый «сетевой сервис / процесс», за которым я должен следить?
  • Я подумал, что было бы полезно узнать о команде, которая будет сбрасывать службу / процесс типа «сетевое соединение» (аналогично запуску sudo /etc/init.d/networking restart).

После устранения основных неполадок, таких как DHCP, DNS, проверки на неисправность интерфейса (отключение / включение), проверки журналов и отсутствия достаточного количества полезной информации, иногда, когда все остальное не помогает, лучше всего перезагрузить компьютер. Я не уверен, что все «init.d / перезапуск сети» делает в Linux, но я знаю, что это гораздо полезнее, чем отключение и включение интерфейсов.

Благодарность!

l0c0b0x
источник
1
Вы говорите, что «ничего» не исправит это… можете ли вы сказать нам, что вы пробовали, но это не сработало?
TCampbell
Хе-хе, почти все в моих руках ... и это не было одной проблемой, это было много ... опять же, как с проводной, так и с беспроводной связью. Например, я видел проблему, когда сетевая карта НЕ будет реагировать даже после отключения и включения (на двух разных машинах с разными версиями OS X и разными моделями). Я бы не стал спрашивать об этом, если бы проблемы не были случайными :)
l0c0b0x
Вам удалось выяснить, как заставить сеть работать снова без перезагрузки, у меня та же проблема. Действительно странная вещь заключается в том, что я использую Windows в VMWare и все еще имею сетевое подключение из сеанса VMWare.
2
Если говорить прямо, ваш вопрос немного похож на обращение к врачу: «Я болен, дайте мне лекарство, которое вылечит меня». Перезапуск /etc/init.d/networking в основном удаляет интерфейс, вызывает его снова и затем применяет настроенную адресацию. Некоторые драйверы карт Ethernet повторно инициализируют карту каждый раз, когда она поднимается. Это может быть причиной того, что перезагрузка сети сработала так хорошо для вас. Я хочу сказать, если вы хотите получить достойный ответ, можете ли вы сосредоточиться на самом раздражающем примере этого? Например, все ли ваши ситуации в одном месте? Означает ли "проблемы" "не загружать веб-страницы?"
эфирная рыба
1
У меня была еще мрачная версия. Время от времени вся сеть будет падать. Раскрывающиеся списки wifi и на панели Prefs в сетевой системе список на стороне пуст. Theres даже не "Wi-Fi", чтобы перезагрузить. ifconfig пуст, даже не локальная петля. Перезапуск /etc/init.d/network был бы довольно приятным, но, возможно, с машиной в этом состоянии перезагрузка - это именно то, что нужно. На lunix я могу перезагрузить модули ядра, перезагрузить сеть, все виды хорошо документированных вещей. когда добросовестный старый Maccenbox добирается таким образом, технически называемый «гадить на кровати», я вынимаю вилку :(
Шейн

Ответы:

19

Вы можете отключить сетевой интерфейс и снова включить его, что должно сделать то же самое.

sudo ifconfig en0 down
sudo ifconfig en0 up
Мартин М
источник
2
Я думаю, что это будет то же самое, что перейти к pref / panel и отключить устройство и включить обратно, верно? (что, конечно, я пробовал).
2010 года
У меня гораздо больше сетевых интерфейсов, чем en0. Это на самом деле не эквивалентно задаваемому вопросу.
мужчина
11

Нет, нет init.d / service / launchctl, эквивалентного 'init.d / network'.

Если это связано с Wi-Fi, вы можете указать интерфейс из командной строки (на SL) с помощью: /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport

Если это проводной, используйте ifconfig.

Кроме того ... Я бы проверил dmesg и / var / log / * на ошибки.

Вы также можете выгрузить / перезагрузить kld или проверить его на наличие ошибок ... и перезагрузить его, но я никогда не пробовал этого, я бы просто перезагрузился. :)

Видеть:

kextfind (8) - найти расширения ядра (kexts) на основе множества критериев и информацию для печати.
kextload (8) - загрузить расширения ядра (kexts) в ядро.
kextunload (8) - завершить работу экземпляров драйвера комплекта ввода-вывода драйвера и выгрузить ядро. extensions (kexts)
kextutil (8) - загружать, диагностировать проблемы и генерировать символы для расширений ядра (kexts)

Essobi
источник
1
+1 за ответ «ядро».
l0c0b0x
8

Если вы хотите сделать это из оболочки ssh / remote:

sudo ifconfig <interface> down;sleep 1;sudo ifconfig <interface> up
Bluetouque
источник
3

Если простое « ifconfigвверх / вниз» не сработает, создайте дополнительное «Местоположение», в котором отключены все сетевые устройства, затем запустите, scutilчтобы переключиться на него, поспите пару секунд, а затем верните его обратно.

Тем не менее, я не видел, чтобы это происходило ни на одном из моих компьютеров Mac, за исключением случаев, когда DHCP-сервер работал, и это совпало с обновлением аренды (и, таким образом, Mac неправильно настроен). Является ли конфигурация сети действительно правильной, когда это происходит? Если это DHCP, влияет ли нажатие кнопки «Обновить» в «Настройках сети»> {Устройство}> TCP / IP? Как насчет беспроводной связи, чтобы отключить и снова включить аэропорт? Если вы можете выяснить, что, помимо перезагрузки, вернет его обратно, то вы на большой шаг приблизились к выяснению того, что на самом деле вызывает поведение - ударив по нему большой палкой (что и является эффективным отскоком интерфейсов), только когда-нибудь повлияет на симптомы, а не на причину.

Пн.
источник
Добавил еще немного информации к вопросу. Да, в этом случае (сегодня утром) DHCP работал нормально, так же как и DNS. Я ищу шаг «если все не получится», который не включает перезагрузку ОС.
l0c0b0x
1
в Linux в /etc/init.d/networking stopзначительной степени подходит только ifconfig ethX downдля каждого интерфейса. он также может очистить таблицу маршрутизации и, возможно, очистить кэш ARP. магия в startкоманде, а не stop- и все, что делает, это настраивает адресацию и маршрутизирует (или обновляет аренду DHCP, если это необходимо), если модуль сетевого устройства уже присутствует. Перезагрузка очень редко очень лучший способ действий.
Пн
уточнить - когда вы говорите , DHCP и DNS работают нормально, это выход из ifconfigи arpна клиентских машинах такой же , как при нормальных условиях? Могут ли ваши коммутаторы связаться с ними, даже если они не видят других вещей в сети? для того, чтобы это происходило достаточно часто (и с такими различными условиями), чтобы вы могли задать вопрос, я бы честно посмотрел на часть инфраструктуры, кроме самих клиентов.
Пн
Может быть, это в основном то, что я пытаюсь ответить здесь, что на самом деле делает для вас остановка / запуск сети ... и как вы можете сделать то же самое в OSX. В этом случае машина OSX смогла получить IP-адрес, но не подключилась к точке доступа для аутентификации / активного портала (ассоциация была в порядке), я должен был сделать tcpdump, чтобы выяснить, где происходит сбой COM, но решил перезагрузить компьютер, и это, похоже, решило проблему. Меня беспокоит то, что у меня были проблемы до того, что даже отключение / включение сетевого адаптера не помогло, когда перезагрузка сделала.
l0c0b0x
ладно ... ближайший эквивалент networking restart - отключение / включение интерфейсов - это то, что делают эти сценарии оболочки. так что, если это не сработает, то это проблема с драйверами или оборудованием. Учитывая, что это происходит на множестве разных машин в разных версиях ОС, как по проводной, так и по беспроводной сети, единственным реальным общим фактором является инфраструктура, к которой они подключаются.
Пн
1

У меня возникла та же проблема (через несколько часов сеть стала работать медленно, я в основном работаю на Mac, подключенном через проводную сеть к компьютеру с Windows), и мне удалось отключить компьютер, к которому я был подключен (в Finder) и выключите Ethernet (Системные настройки -> Сеть -> Ethernet -> Выкл.), а затем снова подключите их. :)

Педро Лая
источник