Mac OSX:如何将所有传出的流量转发到特定主机/端口到不同的主机/端口?

Mac OSX:如何将所有传出的流量转发到特定主机/端口到不同的主机/端口?

我已经搜索了好几天,但 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

  1. https://etcinsider.com/blog/2016/02/28/openbsd-pf-for-mac-os-x-is-mostly-outdated/
  2. 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

相关内容