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

相關文章
相關標籤/搜索