2020年2月5日
[转]Mac 使用pf做端口转发80
在使用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 端口号
链接:https://www.jianshu.com/p/427337c95a4a