我正在运行 MacOS(实际上是 BSD),并且我想使用本地转发通过 ssh 隧道重定向某些流量。看起来很简单,但我每次都被模棱两可的“/etc/pf.conf:29:语法错误”消息反复阻止。到现在为止我肯定已经重复了 30 次规则了。此外,我还阅读了有关语法和重定向的相关 OpenBSD 数据包过滤器信息。我很困惑,并寻求比我更聪明的人关于 BSD 数据包过滤器的帮助。
目标是将所有从我的本地计算机发往互联网上的计算机的流量转移到端口 1234,并将流量重定向到 127.0.0.1:1234。我的具体操作系统是 OS X 10.10.2 Yosemite。
这是导致 pfctl 返回“语法错误”的规则的最新迭代
pass out quick on en6 from any to en6 port 1234 rdr-to 127.0.0.1 port 1234
根据文档和互联网上的其他随机博客,该规则看起来是正确的;然而 pfctl 不同意。
根据我对文档的理解,细分如下:
pass
- 传递流量的操作
out
- 流量流的方向
quick
- 如果数据包与此规则匹配,则将其视为链中的最后一个规则
on en6
- 应用规则的接口
from any
- 数据包的源(应始终是我的) machine)
to en6 port 1234
- 发送至端口 1234 的接口上的任何内容
rdr-to 127.0.0.1 port 1234
- 将数据包重定向到此接口
答案1
你能行的 :
rdr pass quick on $ext_inf inet proto tcp from any to any port 1394 -> $target port 1394