解决mac os x下 tomcat启动报 java.net.BindException: Permission denied <null>:80 错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决mac os x下 tomcat启动报 java.net.BindException: Permission denied <null>:80 错误相关的知识,希望对你有一定的参考价值。

我在mac os x上启动tomcat的时候,报 java.net.BindException: Permission denied <null>:80,java.net.BindException: Permission denied <null>:443错误,443时因为我要弃用ssl服务。

Mac OS X 因为要绑定1024以下的端口需要ROOT权限, 但是如果用root权限启动eclipse或tomcat又会造成, 启动创建的各类文件是root的,普通用户无法删除。

为此, 我们可以通过pfctl做网络层的端口转发, 让连接到本机80端口的请求, 都转发到9090端口; (注意, Mac OS 会使用80端口做网络文件共享, 要先关闭掉)。

1、修改/etc/pf.conf, 使用sudo vim /etc/pf.conf打开
2、添加rdr on lo0 inet proto tcp from any to 127.0.0.1 port 80 -> 127.0.0.1 port 8080,rdr on lo0 inet proto tcp from any to 127.0.0.1 port 443 -> 127.0.0.1 port 8443 到pf.conf文件的rdr-anchor "com.apple/*" 这一行后面。pf.conf是对顺序强要求的, 所以注意添加的内容放的顺序。lo0 通过ifconfig 看自己那个设备绑定的是127.0.0.1, lo0是这个网络设备的名字。这个不用动,直接用。

3、修改好pf.conf之后执行一下命令,让端口转发生效:

sudo pfctl -d

sudo pfctl -f /etc/pf.conf

sudo pfctl -e 

 

做好以上配置后,你本地访问80端口的时候会跳转到8080,443跳转到8443,8080,8443 这个端口你自己定。 

 

以上是关于解决mac os x下 tomcat启动报 java.net.BindException: Permission denied <null>:80 错误的主要内容,如果未能解决你的问题,请参考以下文章

在Mac OS X中部署Tomcat的经验

mac启动tomcat

Mac os x 下配置Intellij IDEA + Tomcat

Mac OS X下怎样让MongoDB开机即启动?

将tomcat jar / lib目录添加到Mac OS X上的eclipse类路径[重复]

如何在mac os x下启动mysql