Mac 80端口占用

问题

tomcat 默认端口是 8080,但是我的一个程序必须用 80 端口启动,才能根据域名去 cas 校验,在idea 中设置了 tomcat 的启动端口是 80 后,并没有起作用,报了 “80端口占用” 的错误,可是也没查到 80 端口被那个程序占用,后来发现是 80 端口没有打开。

原因

由于 Mac 系统限制非root用户不能启动1024以下端口,而我们平时使用Mac一般都是非root用户,所以如果想启动80端口必须用root用户。

比如在启动 nginx 时,必须用命令 sudo nginx

具体步骤

  • sudo vim /etc/pf.conf

  • 添加 rdr on lo0 inet proto tcp from any to 127.0.0.1 port 80 -> 127.0.0.1 port 8080 到 pf.conf文件的 rdr-anchor "com.apple/*" 这一行后面。

  • 其中 lo0 通过 ifconfig 看自己那个设备绑定的是 127.0.0.1, lo0是这个网络设备的名字。 8080是要转发的端口

  • sudo pfctl -f /etc/pf.conf

  • sudo pfctl -e

这时,应用启动8080端口即可以,访问的话就可以通过80端口来访问了!

注意:每次重启过后如果要转发都要执行上面最后两条命令

参考文献

Mac OS普通用户启动80端口

你可能感兴趣的:(Mac,Mac,Development,Manual)