Mac下使用80端口访问web应用

作者: Callback | 来源:发表于2017-09-25 09:16 被阅读125次

写在前面

昨天有前端小伙伴问到,如何在自己的mac下,把jetty配置成80端口启动。在实际的web开发工作中,调试时可能经常会有这样的需求,例如tomcat、jetty、nodejs启动的服务,想通过80端口访问。其实在windows系统下,这些也不算问题,改一下配置就可以启动了, 但在Unix-like系统下,默认1024以下端口,只能用root权限使用。 所以使用mac的小伙伴,不会操作的可以继续往下看,使用Linux的,如果也不会操作,那你还玩什么Linux,趁早放弃吧!

root用户启动

这个方案比较简单,启动相关服务切换成root用户或用sudo的方案启动就可以,如果是eclipse里面的jetty插件,那eclipse也需要同样的操作。

这样带来的问题时,服务启动产生的临时文件也是root级别的,删除什么的会麻烦些,另外需要修改相关服务的端口配置,且每次都要这样。

nginx/apache

可以通过nginx/apache之类的代理去做域名/端口的转发,mac下默认安装apache,也可以自己安装nginx,简单给出nginx相关配置文件如下:

server {  
    listen       80;  
    server_name  xxx1.com.cn www.xxx1.com.cn;  

    location / {  
        proxy_pass  http://localhost:8091;  
        proxy_set_header Host $host;  
        proxy_set_header X-Real-IP $remote_addr;  
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
        root   html;  
        index  index.html index.htm;  
    }  
}  
server {  
    listen       80;  
    server_name  xxx2.com www.xxx2.com;  

    location / {  
        proxy_pass  http://localhost:7080;  
        proxy_set_header Host $host;  
        proxy_set_header X-Real-IP $remote_addr;  
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
        root   html;  
        index  index.html index.htm;  
    }  
}  

charles/whistle/fiddler

经常做移动端开发的,一般都了解web代理抓包的一些工具,可以url配置映射+本地Host的方案,实现域名/端口级的转发,这里不做过多介绍。

pfctl/ipfw端口转发

这两个工具都是mac下的,10.10以前是ipfw,现在升级成了pfctl,当然Linux下也可以用iptables完成端口转发,这里也不介绍了,下面只介绍一下pfctl:

先对pf.conf进行备份:cp /etc/pf.conf /etc/pf.conf.normal.bak , 之后在该文件中以下行:

rdr-anchor "com.apple/*" 

后面添加一行配置,如下:

rdr on lo0 inet proto tcp from any to 127.0.0.1 port 80 -> 127.0.0.1 port 8080

注: lo0是本地环路127.0.0.1,如果希望内网其他同学也能访问到还要加下面的配置:

rdr on en0 inet proto tcp from any to 127.0.0.1 port 80 -> 127.0.0.1 port 8080

最后按顺序执行下面的命令,首次会要求输出密码

sudo pfctl -d
sudo pfctl -f /etc/pf.conf  
sudo pfctl -e  

当看到下面的提示后,表示端口转发配置成功,可以使用了

No ALTQ support in kernel
ALTQ related functions disabled
pf enabled

相关文章

  • Mac下使用80端口访问web应用

    写在前面 昨天有前端小伙伴问到,如何在自己的mac下,把jetty配置成80端口启动。在实际的web开发工作中,调...

  • mac 使用 pf 做端口转发

    在使用mac os 进行web开发时,会遇到80端口已经被占用的情况。mac禁止了普通用户访问1024以下的端口,...

  • Mac 使用 80 端口

    Mac 使用 80 端口 更新日志:20170807 更新mac使用80端口的错误问题。 [toc] [ ] 方案...

  • Mac上启用80端口——nginx的安装

    现在mac上有个新需求,需要tomcat使用80端口而不是8080端口。 mac上使用80端口需要root权限,所...

  • Java使用IDEA运行项目显示80端口被占用

    mac禁止用户访问1024以下的端口,包括80端口,因为mac会用这些端口来提供文件共享等服务。 解决办法:停掉m...

  • nginx deny other port

    Q:nginx 监听80端口,tomcat占用8081端口,想要实现,外网访问只能访使用域名 或者ip+80端口,...

  • 【内网渗透】记一次靶机实战

    一、信息收集 1.端口扫描 使用nmap进行端口扫描,发现其开放了22、80、8080、9000端口。 访问其80...

  • Laravel Docker

    解决mac os 80端口占用问题 1、使用lsof -i:80查看当前占用80端口的进程,如果有就kill掉。2...

  • Docker-10 端口转发、容器卷 、网络、数据存储

    端口转发 使用端口转发解决容器端口访问问题 mysql应用端口转发: 查看本地地址: 运行容器:使用-p作端口转发...

  • MAC 接口转发

    mac与linux一样,1024以下的端口为特权端口,只有root用户才有权监听。 因此要使用80端口要么使用ro...

网友评论

    本文标题:Mac下使用80端口访问web应用

    本文链接:https://www.haomeiwen.com/subject/cwjrextx.html