Mac下调试80端口
2022-08-11 本文已影响0人
不做null
背景
unix系统默认不开发1024以下端口的权限,那么我们有些场景必须要使用80端口进行开发,那么除了用sudo root权限外还有什么方式可以连接调试这端口呢?
需求:vue项目开发中,有个登录功能,为解决跨域问题,修改hosts使用ip和域名进行映射,使用域名进行本地加载网页调试接口,但是要使用80端口
本文主要介绍2种方法:
- mac下使用pf做端口转发
- mac下使用nginx做端口转发
一、使用pf做端口转发
Linux下使用iptables进行端口转发,mac下使用pf做端口转发,在这里附上我的配置项,亲测可用,网上查到的大多数有问题。
(1)首先在指定目录下新建文件
cd /etc/pf.anchors
(2)新建port文件写入内容:
# 文件内容写入
sudo vim /etc/pf.anchors/port
# lo0代表网卡的名称(一般都是lo0),将80端口转发到8080 (8080根据实际启的端口修改;127.0.0.1根据时期启动的ip修改)
rdr pass on lo0 inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
(3)使用以下命令检查语法是否有错误如果没错会直接输出文本(检查步骤2中配置是否有问题)
sudo pfctl -vnf /etc/pf.anchors/port
没问题参考下图:
23123.png
(4)在主配置中引入我们的配置,注意一定要注意顺序,否则会报错
# 打开主配置文件
sudo vim /etc/pf.conf
# 在rdr-anchor "com.apple/*"下一行添加
rdr-anchor "port"
# 在load anchor "com.apple" from "/etc/pf.anchors/com.apple" 下一行添加
load anchor "port" from "/etc/pf.anchors/port"
完整的配置项参考下图:
12312312.png
(5)接下来使用以下命令重启配置项,网上的命令大部分已经过时了在macosx version > 10.10.3下是无效的。相关操作命令:
# 启动端口转发
sudo pfctl -evf /etc/pf.anchors/port
# 关闭配置的端口转发
sudo pfctl -d
# 设置pf开机自动打开
sudo pfctl -e
二、使用nginx做端口转发
(1)安装nginx
brew install nginx
(2)启动nginx
sudo nginx
(3)修改nginx配置项
vim /usr/local/etc/nginx/nginx.conf
(4)添加以下配置
server {
listen 80;
server_name localhost;
location:{
proxy_pass:127.0.0.1:8080
}
}
(4)重启nginx
sudo nginx -s reload
之后我们再访问80端口时就会自动转发到8080端口