PF:无法在 OS X 上打开端口

PF:无法在 OS X 上打开端口

使用 pf 防火墙打开 os x 10.10.3 yousemite 上的端口 9 时遇到问题。我想这样做是为了能够将局域网唤醒数据包发送到此端口。我认为要使 WoL 正常工作,应该为 UDP 数据包打开端口(在要唤醒的机器上)(如果我说得不对,请纠正我)

有这个/etc/pf.conf

# Open port 9 for UDP on all interfaces
pass in proto udp from any to any port 9 keep state

用以下命令重新启动 pf:

sudo /sbin/pfctl -f /etc/pf.conf

但当port closed我这样做时:

sudo nmap -sU -p 9 localhost
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000085s latency).
PORT  STATE  SERVICE VERSION
9/udp closed discard

我尝试创建自定义/etc/pf_cust.conf:

anchor "pf.rules"
load anchor "pf.rules" from "/etc/pf.anchors/pf.rules"

并使用自定义规则集/etc/pf.anchors/pf.rules:

# Open port 9 for UDP on all interfaces
pass in proto udp from any to any port 9 keep state

使用:sudo pfctl -f /etc/pf_cust.conf 但 nmap 显示它仍然关闭并且局域网唤醒不起作用(MacPro 相对较新(2013 年),具有无线唤醒:支持,并且在系统偏好设置-->节能器中选中了“唤醒网络访问”)。

请给我指明正确的方向。

答案1

这台 Mac Pro 是否充当某种网络中间件(路由器/网关/NAT/网桥)?或者它是您要唤醒的端点?

如果您尝试唤醒的是端点,则无需打开端口。局域网唤醒数据包在链路层工作。以太网(或 Wi-Fi)芯片在收到的每个数据包中查找魔法模式(ff:ff:ff:ff:ff:ff 后跟 16 个接口硬件 MAC 地址副本)。它甚至不关注数据包中的任何其他内容,因此它不知道该数据包是否是 IP 数据包,也不知道它发送到哪个 TCP 或 UDP 端口。

对于 WoL 魔术包,只有在尝试从互联网的不同部分发送数据包时才需要担心 IP 地址和端口,并且需要想办法让数据包通过路由器、防火墙和 NAT 网关。但一旦数据包到达以太网硬件目标主机需要唤醒时,它就完成了工作并唤醒了目标主机。如果主机操作系统在唤醒后决定拒绝数据包,则没有任何区别,因为到那时,主机已经唤醒,因此工作已经完成。

相关内容