相应的工具和技术,网络上比比皆是。我目前用的比较多是开源项目localtunnel
。也可以试试ngrok
PLAY模式
聊内网穿透到外网之前,先来说说程序员在开发过程中的几种模式。
- 单机模式:如同单机游戏一样,整个环境的搭建,代码书写、测试,到运行都仅仅在自己的电脑上完成,相关代码都仅仅储存在本地。
- 单机联网模式:有时候我们可能要外出,电脑又是台式机,不方便随身携带,如果是笔记本电脑,也可能存在没有携带,突然损坏等等导致程序员离了这台电脑就不能开发的问题。为了避免出现这样的问题,通常都会把代码上传到一块公共外网可以访问的空间中,无论是电脑掉海里了,还是被抢劫了,也不会影响我们继续开发写代码。相关的代码管理问题这里就不多说了,
GIT
相信程序员都不会陌生。 - 多人模式:在同一个局域网下,小伙伴们是可以手拉手一起开发的,通过局域网IP访问这些电脑,加端口访问相应的本地服务应用。
- 多人远程模式:这种模式普片存在如今的办公环境中,通过公网相互访问。
模式一般不会单一出现,对于程序员来说这些模式都会穿插在整个生涯中。
为啥要穿透
说了这么多模式,我们知道程序开发一般流程是本地搭建相应程序服务器,安装开发相关依赖。对于单机(个人本地)开发来说,程序员的开发只在自己电脑上书写代码进行本地开发和测试。当我们在家开发好了一个新功能,又办法上传到测试服务器上,供大家在外网访问和测试怎么办?
我们能让别人直接在外网访问我本地localhost服务应用吗?当然是可以的,访问流程如此:外网-局域网-个人电脑
。一般基于安全问题,网外是不能直访问类似192.168.0.1这样的IP地址的。但是我们可以做映射,做穿透,间接来访问。
穿透工具
相应的工具和技术,网络上比比皆是。我目前用的比较多是开源项目localtunnel
。也可以试试ngrok
网站地址:https://localtunnel.me
代码地址:https://github.com/localtunnel/localtunnel
localtunnel
localtunnel将您的localhost公开给全世界,以便于测试和共享!无需搞砸DNS或进行部署即可让其他人测试您的更改。
非常适合与浏览器测试工具(例如浏览器)或外部api回调服务(例如twilio)一起使用,后者需要使用公共URL进行回调。
快速开始
1 | npx localtunnel --port 8000 |
安装
全局
1 | npm install -g localtunnel |
作为项目的依赖
1 | npm install localtunnel |
命令行用法
全局安装localtunnel时,只需使用lt
命令即可启动隧道。
1 | lt --port 8000 |