Localtunnel(Node.js 版) 使用教程

简介

Localtunnel 是一个能够让内网服务器暴露到公网上的开源项目。nginx

客户端

安装

$ npm install -g localtunnel

使用

假设本地服务器在 8000 端口,咱们能够经过下面的命令把本地服务器暴露到公网中git

$ lt --port 8000
your url is: https://uhhzexcifv.localtunnel.me

经过上面的命令,咱们不须要作其余设置就能够经过 https://uhhzexcifv.localtunnel.me 来访问咱们本地服务器了。github

因为 localtunnel.me 是国外的服务器,访问速度有时候不太理想,这时候咱们能够本身搭建 localtunnel 的服务端。shell

服务端

安装

$ git clone git://github.com/defunctzombie/localtunnel-server.git
$ cd localtunnel-server
$ npm install

使用

以监听 2000 端口为例:npm

# 直接使用
$ bin/server --port 2000

# 配合 pm2 使用
$ pm2 start bin/server --name lt -- --port 2000

启动服务端程序后,咱们只要在使用客户端 lt 时加上 --host 参数,就能够指定服务端了。安全

# host 后面不要加 /
$ lt --host http://helloworld.com:2000 --port 8000
your url is: http://jhuyudvlum.helloworld.com:2000

这样,咱们就能够经过本身的代理服务器来访问本地服务器了,不用通过第三方代理服务器,没必要担忧代理服务器的安全问题。服务器

高级用法

反向代理

在 Github 上面有一份 Nginx 的配置,咱们能够直接使用,或者按照本身的须要作些修改。dom

指定子域名

有时候,用随机字符串做为子域名并非一件好事,咱们可能须要固定的域名来访问本地服务器。这时,lt --subdomain 就能够派上用场了。url

# subdomain 限制长度为 4 ~ 63
$ lt --host http://helloworld.com:2000 --port 8000 --subdomain mysubdomain
your url is: http://mysubdomain.helloworld.com:2000

看到了吗?经过 --subdomain,咱们就能够指定本身喜欢的子域名了。代理

然而,若是咱们经过 --host 来指定子域名,会发生什么?

$ lt --host http://mysubdomain.hello.com --port 8000
Error: localtunnel server returned an error, please try again

就算配置了 Nginx 的反向代理,你依然会获得这个错误。能够查看 #21#31 来看更多的细节。

要解决这个问题,最简单的就是 不用 --host 来指定子域名,而用 --subdomain 来指定。

其实有好几个 pull request 都尝试去解决这个问题的,但不知道什么缘由,做者一直没去合并。或者再过一段时间,这个问题就会解决,到时候, localtunnel 就会变得更加好用了。

出处

http://scarletsky.github.io/2016/01/17/localtunnel-usage/

参考资料

https://github.com/localtunnel/localtunnel

https://github.com/localtunnel/server

相关文章
相关标签/搜索