您的当前位置:首页正文

localtunnel 使用教程

来源:华佗小知识

简介

  • localtunnel可以将内网服务器暴露到外网服务器(将我们本地电脑的项目暴露到互联网供用户访问)

客户端

  • 下载 npm i -g localtunnel
  • 如果我们本地运行的项目在8080端口,我们通过以下命令可以将本地的8080端口暴露到互联网上面
    ✗ lt --port 8080
    your url is: https://grumpy-donkey-2.localtunnel.me
    
  • 地址栏输入 https://grumpy-donkey-2.localtunnel.me就可以访问我们本地的8080端口项目了
  • 注意: lt默认使用的域名是国外的服务器,经常性的不稳定,而且响应速度也不是很理想,我们可以把源码拉到我们自己的服务器,部署lt服务

服务器端

  • 下载安装
      git clone 
      cd localtunnel-server
      npm install
    
  • 启动lt server
    $ 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端口暴露到官网)
    ✗ lt --host  --port 8080
    your url is: 
    
  • 通过访问就可以访问本地的8080端口服务了,但是我们发现二级域是一个随机字符串,没事启动的时候都会变化的,有的时候我们不希望变化,比如做微信开发的时候
  • 通过指定--subdomain来指定固定的二级域名
     ✗ lt --host  --port 8080 --subdomain localtunnel
     your url is: 
    
  • 通过访问固定域名就可以访问本地的固定的ip服务了

服务器nginx反向代理

  • 像微信后台填写开发者服务器地址的时候,是不能带有端口号的,但是我们上面的服务在服务器端启动的时候又不能指定成80端口号(默认是80端口号,所以我们启动的时候需要指定非80端口号),之所以不能指定非80端口号是因为我们服务器的一般都会安装nginx,而nginx启动默认应该是80端口号,所以不能冲突
  • 所以我们要想我们启动的lt 服务是通过域名并且是80端口号访问的话就需要通过nginx 做反向代理,配置如下:
 map $http_upgrade $connection_upgrade {
   default upgrade;
   ''      close;
}
server {
   listen 80;
   server_name  

       root 
   error_log /usr/local/nginx/logs/error.log;

   location   / {

        proxy_pass http://127.0.0.1:5000;

           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header Host $http_host;
           proxy_set_header X-Forwarded-Proto http;
           proxy_set_header X-NginX-Proxy true;
           proxy_set_header Upgrade $http_upgrade;
           proxy_set_header Connection $connection_upgrade;

           proxy_redirect off;
   }
}
  • 现在我们就可以直接通过80端口访问我们的服务器lt服务了
     ✗ lt --host  --port 8080  --subdomain localtunnel
    your url is: 
    
  • 地址栏输入就可以访问我们本地的80端口服务了, 并且也可以把该地址填入微信开发者后台用来访问我们本地的服务了,并且在本地进行调试