cpolar穿透本地web项目,公网访问本地项目(MAC)

前言

最近遇到一个问题,就是我本地起了一个vue项目,由于我没有准备服务器之类的,我又想让远隔千里之外的客户看到我工作的效果。于是就有了这一篇文章。

当我们以本地电脑做服务器搭建web网站时,如何将它发布到互联网上,实现公网用户都可以访问内网下的web网站就变得十分重要。

由于我使用是时候是使用macOS系统,所以这里以macOS系统自带的Apache为例为例子,在本地启用Apache服务器,通过cpolar内网穿透将其暴露至公网之上,实现在公网环境下访问本地的web服务的目的,不需要购买服务器,也不需要公网ip,更不需要设置路由器。(注:如果是windows系统,需要先下载安装Apache服务)

目录

  1. 启动 Apache 服务器
  2. 公网访问本地web服务
    2.1 本地安装配置 cpolar
    2.2 创建隧道
    2.3 测试访问公网地址
  3. cpolar 知识小扩展
  4. 致敬

一、启动Apache服务器

打开macOS的终端,执行Apache服务器启动命令,提示Password,输入密码

js 复制代码
// Apache相关命令
sudo apachectl start // 启动Apache
sudo apachectl restart // 重启Apache
sudo apachectl stop // 关闭Apache

浏览器访问localhost(默认80端口),正常情况下就能看到It Works!,表示服务器启动成功,局域网内就可以正常访问了。

二、公网访问本地web服务

现在我们本地的web服务只能在局域网内进行访问,下面使用cpolar内网穿透将本地的web服务映射到公网上,实现公网的用户也可以访问到本地的web服务,不需要公网IP,也不需要设置路由器。

直达 >>>> cpolar官网

2.1 本地安装配置cpolar

macOS安装 cpolar 可以利用 Homebrew 包管理器进行安装和管理,可以不用通过官网暗转

  • 安装 Homebrew(打开终端输入命令)。
    Homebrew 是一款Mac OS下的套件管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能

    js 复制代码
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  • 通过 Homebrew 包管理器安装 cpolar 内网穿透(打开终端输入命令)

    js 复制代码
    brew tap probezy/core && brew install cpolar
  • cpolar安装后进行token认证(打开终端输入命令)

    js 复制代码
    cpolar authtoken xxxxxxx
  • 安装服务(打开终端输入命令)

    js 复制代码
    sudo cpolar service install
  • 启动服务(打开终端输入命令)

    js 复制代码
    sudo cpolar service start // 启动服务
    sudo service cpolar stop // 停止服务
  • 登录 cpolar web UI 管理界面

    注:启动服务后才能进入这个UI界面

    浏览器中访问9200端口【http://127.0.0.1:9200/】,登录自己的cpolar账号

    登录成功后,点击左侧目录中的 隧道管理->隧道列表 ,里面有两条默认的例子隧道(自行决定编辑或者删除)

    ssh隧道 :指向本地22端口,tcp协议
    website隧道:指向本地8080端口,tcp协议

2.2 创建隧道

点击左侧目录中的 隧道管理->创建隧道 ,我们来创建一个隧道,由于我本地起的项目是端口号是8081端口,就拿8081端口作为演示。

将在本地的 8081 端口下的web服务映射到公网

  • 隧道名称: test-http (自行定义即可, 不要与已有隧道名称重复)

  • 协议:http协议

  • 本地地址:8081

  • 域名类型:随机域名(可免费使用)

  • 地区:选择 China Top

    点击创建后会在右上角提示创建成功,页面自动跳转至隧道列表,可以看到刚刚自己创建test-http隧道。状态为active,表示正常在线,不需要再点重启。

    在左侧目录中 状态->在线隧道列表 ,点击后可以看到列表中test-http隧道已经生成了对应的公网地址,一个是http协议,一个是https协议(不用配置ssl证书这一类的繁琐步骤),复制公网地址,就可以访问到本地的web服务了。

2.3 测试访问公网地址(一定要注意项目配置)

  • 访问如果显示 Invalid Host header (找不到主机头),以vue的项目为例:原因是因为项目中没有配置允许访问域名 或者 设置跳过跳过host检查

  • 设置允许域名访问

    js 复制代码
    // vue.config.js
    module.exports = {
      //...
      devServer: {
        allowedHosts: [ // 根据自己的域名设置
          'cpolar.top', // 允许访问的域名地址
          '.cpolar.top'   // .是二级域名的通配符   
        ],
      },
    };
    ```js
  • 设置跳过跳过host检查

    js 复制代码
    devServer: {
      disableHostsCheck: true
    }

三、cpolar 知识小扩展

由于是为了让更多的初学者上手,这次只讲了免费的生成的公网地址为随机临时地址,24小时内会发生变化,对于需要长期访问的用户不是很方便。

如过想要的一个固定的公网地址需要自行购买 cpolar 的套餐后,进行固定的二级子域名的设置。

四、致敬

如果按照步骤成功在公网上访问到自己的本地web项目,就给本文章点个赞吧!😁😁😁

相关推荐
耶啵奶膘28 分钟前
uniapp-是否删除
linux·前端·uni-app
王哈哈^_^2 小时前
【数据集】【YOLO】【目标检测】交通事故识别数据集 8939 张,YOLO道路事故目标检测实战训练教程!
前端·人工智能·深度学习·yolo·目标检测·计算机视觉·pyqt
cs_dn_Jie3 小时前
钉钉 H5 微应用 手机端调试
前端·javascript·vue.js·vue·钉钉
开心工作室_kaic3 小时前
ssm068海鲜自助餐厅系统+vue(论文+源码)_kaic
前端·javascript·vue.js
有梦想的刺儿3 小时前
webWorker基本用法
前端·javascript·vue.js
cy玩具4 小时前
点击评论详情,跳到评论页面,携带对象参数写法:
前端
qq_390161774 小时前
防抖函数--应用场景及示例
前端·javascript
John.liu_Test5 小时前
js下载excel示例demo
前端·javascript·excel
Yaml45 小时前
智能化健身房管理:Spring Boot与Vue的创新解决方案
前端·spring boot·后端·mysql·vue·健身房管理
PleaSure乐事5 小时前
【React.js】AntDesignPro左侧菜单栏栏目名称不显示的解决方案
前端·javascript·react.js·前端框架·webstorm·antdesignpro