localtunnel 实现内网穿透

20180303


localtunnel

自行搭建服务器的请继续往下翻

简介

由于 ipv4 地址的数量不足,大部分中国地区的家庭 ip 地址均是由 ISP 转发,无法实现搭建个人服务器的目标。而如果采用 ddns 服务商如花生壳等,在价格昂贵的同时配置极为复杂且不稳定。为解决这样的问题,localtunnel 出现了。
localtunnel 是一个基于 nodejs 的内网穿透工具。通过简单的安装可以实现将内网里的设备的某个端口暴露在公网中以提供服务。

使用

预先要求

  • nodejs
  • npm

安装

npm install -g localtunnel // 安装 localtunnel client

运行

lt --port PORT_OF_YOUR_SERVICE // 创建一个请求到 localtunnel.me 来获取一个 URL 指向你的服务
// 输出:your url is: https://RANDOM.localtunnel.me

// Advanced
// 使用 subdomain 参数和 local-host 参数 
lt --port PORT_OF_YOUR_SERVICE --subdomain test --local-host HOSTNAME 
// 请求将 HOSTNAME:PORT_OF_YOUR_SERVICE 暴露在 test.localtunnel.me 上

注意事项⚠️

  • localtunnel.me 只适用于开发测试之类的活动,不适合搭载生产环境 (使用自己搭建的localltunnel-server服务端来负载生产环境)
  • localtunnel.me 服务器在国外,可能造成访问缓慢(使用自己搭建的localltunnel-server服务端来避免)。

localtunnel-server

负责 localtunnel 请求并建立链接

预先要求

  • 一台具有公网 ip 的服务器
  • 服务器需要开放 1000-65535 的 tcp 端口
  • 一个顶级域名 (localtunnel-server master branch 不支持子域名)
  • 将域名 example.com*.example.com 解析到你的服务器上

注意事项⚠️

  • 不支持子域名解析到服务器 (i.e. 不支持 sub.example.com 作为你服务器的 URL)
  • 不支持子域名解析到服务器 (i.e. 不支持 sub.example.com 作为你服务器的 URL)
  • 不支持子域名解析到服务器 (i.e. 不支持 sub.example.com 作为你服务器的 URL)

使用

安装与运行

# pick a place where the files will live
git clone git://github.com/defunctzombie/localtunnel-server.git
cd localtunnel-server
npm install

# server set to run on port 1234
bin/server --port 1234

client 端配置

// 链接时指定 --host 参数
lt --port PORT --host http://example.com:1234 --subdomain sub
// 输出:your url is: http://sub.example.com:1234

Docker 支持

详见
https://github.com/localtunnel/server/#deploy
https://github.com/localtunnel/nginx#nginx-for-localtunnel
https://github.com/localtunnel/nginx#local-testing

Naive子域名支持

目前只支持二级,不支持顶级
https://github.com/William-An/server

你可能感兴趣的:(localtunnel 实现内网穿透)