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