MacOS开启端口转发

在/etc/pf.anchors/目录下新建一个名为com.pow文件,内容如下

1
2
rdr pass on en0 inet proto tcp from any to any port 8080 -> 127.0.0.1 port 8080
rdr pass on en5 inet proto tcp from any to any port 8080 -> 127.0.0.1 port 8080

上面的配置标表示的意思是将从en0和en5,目的端口为8080的包转发到8080端口上

使用pfctl命令检测配置文件

1
sudo pfctl -vnf /etc/pf.anchors/com.pow

修改/etc/pf.conf配置文件

pf启动时会自动装载/etc/pf.conf文件,因此将anchor文件链接到/etc/pf.conf,转发规则就会自动建立了。

1
2
3
4
5
6
7
#在rdr-anchor "com.apple/*"下面增加:

rdr-anchor "pow"

#在load anchor "com.apple" from "/etc/pf.anchors/com.apple"后面添加:

load anchor "pow" from "/etc/pf.anchors/com.pow"

修改后的配置如下:

1
2
3
4
5
6
7
8
scrub-anchor "com.apple/*"
nat-anchor "com.apple/*"
rdr-anchor "com.apple/*"
rdr-anchor "pow"
dummynet-anchor "com.apple/*"
anchor "com.apple/*"
load anchor "com.apple" from "/etc/pf.anchors/com.apple"
load anchor "pow" from "/etc/pf.anchors/com.pow"

导入并运行pf命令

一定要导入并允许运行pf的命令

1
sudo pfctl -evf /etc/pf.anchors/com.pow

设置pf开机自动打开

1
sudo pfctl -e

如果想要关闭pf,命令是

1
sudo pfctl -d1