ngrok內網穿透服務部署記錄
ngrok,一個用於實現內網穿透服務,golang寫的,已經很久遠的一個東西了,可自己部署的版本最後一個版本是1.7.1,很久也沒更新了,但他還是比較穩妥的,基於自己生成openssl證照來編譯生成伺服器端和客戶端,還是具有一定程度的安全性。
一年前,其實已經部署起來了,還專門在碼雲上fork github的原始碼,將部署生成的指令碼做了一個分支:https://gitee.com/janpoem/ngrok-fork。最近因為要大量遷移主機,所以需要重新配置一次,因此這裡就作為一個記錄吧。
特別說明,基於他已經不會再更新了,所以還是不要用於正式釋出的環境,開發環境使用,完全足夠(一年下來,非常穩定,連重啟都沒試過)。
安裝go1.7.6
首先,最後這個版本的ngrok,必須使用go1.7.6(1.7的last版本),下載地址:https://dl.google.com/go/go1.7.6.linux-amd64.tar.gz。然後在你的linux上部署go,嗯,部署go不用我再寫說明了吧,go可能是這世上最容易部署的了。
好吧,還是寫寫,免得自己下次配置的時候忘記了:
tar zvxf go1.7.6.linux-amd64.tar.gz
mv go /usr/local/go1.7.6
mkdir /usr/local/gopath/go1.7.6
unlink /usr/bin/go # 如果你的機器上裝了一個版本的go
ln -s /usr/local/go1.7.6/bin/go /usr/bin/go # 先ln上,搞完再恢復就好,沒後遺症
nano ~/.bashrc
修改 ~/.bashrc 檔案,新增,或者暫時先改為如下:
export GOPATH=/root/gopath/go1.7.6
export GOROOT=/usr/local/go1.7.6
然後,更新一下
source ~/.bashrc
構建ngrok
然後,開始使用 ngrok-fork 的指令碼,基於他不再更新了,所以我已經把自己的指令碼分支作為預設分支了。
git clone https://gitee.com/janpoem/ngrok-fork.git
cd ngrok-fork
修改編譯的配置,可以有兩個選擇:
1. 直接修改 script/predef.sh
2. 建立 user 目錄,cp script/predef.sh user/my.sh ,修改my.sh
特別需要填寫 NGROK_DOMAIN ,也即用於作為內網穿透服務的域名。比如你希望以:xxx.my.example.com的方式訪問自己的PC的話,則 :
NGROK_DOMAIN="my.example.com"
其他需要修改的就是埠號:
DEPOLY_HTTP_ADDR=":8081" # http 的埠號
DEPOLY_HTTPS_ADDR=":8082" # https 的埠號
DEPOLY_TUNNEL_ADDR=":4443" # 本機到伺服器的(隧道)埠號
ok,配置好,ngrok.sh支援以下引數:
./ngrok.sh server # 生成2048 bit ssl證照(如果已經執行過,並且存在ssl證照,則不會重新生成),並構建 ngrokd
./ngrok.sh client # 生成客戶端,出於某些原因,預設是隻生成windows_amd64版本
./ngrok.sh service # 生成ubuntu的 service 配置
./ngrok.sh on # 服務啟用自動啟動
./ngrok.sh off # 服務停用自動啟動
很簡單,很弱智吧。然後進入 bin 目錄,打包一下 windows_amd64 就可以分發出去了。
打包指令:
7z a w64.7z windows_amd64
什麼,你問怎麼啟動?
service ngrok start
service ngrok stop
service ngrok status
配置nginx
最簡配置:
server {
listen 80;
server_name *.my.example.com;
location / {
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:8081;
proxy_redirect off;
proxy_pass http://127.0.0.1:8081;
}
}
美中不足的是,本地的PHP的話,HTTP_HOST還是會顯示8081埠,現在上網似乎只找到雙ip下的解決方案,我記得一年前似乎解決了這個問題,但現在已經完全不記得了(以後想起來再更新)。也罷,到此為止吧,留個記錄,以防下次到處找資料。
本文來自雲棲社群合作伙伴“開源中國”
本文作者:曾建凱
相關文章
- ngrok 內網穿透內網穿透
- linux之frp服務部署(內網穿透)LinuxFRP內網穿透
- 使用 ngrok 進行內網穿透內網穿透
- 內網穿透神器 Ngrok 的使用內網穿透
- ngrok 搭建內網穿透+遠端桌面連線內網穿透
- 搭建自己的內網穿透,告別ngrok速度慢的問題,除錯本地服務(兩種方式,原始碼部署或者部署包部署,新手直接部署包部署)內網穿透除錯原始碼
- 一分鐘教你學會搭建ngrok內網穿透內網穿透
- ngrok穿透工具穿透
- frp + nginx 配置多人共用的http 內網穿透服務FRPNginxHTTP內網穿透
- 沙箱環境開發支付寶支付,收不到非同步通知(使用Ngrok內網穿透)非同步內網穿透
- [ Docker ] 部署 nps 和 npc 實現內網穿透Docker內網穿透
- Linux下部署Samba服務環境的操作記錄LinuxSamba
- 虛擬機器部署 Sentinel 服務錯誤記錄虛擬機
- frp免費內網穿透訪問家用電腦本地服務(http示例)FRP內網穿透HTTP
- 內網穿透的作用 免費內網穿透有哪些?內網穿透
- 內網穿透指南內網穿透
- FRP 內網穿透FRP內網穿透
- 什麼是內網穿透?為什麼使用內網穿透?內網穿透
- 內網穿透教程,簡單,便捷,極速穿透內網埠內網穿透
- FRP搭建內網穿透FRP內網穿透
- 內網穿透技術內網穿透
- natapp內網穿透工具APP內網穿透
- 用Apache服務部署網站Apache網站
- 關於內網穿透搭建內網穿透
- FRP 內網穿透、反向代理FRP內網穿透
- frp 實現內網穿透FRP內網穿透
- 內網穿透—使用 frp 實現內外網互通內網穿透FRP
- 前端內網穿透localtunnel和natapp前端內網穿透APP
- http內網穿透CYarp[開源]HTTP內網穿透
- 配置 frp 實現內網穿透FRP內網穿透
- 永久免費內網穿透工具內網穿透
- 內網穿透技術淺評內網穿透
- 使用frp實現內網穿透FRP內網穿透
- 內網穿透[搞一下]內網穿透
- frp內網穿透(已驗證)FRP內網穿透
- 網雲穿內網穿透乾貨教程內網穿透
- vue 服務端渲染折騰記錄Vue服務端
- WebSocket 服務掛掉問題記錄Web