mac 使用 pf 做端口转发

在使用mac os 进行web开发时,会遇到80端口已经被占用的情况。mac禁止了普通用户访问1024以下的端口,包括80端口。想要通过80端口访问则需要通过端口转发,早期用ipfw做端口转发,但是os10.10之后不能用了,但是可以使用pf做端口转发.

首先:

通过lsof -i tcp:80 查看80端口使用情况,kill 其它占用80的端口

其次:

确认Mac的防火墙是否开启。可以按下面描述开启:系统偏好设置 -> 安全与隐私> 防火墙 -> 打开防火墙

然后:需要修改pf的配置文件

依次运行以下命令:
cd /etc
ls | grep pf.conf
sudo cp pf.conf pf.conf.normal.bak
sudo cp pf.conf pf.conf.transmit.bak
ls | grep pf.conf
sudo vim pf.conf.transmit.bak
//修改配置文件pf.conf
scrub-anchor "com.apple/*"
nat-anchor "com.apple/*"
rdr-anchor "com.apple/*"
rdr on lo0 inet proto tcp from any to 127.0.0.1 port 80 -> 127.0.0.1 port 8080
dummynet-anchor "com.apple/*"
anchor "com.apple/*"
load anchor "com.apple" from "/etc/pf.anchors/com.apple"

其中添加rdr on lo0 inet proto tcp from any to 127.0.0.1 port 80 -> 127.0.0.1 port 8080 到文件的rdr-anchor “com.apple/*” 这一行后面。注意,一定要在这一行下面,这个文件顺序有要求。

最后: 启动

sudo pfctl -d
sudo pfctl -f /etc/pf.conf
sudo pfctl -e

笔记

查看端口号所使用的进程号: lsof -i :端口号
杀死某个端口号: kill -s 9 端口号

你可能感兴趣的:(mac 使用 pf 做端口转发)