在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>