内网穿透学习笔记

描述现象:大多数情况,个人电脑都处于内网,没有可以公开防访问的ip地址,因此其他内网用户无法建立网络连接。

内网穿透作用:将内网的电脑“暴露”到公网。

Ngrok实现内网穿透:

Ngrok官网:ngrok | Unified Ingress Platform for Developers

访问 Ngrok 官网,使用 GitHub 或者邮箱进行注册登录。

选择对应的版本下载,并解压

接下来我们参照官方文档,在本地执行 ngrok 命令添加用户的 authtoken:

复制上图的命令,cmd进入到 ngrok 文件所在的目录执行(管理员运行)

账号信息保存到本地的 ngrok 配置文件中了,接下来只需要执行 ngrok http <端口号> 命令即可启动内网穿透服务。

注意将端口号改为自己本地项目占用的端口号,比如前端一般是 80、后端一般是 8080。

这里填自己项目的端口号

Ngrok 自动生成了一个域名(还是 Https ),指向本机的服务:

在浏览器访问该域名,就能访问到自己电脑上启动的项目啦!

固定域名

通过上述命令直接启动内网穿透,每次得到的访问域名是随机生成的,这不利于我们持续访问。

可以从 ngrok 官网找到静态域名的配置:

第一次进入域名配置页面时,如果没有域名,可以免费创建一个:

创建好域名后,复制下图的 ngrok 启动命令:

然后在终端中执行该命令即可,本质上就是在启动 ngrok 时指定了 domain 参数:

通过这种方式,每次的内网穿透域名都是固定:

后端开发,要让前端访问你本地开发好的接口,通过这种方式就很便捷,不用反复到线上(或者测试服务器)部署项目。

多服务

以上是单服务的内网穿透,但实际情况下,我们本地可能不仅有前端、还有后端服务,那么如何利用 Ngrok 同时内网穿透多个服务呢?

这就需要我们修改 ngrok 的配置文件,手动配置隧道。

首先根据官方文档的指引,找到自己电脑上的默认 ngrok.yml 配置文件:

然后在编辑器中修改这个文件,比如配置前端(frontend)和后端(backend)两条隧道,对应的本地服务端口分别为 12345 和 8000

之后,可以通过 ngrok start <隧道名称>  配置指定启动哪个隧道

或者执行 ngrok start --all 命令同时启动所有隧道,同时在 ngrok-free.app 域名下分配了 2 个子域名,并指向对应服务。

访问不同的域名,就能访问到前端或后端。

但通过上面的方式,每次启动内网穿透得到的域名依然是随机的。我们可以通过修改 ngrok.yml 文件的 domain 配置来指定域名:

Ngrok 限制每个域名只能绑定一个端口。

解决方案,可以在配置文件中指定 subdomain,给每个端口分配一个子域名。但这种方式是需要额外付费的。

如何用固定域名访问本地的多个端口:

可以使用 Nginx 进行转发,如在 80 端口启动 Nginx 服务,内网穿透指向 80 端口,然后根据 url 请求地址的前缀,转发到对应的前端或后端服务。

开发微信公众号后台服务时,需要填写一个服务的域名来接受来自微信侧的请求,如果你没有域名和线上服务器,可以用内网穿透生成一个,还能直接在本地 Debug 程序。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值