В попытке воссоздать проблему я видел спорадическое назначение основного IP- адреса интерфейсу lo0 . Похоже, что манипулирование таблицами маршрутизации является причиной проблемы.
Чтобы сбросить сетевой интерфейс к конфигурации по умолчанию без перезагрузки, вы можете сделать следующее. (Обратите внимание, что в худшем случае вам, возможно, придется перезагрузиться, если что-то не работает) (Внимание: это БУДЕТ РАЗРЫВАТЬ все существующие IP-соединения и службы):
- Отключите все сетевые утилиты и сервисы, такие как VPN
- Отключить существующие сетевые интерфейсы. На большинстве MacBook это будет en0
Ищите интерфейс, который представляет ваш основной IP. Вы можете найти это с помощью этой команды:
ping `hostname`
Porky:Downloads hogstrom$ ping `hostname` PING porky.local (10.0.0.114): 56 data bytes 64 bytes from 10.0.0.114: icmp_seq=0 ttl=64 time=0.055 ms
Ищите этот IP-адрес (в данном случае это 10.0.0.114) в выходных данных в ifconfig
выходных данных.
ifconfig
en0: flags=8863 mtu 1500 ether a0:99:9b:1a:a7:f1 inet6 fe80::874:c2c9:c839:ac4a%en0 prefixlen 64 secured scopeid 0x5 inet 10.0.0.114 netmask 0xffffff00 broadcast 10.0.0.255 nd6 options=201 media: autoselect status: active
Обратите внимание на имя интерфейса (в этом примере это en0
)
Отключить текущую сеть
`sudo ifconfig en0 down
Очистить существующие маршруты
sudo route -n flush
Примечание: флаг -n необходим, иначе вы в конечном итоге будете ждать длительные периоды ожидания сети; которые ожидаются, когда мы очищаем таблицу маршрутизации.
Вот как выглядит таблица маршрутизации, когда основной не работает, и route -n flush
он был запущен несколько раз. Я выполняю команду три раза.
Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire 127 127.0.0.1 UCS 0 0 lo0 127.0.0.1 127.0.0.1 UH 1 97314 lo0 224.0.0 link#1 UmCS 1 0 lo0 224.0.0.251 link#1 UHmW3I 0 0 lo0 12
- Поднимите выключение основного интерфейса в шаге 3.
sudo ifconfig en0 up
Используйте имя интерфейса из шага 3.
- Проверьте таблицу сетевой маршрутизации:
netstat -rn
Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire default 10.0.0.1 UGSc 92 0 en0 10/24 link#5 UCS 1 0 en0 10.0.0.1/32 link#5 UCS 2 0 en0 10.0.0.1 2c:fd:a1:2:49:40 UHLWIir 24 5 en0 1198 10.0.0.114/32 link#5 UCS 0 0 en0 10.0.0.255 ff:ff:ff:ff:ff:ff UHLWbI 0 2 en0 127 127.0.0.1 UCS 0 0 lo0 127.0.0.1 127.0.0.1 UH 1 97314 lo0 169.254 link#5 UCS 0 0 en0 224.0.0/4 link#5 UmCS 2 0 en0 224.0.0.251 1:0:5e:0:0:fb UHmLWI 0 0 en0 239.255.255.250 1:0:5e:7f:ff:fa UHmLWI 0 2 en0 255.255.255.255/32 link#5 UCS 0 0 en0
Примечание: основной IP-адрес (10.0.0.114 в моей системе) не связан с lo0, что было основано на предоставленной диагностике. Я наблюдал это при настройке таблицы маршрутизации, но это аномально и, скорее всего, причина проблемы.
- Проверьте конфигурацию сети
Я проверяю, пингуя основной DNS-сервер Google.
ping 8.8.8.8
Porky:Downloads hogstrom$ ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8): 56 data bytes 64 bytes from 8.8.8.8: icmp_seq=0 ttl=120 time=25.527 ms
На этом этапе вы должны иметь работающую сеть и иметь доступ к серверу вашего узла, используя как localhost, так и ваш основной IP-адрес.