macos - OSX 上的 PF header net/pfvar.h 丢失

标签 macos firewall bsd darwin

PF (packet filter) 是内核级防火墙,包含在类 BSD 内核中(Darwin 内核基本上就是 BSD),BSD 手册页提供详细 documentation关于这些标题,让我们以编程方式控制 PF。 PF 包含在 OSX 内核中,即使默认情况下它是禁用的。

我知道可以通过某种方式在 OSX 中控制 PF,因为像 Murus 这样的应用程序存在,为这个低级的“防火墙之王”提供用户友好的 GUI,而且这个 API 不是手动的 /etc/pf.conf解析,正如我首先怀疑的那样。

有什么方法可以从我的 OSX 应用程序中添加这些头文件并控制 PF?

MacOS 塞拉利昂 10.12.6

Xcode 9.2 (9C40b)

更新一些 information我发现,虽然有点过时

最佳答案

<net/pfvar.h>您正在寻找的是下面的链接(适用于 MacOS Mojave 和 Catalina) - 旧版本也可用。

https://opensource.apple.com/source/xnu/xnu-4903.221.2/bsd/net/pfvar.h.auto.html

这是<net/pfvar.h>对于 MacOS Sierra:

https://opensource.apple.com/source/xnu/xnu-3789.70.16/bsd/net/pfvar.h.auto.html

如果你需要一个完整的应用程序示例,我移植了 pfctl 从 BSD 到 MacOS,并使用所有 MacOS 内核头文件和系统库对其进行编译。我可以在 GitHub 上为您上传完整的工作源代码树。目前我在 Catalina 上使用它,我可以控制 PF 子系统上的任何东西。然后,您可以从中学习并使用应用程序中的例程。代码、功能和参数简单易懂,可以轻松满足您的需求。

关于macos - OSX 上的 PF header net/pfvar.h 丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56625607/

相关文章:

objective-c - 连接特定 USB 设备时自动打开 OS X 应用程序

php - 在 Mac 上使用 brew 安装 Node 后,dyld : Library not loaded:/usr/local/opt/icu4c/lib/libicui18n. 62.dylib 错误运行 php

linux - 阻止到一个端口的所有流量(一组 IP 除外)

sockets - BSD 套接字的文件描述符错误

linux - 解压缩之前 tar 存档中列出的备份文件以进行简单回滚

objective-c - 如何从 Tweetbot 制作一个像这样的 NSWindow?

proxy - JProfiler - 有防火墙时如何配置远程应用程序?

linux - iptables 通过注释删除特定规则

linux - 在哪里可以找到 Linux 版本的 sys/queue.h 头文件?

c - nlist 函数始终返回 -1