在OS X El Capitan 10.11.2上关闭防火墙


2

我正在尝试在我的机器上创建一个简单的Web服务器,可以访问同一网络上的同行,但是没有太大的成功。我有一个问题,我的防火墙不断重新打开,或者不会关闭(我不能确定哪个)。

我进入系统偏好设置 - >安全和隐私 - >防火墙,解锁设置,然后单击“关闭防火墙”。它似乎工作。我单击左下角的锁以保存我的设置,然后退出系统偏好设置。但是端口扫描显示我的端口仍然无法访问入站连接。然后我回到防火墙设置,它显示我的防火墙再次打开,即使我刚关闭它。


到目前为止我尝试了什么:

  • 我搜索过有这个问题的其他人,但我找不到任何东西。
  • 我也重新启动了我的机器,但问题仍然存在。
  • 根据谷歌的一些结果,我sudo defaults write /Library/Preferences/com.apple.alf globalstate -int 0在终端执行,但defaults read /Library/Preferences/com.apple.alf globalstate仍然返回1(开启)。

如何关闭防火墙?

编辑:我认为这可能与我以前的Macbook Pro上设置这些防火墙设置的事实有关,我已经使用Time Machine升级到更新的macbook。


启动Web服务器时会发生什么?应该提示您一次允许连接。这适用于一次调用吗?如果没有,您可能需要排除配置文件/ MDM,除非您确定自己完全管理mac。写入defaults不再足够,但是当您切换防火墙时,我的所有机器都会尊重GUI更改。
bmike

@bmike这是一个流星应用程序,我之前已经多次运行流星。我不记得它是否曾促使我接受传入的连接,就像大多数进程一样,或者我所说的。我确实在“防火墙选项...”对话框中列出了一个节点应用程序阻止传入连接。但奇怪的是,将设置更改为“允许传入连接”不会保存,就像更改防火墙开/关状态不会保存一样。我敢打赌,这与我在之前的Mac上设置这些设置的事实有关,并且已经使用时间机器进行了升级。
morsecoder 2016年

Answers:


2

我将简要回答一下如何对此进行故障排除,因为这不是预期的行为。

  1. 备份你的Mac - 以防万一。
  2. 在terminal.app中尝试一个简单的python web服务器

    python -m SimpleHTTPServer

您应该看到如下文字:Serving HTTP on 0.0.0.0 port 8000 ...并弹出如下:

在此输入图像描述

如果不这样做,可能会删除整个防火墙首选项,并在备份完成后重新启动Mac。

sudo -H mv /Library/Preferences/com.apple.alf.plist ~/Desktop

这样,如果需要,您可以检查/移动首选项文件。如果仍然无法在重新启动后弹出防火墙,请重新检查防火墙系统首选项,并可选择查看是否有可能强制执行某些您无法控制的防火墙设置的配置文件。

在此输入图像描述

如果您没有配置文件图标,则可以将其排除在外。


谢谢!我确实得到了运行基本python服务器的弹出窗口(虽然我不得不使用python 2.7可执行文件)。但有趣的是,如果我点击okay然后杀死进程并再次启动它,我会再次收到提示(我认为它不应该以这种方式工作,至少,它应该记住我已经允许它的网络访问)。也许它与plist文件的读/写能力有关,因为它是由我的用户在之前的mac上创建的?不过,我相信这是“用户”,所以也许不是。该目录显示-rw-r--r--@该文件的访问权限。
morsecoder 2016年

我没有个人资料图标。我现在要做一次时间机备份,然后尝试删除plist并重新启动。
morsecoder 2016年

所以我想我解决了这个问题。最终工作的是在恢复模式下重启,csrutil disable在终端执行,再次重启,然后sudo chflags nouchg /Library/Preferences/com.apple.alf.plist允许我编辑它。不知道哪个步骤可以解决问题,但我现在可以在系统偏好设置中打开和关闭防火墙(幸运的是,我不必丢失所有防火墙设置)。谢谢你的帮助!如果你改变你的答案,包括我提到的调试步骤,我肯定会标记它。
morsecoder 2016年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.