Mac osx 中的 pfctl 端口转发?

Mac osx 中的 pfctl 端口转发?
-A PREROUTING -s 10.0.10.0/24 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
-A PREROUTING -s 10.0.10.0/24 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8080
-A POSTROUTING -s 10.0.10.0/24 -o eth0 -j MASQUERADE
COMMIT

上面的代码是我用来在 Linux 中转发流量的代码。

现在我需要在 Mac OSX 10.8 中做同样的事情,如果有必要的话。

所以这里是交易。

之前,我使用代理连接到 Linux 机器,并且使用该代理,我能够使用 mitmproxy 监控流量

现在,在 Mac 上,我使用内置的互联网共享,并想使用仅监听端口 8080 的内容的 mitmproxy。

bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether ac:de:48:81:1d:4a 
    inet 192.168.2.1 netmask 0xffffff00 broadcast 192.168.2.255
    Configuration:
        priority 0 hellotime 0 fwddelay 0 maxage 0
        ipfilter disabled flags 0x2
    member: en0 flags=3<LEARNING,DISCOVER>
             port 5 priority 0 path cost 0

以上就是我认为需要转发的“共享连接”。

答案1

假设你所有的网络流量请求都来自192.168.2.0/24一个接口bridge0

添加以下规则/etc/pf.conf

rdr pass on bridge0 inet proto tcp from 192.168.2.0/24 to any port http -> 127.0.0.1 port 8080
rdr pass on bridge0 inet proto tcp from 192.168.2.0/24 to any port https -> 127.0.0.1 port 8080

快速提示

  1. 测试 pf.conf 是否存在语法错误

    pfctl -v -n -f /etc/pf.conf
    
  2. 应用/重新加载规则

    pfctl -f /etc/pf.conf
    

这是一个备忘单适用于 OS X pfctl。

相关内容