A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

由于 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下开启与关闭端口转发的脚本配置方法

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马