我们开发一个项目,想让其他人远程访问,但是又没有自己的外网服务器和公网ip,怎么解决?答案就是内网穿透,这里使用的内网穿透工具是ngrok
官网地址:https://dashboard.ngrok.com/,使用邮箱注册后,一定要登录邮箱,在收到的邮件里点击下边这个超链接后跳转到官网,如果不登录邮件的话,后边的authtoke串无法使用。
从邮箱点击链接打开首页后,下载对应平台的文件,这里以window为例
下载后解压,在解压目录内,按照官网步骤,执行命令
ngrok config add-authtoken 2VTcH4lhIMX768eqcNc130aHHB8_4kocZkUwr4CHNsVFBojUv
此时可以看到,ngrok配置文件就生成到本地了
执行如下命令就可以启动内网穿透服务了
ngrok http 8081
注意:上边的端口,要改为自己实际项目使用的端口号。执行上边命令后,会看到如下界面,其中,红框里的地址,就是外网访问的地址了
每次启动,这个域名都是随机生成的,不方便,怎么解决呢?静态域名
进入官网,如果是第一次创建的话,可以创建一个静态域名
复制到我们的cmd窗口执行就行
以后内网穿透域名就是固定的了
如果是多个项目,即要暴露多个端口,怎么办呢,打开之前本地生成的ngrok.yml文件,添加如下配置,添加多个隧道即可
启动指定隧道(指定端口)
./ngrok start frontend
启动所有隧道
./ngrok start -all
但是这样的话,得到的域名又是随机的了,可以在配置文件里,每个隧道里指定域名subdomain,但是是收费的...。
想用固定域名访问多个端口,我们也可以自己解决,如加nginx来解决即可。在80端口启动nginx服务,内网穿透指向80端口,然后根据URL请求地址前缀来判断,转发到我们自己的对应的服务即可。