在调试springboot程序时,它内置的tomcat服务端口默认为9000,这样每次访问它的web页面程序都要在地址后面加上9000这个端口号,就想着把它的服务端口号改为80,这样访问时web地址后面就不需要再加端口号了,因为不加的话默认就是80端口,但在苹果电脑下试了一下,单修改tomcat的服务端口还是用不了,经过一番折腾,终于找到了解决方法,分享给大家。
苹果电脑MacOS的80端口默认是root权限的(小于1024的端口都需要root权限),普通用户是不能启用80端口服务的。在Mac上启用了一个9000端口的web服务,想通过80端口来访问这个服务,可通过将80端口数据转到9000端口来实现。
要实现端口数据的转发需要用到一个MacOS自带的叫PFctl的东西,PFctl即packet filter control,是Unix LIKE系统上进行TCP/IP流量过滤和网络地址转换的系统。以下是pfctl的部分命令:
# pfctl -d 关闭pf服务
# pfctl -e 开启pf服务
# pfctl -f /etc/pf.conf 载入pf.conf文件
了解完这些,下面开始正式干活了:
1、编辑/etc/pf.conf文件,这个文件内容长下面这个样子,在里面加入红色一行
scrub-anchor "com.apple/*"
nat-anchor "com.apple/*"
rdr-anchor "com.apple/*"
rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 9000
dummynet-anchor "com.apple/*"
anchor "com.apple/*"
load anchor "com.apple" from "/etc/pf.anchors/com.apple"
2、关闭pf服务
sudo pfctl -d
3、载入pf.conf文件
sudo pfctl -f /etc/pf.conf
4、启动pf服务
sudo pfctl -e
这样就大功告成了。

本文讲述了在调试SpringBoot应用时,如何在MacOS的Apple电脑上解决因80端口权限问题而无法直接使用的问题,通过使用PFctl进行端口数据转发,将80端口请求重定向到9000端口,实现无端口号访问。

831

被折叠的 条评论
为什么被折叠?



