为什么 Mac OS X 和 Linux 无法在本地以太网上互相 ping 通?
编辑 2012-12-14(十天后)适配器 FireWire 到以太网 RJ45 可能是问题所在(在 2015 年初的 MacBook Pro Retina 上)。我正在研究如何调试此适配器。以太网灯闪烁,但我对这种早期的 FireWire 了解不够。
使用简单的 Netgear 四端口交换集线器,当通过 RJ45 电缆连接 osx 盒和 Linux 盒并设置静态 ip 地址时,可以进行 arping,但无法与不同的操作系统进行 ping。请问这是为什么?
我可以通过 osx netstat -r 查看到 Linux 机器的路由。但是从 osx 到 linux 的 ping 超时了。linux ping OSX 时也出现同样的情况。arp 表是正确的,并且是自动更新的,而不是手动更新的。
十年前有人问过同样的事情,但没有得到答案: https://apple.stackexchange.com/questions/99996/which-setting-in-osx-could-block-ping-localhost
就我而言,没有,OS X 防火墙没有处于隐身模式,甚至没有运行。我已将其关闭以进行实验。
这已发布在 Mac 支持网站上:https://discussions.apple.com/thread/253430208
答案1
在此 Mac OSX 上,MullvadVPN 应用程序上有“始终需要 VPN”设置。
此设置在互联网上过滤广告和保护隐私和安全时非常理想,而且效果很好。该应用程序更改了非常深层的 OSX 配置,如果未连接到 VPN,用户将没有网络。这是为了避免泄漏。保证不会通过另一个套接字发送任何请求。如果 VPN 连接中断,它还会切断互联网,用户必须等到它重新建立。即使应用程序被终止,用户也无法通过 VPN 以外的套接字请求任何东西。
这是一个很棒的设置,但它不允许人们连接到在自己的机器上运行的服务,或者 minikube 集群,或者上面这种情况,即没有 DHCP 或任何复杂性的简单以太网连接。
在解决此类问题的过程中得到的经验教训:
- 当 ping 失败时, 的结果
arp -a
可以帮助排除故障。如果断开网络连接,OSX 将显示一个问号作为域名。
~ $ arp -a
? (169.254.13.100) at 0:1:0:0:0:4d on en4 [ethernet]
但局域网访问时会显示域名:
~ $ arp -a
tux.local (169.254.13.100) at 0:1:0:0:0:4d on en4 [ethernet]
不幸的是,Linux 上的相同命令无法读取 OSX 名称。
FireWire 2 适配器正常工作。如果开关灯闪烁,则表示一切正常。无论如何,我找到了以下有关 FireWire 2 问题的资源,可能对人们有所帮助。 http://www.thexlab.com/faqs/firewiretroubleshooting.html
OSX 防火墙不会阻止 ping 进出。当 VPN 断开时,防火墙会阻止所有连接,一切正常。
答案2
尝试读取并选择必要的选项 /usr/libexec/ApplicationFirewall/socketfilterfw -h