mac与linux一样,1024以下的端口为特权端口,只有root用户才有权监听。
因此要使用80端口要么使用root启动tomcat,要么使用端口转发。
使用ipfw(Internet Protocol Firewall)设置端口转发
ipfw add 100 fwd 127.0.0.1,8080 tcp from any to any 80 in
不过ipfw已经被标记为废弃状态。
使用pf(packet filter)设置端口转发
1.创建anchor文件
sudo vi /etc/pf.anchors/tomcat
rdr pass on lo0 inet proto tcp from any to 127.0.0.1 port 80 -> 127.0.0.1 port 8080
2.测试anchor文件是否正确配置
pfctl -vnf /etc/pf.anchors/tomcat
如果正确会显示
pfctl: Use of -f option, could result in flushing of rules
present in the main ruleset added by the system at startup.
See /etc/pf.conf for further details.
rdr pass on lo0 inet proto tcp from any to 127.0.0.1 port = 80 -> 127.0.0.1 port 8080
添加到主配置文件
pf启动时会自动装载/etc/pf.conf文件,因此将anchor文件链接到/etc/pf.conf,转发规则就会自动建立了。
rdr-anchor "tomcat-forwarding"
load anchor "tomcat-forwarding" from "/etc/pf.anchors/tomcat"
注意要紧随文件中现有的anchor后面添加上面两行
有的电脑 需要严格按照上面的顺序来
打开pf
pf默认是关闭的。可以使用以下命令启动pf:
pfctl -e /etc/pf.conf
也可以使用其他配置文件启动pf。
也可以修改LaunchDaemons来使pf开机自动打开。
/System/Library/LaunchDaemons/com.apple.pfctl.plist
<key>ProgramArguments</key>
<array>
<string>pfctl</string>
<string>-e</string>
<string>-f</string>
<string>/etc/pf.conf</string>
</array>
添加的为-e参数,即enable