Czy w systemie OS X istnieje równoważne polecenie „init.d / restart sieciowy”

17

Od czasu do czasu napotykałem problemy z połączeniami sieciowymi klientów OS X (przewodowe i bezprzewodowe, Leopard / Snow Leopard), w których nic nie naprawi problemu, dopóki nie uruchomisz się ponownie.

  • Czy jest jakaś szczególna „usługa / proces sieciowy”, na którą powinienem uważać?
  • Pomyślałem, że przydałaby się znajomość polecenia, które zresetuje usługę / proces typu „połączenie sieciowe” (tak samo jak uruchomienie sudo /etc/init.d/networking restart).

Po podstawowych problemach z rozwiązywaniem problemów, takich jak DHCP, DNS, sprawdzaniu nieprawidłowego działania interfejsu (wyłączanie / włączanie), sprawdzaniu dzienników i nie znajdowaniu wystarczającej liczby pomocnych informacji, czasami gdy wszystko inne zawiedzie, najlepszą rzeczą jest po prostu ponowne uruchomienie komputera. Nie jestem pewien, co robi wszystko „init.d / restart sieciowy” w Linuksie, ale wiem, że jest to o wiele bardziej pomocne niż wyłączanie i włączanie interfejsów.

Dzięki!

l0c0b0x
źródło
1
Mówisz, że „nic” to nie naprawi… czy możesz nam powiedzieć, co próbujesz, ale to nie zadziałało?
TCampbell,
Hehehe, prawie wszystko w zasięgu ręki ... i to nie był jeden problem, było wielu ... znowu, zarówno przewodowych, jak i bezprzewodowych. Na przykład widziałem problem polegający na tym, że karta sieciowa NIE zadziała ponownie, nawet po wyłączeniu i włączeniu (na dwóch różnych komputerach z różnymi wersjami systemu OS X i różnymi modelami). Nie zapytałbym tego, czy problemy nie były przypadkowe :)
l0c0b0x
Czy udało Ci się dowiedzieć, jak ponownie uruchomić sieć bez ponownego uruchamiania, mam ten sam problem. Naprawdę dziwne jest to, że korzystam z systemu Windows w VMWare i nadal mam połączenie sieciowe z sesji VMWare.
2
Mówiąc wprost, twoje pytanie jest trochę jak pójście do lekarza i powiedzenie: „Jestem chory, daj mi lek, który mnie wyleczy”. Ponowne uruchomienie /etc/init.d/networking po prostu upuszcza interfejs, podnosi go ponownie, a następnie stosuje skonfigurowane adresowanie. Niektórzy kierowcy kart Ethernet ponownie inicjalizują kartę za każdym razem, gdy zostanie podniesiona. Być może dlatego ponowne uruchomienie sieci działało tak dobrze dla Ciebie. Chodzi mi o to, że jeśli chcesz wartościowej odpowiedzi, możesz skupić się na najbardziej irytującym tego przykładzie? Czy na przykład wszystkie Twoje sytuacje znajdują się w tej samej lokalizacji? Czy „problemy” oznaczają „nie ładuje stron internetowych?”
Eterfish
1
Miałem jeszcze bardziej gnarlier wersję. Co jakiś czas wszystko sieć spada. Rozwijane piłki plażowe Wi-Fi i na panelu Preferencje systemowe w sieci lista z boku jest pusta. Nie ma nawet „wifi” do ponownego uruchomienia. ifconfig jest pusty, nawet sprzężenie zwrotne hosta lokalnego. Ponowne uruchomienie /etc/init.d/network byłoby całkiem miłe, ale być może przy maszynie w tym stanie ponowne uruchomienie jest dokładnie tym, czego potrzeba. Na lunix mogę przeładowywać moduły jądra, restartować sieć, różnego rodzaju dobrze udokumentowane rzeczy. kiedy zaufany stary Maccenbox dostaje się w ten sposób, technicznie nazywany „sraniem łóżka”, wyciągam wtyczkę :(
Shayne

Odpowiedzi:

19

Możesz obniżyć interfejs sieciowy i przywrócić go ponownie, co powinno zrobić to samo.

sudo ifconfig en0 down
sudo ifconfig en0 up
Martin M.
źródło
2
Myślę, że byłoby to tak samo jak przejście do pref / panel i wyłączenie urządzenia i włączenie z powrotem, prawda? (co oczywiście próbowałem).
l0c0b0x
Mam o wiele więcej interfejsów sieciowych niż en0. To nie jest tak naprawdę równoważne zadawanemu pytaniu.
gman
11

Nie, nie ma init.d / service / launchctl równoważnego z „init.d / networking”.

Jeśli jest to związane z Wi-Fi, możesz zaczepić interfejs z wiersza poleceń (na SL) za pomocą: /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport

Jeśli jest podłączony, użyj ifconfig.

Poza tym ... Sprawdziłbym dmesg i / var / log / * pod kątem błędów.

Możesz także rozładować / przeładować kld lub sprawdzić, czy nie ma błędów .. i załadować go ponownie, ale nigdy tego nie próbowałem, wolę po prostu zrestartować komputer. :)

Widzieć:

kextfind (8) - znajdź rozszerzenia jądra (kexts) na podstawie różnych kryteriów i drukuj informacje
kextload (8) - ładuj rozszerzenia jądra (kexts) do jądra
kextunload (8) - zakończ instancje sterownika I / O Kit i zwolnij jądro extensions (kexts)
kextutil (8) - ładuje, diagnozuje problemy i generuje symbole dla rozszerzeń jądra (kexts)

Essobi
źródło
1
+1 za odpowiedź „związaną z jądrem”.
l0c0b0x 10.01.11
8

Jeśli chcesz to zrobić z powłoki ssh / zdalnego:

sudo ifconfig <interface> down;sleep 1;sudo ifconfig <interface> up
Bluetouque
źródło
3

Jeśli proste ifconfigprzejście w górę / w dół nie zadziała, utwórz dodatkową „Lokalizację”, w której wszystkie urządzenia sieciowe są wyłączone, a następnie uruchom ją, scutilaby przełączyć się na nią, przespać kilka sekund, a następnie przywrócić.

To powiedziawszy, nie widziałem, aby zdarzyło się to na żadnym z moich komputerów Mac, z wyjątkiem sytuacji, w której serwer DHCP miał awarię i zbiegło się to z odnowieniem dzierżawy (a więc komputer Mac został źle skonfigurowany). Czy konfiguracja sieci jest rzeczywiście prawidłowa, gdy to nastąpi? Jeśli są DHCP, to czy naciśnięcie przycisku „Odnów” w Preferencjach sieciowych> {Urządzenie}> TCP / IP ma jakikolwiek wpływ? A co w przypadku łączności bezprzewodowej, wyłączenie i ponowne włączenie lotniska? Jeśli możesz dowiedzieć się, co - oprócz ponownego uruchomienia - przywróci to z powrotem, to jesteś o krok bliżej do ustalenia, co tak naprawdę wyzwala zachowanie - uderzając go dużym kijem (to jest to, co skutecznie odbija interfejsy), tylko wywoła objawy, a nie przyczynę.

Mo.
źródło
Dodano więcej informacji do pytania. Tak, w tym przypadku (dziś rano) DHCP działał dobrze, podobnie jak DNS. Szukam kroku „jeśli wszystko się nie powiedzie”, który nie obejmuje ponownego uruchomienia systemu operacyjnego.
l0c0b0x
1
na Linuksie, /etc/init.d/networking stopprawie robi po prostu ifconfig ethX downdla każdego interfejsu. może również opróżnić tabelę routingu i ewentualnie wyczyścić pamięć podręczną ARP. magia tkwi w startpoleceniu, a nie w stop- i wszystko, co robi, to konfigurowanie adresowania i tras (lub odnawianie dzierżawy DHCP, jeśli jest to właściwe), jeśli moduł urządzenia sieciowego jest już obecny. Ponowne uruchomienie jest bardzo, bardzo rzadko rzadko najlepszym sposobem działania.
Pon
wyjaśnić - kiedy mówisz, że DHCP i DNS działają dobrze, czy dane wyjściowe z ifconfigi arpna komputerach klienckich są takie same jak w normalnych okolicznościach? czy twoje przełączniki mogą do nich dotrzeć, nawet jeśli nie widzą innych rzeczy w sieci? aby zdarzało się to wystarczająco często (i przy tak różnorodnych warunkach), abyś mógł zadać pytanie, z czystą szczerością przyjrzałbym się części infrastruktury innej niż sami klienci.
Pon
Być może właśnie to staram się tutaj odpowiedzieć, co faktycznie robi dla ciebie zatrzymanie / rozpoczęcie pracy w sieci ... i jak możesz zrobić to samo w OSX. W tym przypadku komputer OSX był w stanie uzyskać adres IP, ale nie mógł połączyć się z punktem dostępu w celu uwierzytelnienia / aktywnego portalu (powiązanie było w porządku), powinienem był zrobić tcpdump, aby dowiedzieć się, gdzie COM się psuje, ale zdecydowałem zrestartować komputer i to wydawało się „rozwiązać” problem. Obawiam się, że miałem problemy przed tym, że nawet wyłączenie / włączenie karty sieciowej nie załatwiło sprawy, kiedy zrestartowało się.
l0c0b0x
okej… najbliższym odpowiednikiem networking restart jest wyłączenie / włączenie interfejsów - to właśnie robią te skrypty powłoki. więc jeśli to nie pomoże, oznacza to problem ze sterownikiem lub sprzętem. Biorąc pod uwagę, że dzieje się to na wielu różnych komputerach w różnych wersjach systemu operacyjnego, zarówno przewodowych, jak i bezprzewodowych, jedynym prawdziwym wspólnym czynnikiem jest infrastruktura, z którą się łączą.
Pon
1

Miałem ten sam problem (sieć zaczęła działać powoli po kilku godzinach, głównie pracuję na komputerze Mac podłączonym siecią przewodową do komputera z systemem Windows) i działało dla mnie wysunięcie komputera, z którym byłem podłączony (w Finderze) i wyłącz Ethernet (Preferencje systemowe -> Sieć -> Ethernet -> Wyłącz), a następnie połącz je ponownie. :)

Pedro Laia
źródło