OS X 上奇怪的网络问题

OS X 上奇怪的网络问题

我遇到的奇怪问题现在已经发生了 3 次,间隔时间略长于 1 个多月。突然间,我失去了进行一些与网络相关的活动的能力,但不是全部。

当它发生时,这些仍然有效:

  • 使用 ping / dig 等方法解析域名
  • Skype
  • 太棒了(与谷歌日历同步)
  • SSH 连接没有断开,但无法创建新连接
  • 我可以 ping 并收到回复

但是,这些不起作用:

  • 所有浏览器(Chrome、Firefox、Safari)均不会显示页面。
  • 使用 web-sockets 或 SSE 连接的网页正在丢失连接(通过 http 和 https)。
  • Curl 不会抓取页面。
  • Adium 断开连接并且无法重新连接。
  • Sonos(我的局域网内)不再工作。
  • Evernote 停止同步。

尝试抓取页面的 curl 的输出显示Can't assign requested address

{ ~ }$ curl google.com
curl: (7) Failed to connect to 84.208.42.35: Can't assign requested address 

我的ifconfig外表正如其应有的那样。

netstat -an不包含大量的条目:

1 CLOSE_WAIT
1 SYN_SENT
2 CLOSED
2 FIN_WAIT_2
13 FIN_WAIT_1
16 LISTEN
212 LAST_ACK
446 ESTABLISHED

我使用的是 2011 年初版的 MacBook Pro,运行 OS X 10.9.1,通过无线方式连接。这是网络上唯一出现此问题的设备。唯一有帮助的就是重新启动 Mac。日志中也没什么可看的(至少我发现是这样),只有服务突然出现连接问题。

其他人遇到过类似的问题吗?下次发生这种情况时,最好的解决方法是什么?

答案1

正如 l'L'l 所说,这个问题似乎在这里描述:
https://discussions.apple.com/thread/5551686?start=45&tstart=0

临时解决方案是打开终端并输入:

sudo ifconfig en0 down
sudo route flush
sudo ifconfig en0 up

将 en0 替换为您用于连接互联网的任何端口。此命令实际上会重置您的连接,而无需重新启动计算机。

答案2

@blaine 的 ifconfig + route flush 解决方案提示我进行查看netstat -nr,果然我有一个到网关的静态主机路由,并且使用次数很高(输出中的第 5 列netstat -nr)。

当这种情况再次发生时,您可能需要检查是否有您要尝试连接的地址前缀的路由,以及它是否会出现相同的问题。对我来说,我不必关闭接口;只需执行route delete <dest> <gateway>(并在必要时再次添加)即可。

相关内容