如何阻止我的 Mac 请求接受传入的网络连接?

如何阻止我的 Mac 请求接受传入的网络连接?

我在用同步,这是一款用于在两台或多台计算机之间同步文件的应用程序。我相信 Syncthing (在 github 上)需要被允许接受传入网络连接才能正常工作。

Mac OS X 有一个内置防火墙,它会不断以弹出窗口的形式询问我是否允许 syncthing 接受传入的网络连接。通常,对于一个应用程序,只会询问一次,但出于某种原因,这个弹出窗口每天至少出现 4 次。

这可能与自动更新功能有关,该功能会导致新的二进制文件不时出现(类似于 Google Chrome 所做的)。但是,与我收到的弹出窗口数量相比,此应用程序的更新频率要低得多。

知道我可以做些什么来让 Mac OS X 停止向我询问有关特定应用程序的这个问题吗?或者根本没有办法解决这个问题?

如果还有一个默认选择,以防我离开机器,那就太好了。你知道该如何实现吗?没有关闭防火墙?

答案1

这可能是由于数字签名缺失或错误造成的。例如苹果解释

如果您运行未在防火墙列表中列出的未签名应用程序,则会出现一个对话框,其中包含允许或拒绝该应用程序连接的选项。如果您选择允许,OS X 会签名该应用程序并自动将其添加到防火墙列表中。

[...]

某些应用在打开时会检查其自身的完整性,而无需使用代码签名。如果防火墙识别出此类应用,则不会对其进行签名。相反,每次打开应用时都会出现“允许或拒绝”对话框。升级到由其开发人员签名的应用版本即可避免这种情况。

如果应用程序签名,但应用程序本身的签名被破坏,例如甚至 iTunes

您可以通过在终端中运行以下命令来检查签名(这里我不确定您的应用程序的名称):

codesign --verify -vv /Applications/Syncthing.app/

或者,也许可以在防火墙设置中删除该应用程序,然后看看再次接受是否足以停止 OS X 提示您?或者也许通过这些设置明确添加它?

至于默认设置:确保选项“自动允许签名的软件接收传入连接”已启用:

答案2

本指令永久禁用这个烦人的弹出窗口,该解决方案适用于所有缺少或具有错误数字签名的应用程序。

简而言之:

sudo codesign --force --deep --sign - path-to-the-app.app

相关内容