我已经搜索了好几天,但 PF 完全无法解决我的问题。本质上,我想将所有本地、出站流量重定向到不同的 ip/端口。
本地应用程序尝试连接到 ip 1.2.3.4 和端口 1234,我需要将此流量重定向到 ip 5.6.7.8 和端口 4321(端口可以相同)
我尝试过遇到的所有 rdr 组合,但似乎都不起作用。
有人能指点我如何做到这一点吗?我的 pf.conf/anchor 文件中的规则是什么样的?
OS X 10.15:“Catalina”
或者 OSX 用户不需要这样的功能?)
答案1
- https://etcinsider.com/blog/2016/02/28/openbsd-pf-for-mac-os-x-is-mostly-outdated/
man pf.conf
: “… 评估翻译规则的顺序取决于翻译规则的类型和数据包的方向。binat
规则总是首先评估。然后要么rdr
评估规则在入站数据包上或nat
规则在出站数据包上。相同类型的规则按照它们在规则集中出现的顺序进行评估。第一个匹配的规则决定采取什么操作。……”
或者 OSX 用户不需要这样的功能?)
开发 MacOS 的不是用户,而是 Apple... 可以得出结论,PF 防火墙不是他们的首要任务。
答案2
嗯,对我来说 - 只有一个可行的解决方案:
sudo ifconfig en0 alias 1.2.3.4 255.255.255.0
并安装像 nginx 这样的本地端口转发器,在“stream”部分下添加:
server { listen 1.2.3.4:1234; proxy_pass 5.6.7.8:5678; }
您可以使用您最喜欢的端口转发软件,或者尝试深入研究pf
)