MacOS提示80端口被占用

来源:互联网 发布:网易我的世界java路径 编辑:程序博客网 时间:2024/05/16 18:37

Intellij IDEA上把tomcat的默认端口改成80,运行web应用时提示80端口被占用

使用lsof -i:80命令找不到是哪个程序占用了80端口


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

比如启动nginx,必须使用sudo nginx ,但是如果用root权限启动nginx或tomcat又会造成, 启动创建的各类文件是root的,普通用户无法删除。

为此, 我们可以通过pfctl做网络层的端口转发, 让连接到本机80端口的请求, 都转发到9090端口


解决方法:


sudo vim /etc/pf.conf


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 9090

其中lo0是绑定了127.0.0.1的网络设备名称,具体可以使用ifconfig查看



在tomcat的配置中,设定启动端口为9090


让端口转发马上生效

sudo pfctl -d

sudo pfctl -f /etc/pf.conf

sudo pfctl -e

ps:启用之前请先停掉其他占用80端口的进程,比如nginx


Mac下开启与关闭端口转发的脚本配置方法




原创粉丝点击