Tomcat在Mac下非root权限80端口是启动不了的,所以我们可以利用pfctl端口转发来将本地80端口上的请求转发到比如8080端口,从而实现通过80端口的访问。
端口转发实现
一、修改/etc/pf.conf
先对pf.conf进行备份:cp /etc/pf.conf /etc/pf.conf.normal.bak , 之后在该文件中以下行:
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
ps:lo0 通过ifconfig 看自己那个设备绑定的是127.0.0.1, lo0是这个网络设备的名字
二、依次执行以下命令:
sudo pfctl -d sudo pfctl -f /etc/pf.conf sudo pfctl -e
端口转发脚本化
一、依次运行以下命令:
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
二、修改 pf.conf pf.conf.transmit.bak
sudo gedit pf.conf.transmit.bak
or
sudo vim pf.conf.transmit.bak
修改的内容参照上一篇配置端口转发的博文,我这里是(注释忽略,仅供参考):
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"
修改好之后,保存。
三、创建启动与关闭脚本文件
1. 找一个方便自己查找的文件夹,比如桌面,创建一个 startup.sh 文件,用于开启端口转发,内容如下:
cp /etc/pf.conf.transmit.bak /etc/pf.conf sudo pfctl -d sudo pfctl -f /etc/pf.conf sudo pfctl -e
2. 创建一个 shutdown.sh 文件,用于关闭端口转发,内容如下:
cp /etc/pf.conf.normal.bak /etc/pf.conf sudo pfctl -d sudo pfctl -f /etc/pf.conf sudo pfctl -e