Mac 终端无法联网问题解决

神奇的 macOS。

问题

今天本想装个东西,但 brew update 时一直报 could not resolve host。第一时间觉得是 Clash 的问题,于是设置了 proxy,但仍未解决,尝试 unset 但也无济于事。

后来发现不仅对于 github.com 报错,甚至对镜像 mirrors.tuna.tsinghua.edu.cn 也报错,ping 了一下 github.combaidu.com,果然都不通。因此并不是 proxy 的问题。

尝试 ping 8.8.8.8,发现可以通。因此原因基本可以锁定是 DNS 设置的问题。

但之前从未更改过 Mac 的 DNS 设置,为什么终端突然不能联网了呢?尝试在 Settings - Wi-Fi - Details - DNS - DNS Servers 添加了两个阿里云的 DNS Server:223.5.5.5223.6.6.6,并刷新 DNS 缓存:

1
2
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

稍等几分钟后,终端网络恢复正常。

总结

当 Mac 终端无法联网时,大多是因为两种情况:proxy 和 DNS,首先可以通过 ping 一个 IP(如 ping 8.8.8.8)检查是否是 DNS 的问题。

如果是 DNS 的问题,手动在 Settings - Wi-Fi - Details - DNS - DNS Servers 处添加公共 DNS Server(如 223.5.5.5223.6.6.6)并刷新缓存:

1
2
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

这种方式在大多数情况下应该都可以解决 DNS 问题导致的网络连接问题。