Windows、Linux環境下搭建ngrok服務器
Windows、Linux環境下搭建ngrok服務器
微信公眾號、支付寶支付等開發要求有公網(外網)服務器。每次調試時,上傳代碼到服務器很不方便。ngrok很好的解決了這一問題。
網上的文章大多是講實通過阿裏怎麼在Linux下搭建ngrok服務器。其實依靠雲計算的強大計算能力,可以實現快速編譯製作windows操作係統下服務器端程序,也可以實現linux操作係統下的服務器端程序。目前測試支持 Windows XP/ Windows 7 (win7)/Windows Server 2008/Windows Server 2012,各類Windows 32位,64位操作係統。同時支持Linux係列服務器,Ubuntu Linux/Red Hat Linux/CentOS,Linux 32位,Linux 64位。訪問網址https://www.hongzaosoft.cn/downloadngrok.jsp 即可製作下載 windows、Linux版本的ngrok服務端和客戶端。
生成好的程序是綠色免安裝版,直接拷貝就可以用,連腳本都配置好了。
一、搭建前準備條件:
1.如果是做tcp內網穿透,隻需要公網ip,或者域名,域名可以不備案,但必須確保被解析到你的服務器公網ip上。
如果是做http穿透,必須要有域名,並且通常你的服務器提供商會要求域名備過案。
通常我們用自己的域名比如hongzaosoft.cn來給ngrok服務端用,如果被占用,也可以準備個二級域名比如ngrok.hongzaosoft.cn來專門給ngrok用,這個域名在後麵編譯服務器端會用到,配置文件裏也必須與這個域名一致,否則連不上;
2.防火牆準備:請開放以下端口:
4443:ngrok服務端默認用到的端口,此端口可以在配置文件中更換。
80:ngrok服務端http協議用到的端口,此端口可以在配置文件中更換。
還有您指定的remote遠程服務器端口,例如將服務器的tcp端口25565轉發到本地內網25565端口,則遠程服務器必須開放25565端口,本地客戶機開放25565端口。
怎麼開放防火牆端口,以我的centos為例
#開放 8080 端
iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
service iptables save
客戶端也要放開對應的端口,一般客戶端安全性要求不高,可以直接關掉防火牆
windows開放防火牆有圖形化界麵,不贅述。
二、編譯服務器端、客戶端軟件
自己編譯需下載安裝Git、Go環境、編譯ngrok、為域名生成證書。
比較複雜,要了解的東西比較多,這裏可以借助紅棗軟件提供的生成服務器端、客戶端軟件的功能,避免繁雜的工作。
自己弄下來得大半天功夫,一個程序員一天都值幾百大洋,不如直接通過紅棗軟件提供的服務生成來的好。
圖形化界麵,通俗易懂;編譯好軟件的同時,生成服務端和客戶端啟動腳本。
服務器端配置:
如果您沒有域名,或者不想用域名,也可以填您的公網ip
客戶端配置:
這裏配置一個http轉發示例:講內網tomcat的8080端口使用wx.hongzaosoft.cn這個域名來訪問
那麼訪問https://wx.hongzaosoft.cn就可以訪問到https://127.0.0.1:8080的效果。
再配置一個tcp轉發示例:
比如轉發我的世界遊戲用的25565端口到ngrok服務器的25565端口,則可如下配置
點提交後,會跳轉到ngrok下載頁麵。下載得到的文件如下:
生成的文件全部是綠色免安裝,拷過去就可以用了。為了提高您的下載速度,將主程序放到了百度網盤,從百度網盤下載下來後,windows下雙擊bat文件,Linux下執行sh的shell腳本就可以了。
三、服務器、客戶端啟動方法
以windows為例,從百度網盤下載服務端exe文件到《啟動ngrok服務端.bat》所在目錄後,雙擊運行這個bat文件,啟動後界麵
接下來啟動客戶端。從百度網盤下載服務端exe文件到《啟動端口25565.bat》所在目錄後,雙擊運行這個bat文件,就可以映射25565端口了,顯示online表明成功。
如果要啟動wx這個子域名的http內網穿透,雙擊《啟動子域名wx.bat》就可以了,顯示online的成功界麵如下:
如果要做其他tcp端口、http子域名的內網穿透,詳細參見生成的軟件中包含的文檔。
Linux的使用方法也很簡單,有寫好的對應的shell腳本。
軟件的下載鏈接https://www.hongzaosoft.cn/downloadngrok.jsp
客戶端配置進階篇
如果需要轉發服務器ngrok.hongzaosoft.c的80端口到本地的8080;
轉發服務器ngrok.hongzaosoft.c的tcp 22端口到本地的22
轉發服務器ngrok.hongzaosoft.c的tcp 3389端口到本地的3389
則可以這麼做,創建一個ngrok.cfg文件,配置如下:
server_addr: "ngrok.hongzaosoft.cn:4443"
trust_host_root_certs: false
tunnels:
httptest:
proto:
http: 8080
ssh1:
remote_port: 22
proto:
tcp: 22
tcp2:
remote_port: 3389
proto:
tcp: 127.0.0.1: 3389
配置文件寫好後,我們可以寫一個bat文件,示例如下:
ngrok.exe -config=ngrok.cfg start httptest ssh1 tcp2
以後直接運行bat文件就可以啟動客戶端了
最後更新:2017-07-18 20:35:05