pf 错误 — “内核中不支持 ALTQ”...这是什么意思?

pf 错误 — “内核中不支持 ALTQ”...这是什么意思?

我正在运行 Mac OS X。我希望能够配置 pf,因为它似乎比可以通过系统偏好设置访问的默认 Mac OS X 防火墙更复杂、更灵活。我尝试使用一些 pf 命令,但出现了一些我无法理解的错误。

bash-3.2$ sudo pfctl -s rules
No ALTQ support in kernel
ALTQ related functions disabled
scrub-anchor "com.apple/*" all fragment reassemble
anchor "com.apple/*" all
bash-3.2$ sudo pfctl -s states
No ALTQ support in kernel
ALTQ related functions disabled

我在 Wikipedia 上查了 ALTQ,它似乎是一个在内核级别对数据包进行统计复用的排队程序。它是 BSD 系统用于对数据包进行排队的内核模块。而 Mac OS X 内核显然不支持它。

好吧,这确实说不通。为什么 Mac OS X 包含 BSD pf 防火墙,但不包括使该防火墙工作所必需的排队软件的支持?这不是适得其反吗?一定有某种方法可以启用对 ALTQ 的支持,但我不知道它是什么。我甚至不完全确定 ALTQ 是什么。它是一个可加载的内核模块,我必须使用命令加载它吗kextload?或者问题是它已经存在,但内核与它不兼容。我完全糊涂了。

答案1

您需要启用防火墙:
System Preferences-> Security & Privacy-> Firewall-> Turn On Firewall
(后台执行sudo pfctl -E

如果你在那之后尝试:sudo pfctl -s info它不应该责怪 ALTQ

答案2

我相信你误解了命令的输出:

sudo pfctl -s rules

输出列出了一个警告:

No ALTQ support in kernel

关于该警告的更多信息:

ALTQ related functions disabled

然后它继续按要求列出有效规则:

scrub-anchor "com.apple/*" all fragment reassemble
anchor "com.apple/*" all

您可以在这里找到更多信息,包括上述输出的含义:

https://krypted.com/mac-security/a-cheat-sheet-for-using-pf-in-os-x-lion-and-up/

我在 macOS 上使用 Little Snitch,据我记得,但可能是错的,它pf用于后端。

ALTQ 用于流量整形。以下是有关 pfSense 开源项目的流量整形(和 ALTQ)的信息。pfSense,顾名思义,利用pf并基于 FreeBSD,macOS 也(在一定程度上)是 FreeBSD。我提供这些信息只是为了提供有关 ALTQ 的信息(以及pf与之相关的功能)。

https://docs.netgate.com/pfsense/en/latest/book/trafficshaper/index.html

我斗胆评论一下,ALTQ 流量整形可能更适合在边缘防火墙/路由器上使用,而不是在工作站上使用,而且 macOS 上没有启用它也不会有什么损失(因为 Apple 已经放弃了它作为有意义的服务器操作系统,转而专注于消费者桌面应用程序的使用)。YMMV。

相关内容