【工具篇】网络工具:Localtunnel
localtunnel
简介
localtunnel可以将内网服务器暴露到外网服务器(将我们本地电脑的项目暴露到互联网供用户访问)
客户端
下载 npm i -g localtunnel
如果我们本地运行的项目在8080端口,我们通过以下命令可以将本地的8080端口暴露到互联网上面
1 | lt --port 8080 |
地址栏输入 https://grumpy-donkey-2.localtunnel.me
就可以访问我们本地的8080端口项目了
注意: lt默认使用的域名是国外的服务器,经常性的不稳定,而且响应速度也不是很理想,我们可以把源码拉到我们自己的服务器,部署lt服务
注意第一次访问需要提交密码,密码获取:https://loca.lt/mytunnelpassword
服务器端
下载安装
1
2
3git clone git://github.com/defunctzombie/localtunnel-server.git
cd localtunnel-server
npm install启动lt server
1
2
3
4
5$ node -r esm bin/server --port 5000 //让程序在前台运行,终端如果关闭的话,程序也就退出了
$ nohup node -r esm bin/server --port 5000 &//让lt 服务以守护进程的形式运行
$ lsof -i :5000 //发现已经在后台运行了
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 32689 root 12u IPv4 3254700 0t0 TCP *:commplex-main (LISTEN)
客户端使用自己的服务器
客户端使用(假设还是将本地的8080端口暴露到官网)
1
2
3lt --host http://youself_domain.com:5000 --port 8080
会提示你:
your url is: http://horrible-robin-16.youself_domain.com:5000通过访问
http://horrible-robin-16.youself_domain.com:5000
就可以访问本地的8080端口服务了,但是我们发现二级域是一个随机字符串,没事启动的时候都会变化的,有的时候我们不希望变化,比如做微信开发的时候通过指定
1
--subdomain
来指定固定的二级域名
1
2
3lt --host http://youself_domain.com:5000 --port 8080 --subdomain localtunnel
会提示你:
your url is: http://localtunnel.youself_domain.com:5000通过访问固定域名就可以访问本地的固定的ip服务了
http://localtunnel.youself_domain.com:5000
服务器nginx反向代理
- 像微信后台填写开发者服务器地址的时候,是不能带有端口号的,但是我们上面的服务在服务器端启动的时候又不能指定成80端口号(默认是80端口号,所以我们启动的时候需要指定非80端口号),之所以不能指定非80端口号是因为我们服务器的一般都会安装nginx,而nginx启动默认应该是80端口号,所以不能冲突
- 所以我们要想我们启动的lt 服务是通过域名并且是80端口号访问的话就需要通过nginx 做反向代理,配置如下:
1 | map $http_upgrade $connection_upgrade { |
现在我们就可以直接通过80端口访问我们的服务器lt服务了
1
2
3lt --host http://youself_domain.com --port 8080 --subdomain localtunnel
会提示你:
your url is: http://localtunnel.youself_domain.com地址栏输入
http://localtunnel.youself_domain.com
就可以访问我们本地的80端口服务了, 并且也可以把该地址填入微信开发者后台用来访问我们本地的服务了,并且在本地进行调试
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 左耳!
评论