如何将“ipfw”转换为“pfctl”命令以在 OS X 中转发端口 80 和 443?

如何将“ipfw”转换为“pfctl”命令以在 OS X 中转发端口 80 和 443?

我找到了一种使用 ipfw 将端口 80 和 443 转发到其他任意端口(在我的情况下是 3000 和 3001)的方法。但 ipfw 已被弃用并被 pfctl 取代。以下是我的 ipfw 声明:

sudo ipfw flush
sudo ipfw add 100 fwd 127.0.0.1,3000 tcp from any to me 443
sudo ipfw add 200 fwd 127.0.0.1,3001 tcp from any to me 80
sudo ipfw show

请问我如何使用 pfctl 做同样的事情?

答案1

这个 AskDifferent 答案

要将所有端口 80 流量转发到端口 8080,您可以从终端命令行输入以下内容。

echo "rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080" | sudo pfctl -ef -

取自https://salferrarello.com/mac-pfctl-port-forwarding/

要将端口 80 和 443 转发到端口 3000 和 3001,请使用以下命令:

echo "rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 3000" | sudo pfctl -ef -
echo "rdr pass inet proto tcp from any to any port 443 -> 127.0.0.1 port 3001" | sudo pfctl -ef -

相关内容