在windows上进行web开发的时候。我们习惯使用80端口进行测试使用。但是在mac上就会遇到端口无法使用导致项目启动不了的情况。
为了解决这种情况。我们可以使用端口转发的办法解决,通过pfctl做网络层的端口转发,让连接到本机80端口的请求,都转发到8088端口(8088端口可以自定义,这里我使用8088)
修改/etc/pf.conf,修改前先备份
sudo cp /etc/pf.conf /etc/pf.conf.normal.bak
sudo vim /etc/pf.conf
进入编辑模式
在rdr-anchor "com.apple/*" 后面添加配置
rdr on lo0 inet proto tcp from any to 127.0.0.1 port 80 -> 127.0.0.1 port 8088
注意:lo0
是通过ifconfig
看自己哪个网络设备绑定的是127.0.0.1
, lo0
是这个网络设备的名字,一般都是lo0
。
配置文件示例图:
端口示例图:
执行如下命令
sudo pfctl -d sudo pfctl -f /etc/pf.conf sudo pfctl -e
出现如下提示则表示配置成功
No ALTQ support in kernel ALTQ related functions disabled pfctl: pf not enabled
此时如果重启后转发会失效,需要配置开机启动
编辑文件 /System/Library/LaunchDaemons/com.apple.pfctl.plist
添加
<string>pfctl</string> <string>-e</string> <string>-f</string> <string>/etc/pf.conf</string>