Ubuntu安裝與配置

4、ubuntu下生成ngrok服務器主程序

4.一、步驟與先決條件

若是你只是臨時穿透或調試用,到第三步基本就能夠了,但若是想做爲穩定的商業服務,用別人的服務器仍是受制於人,這裏咱們準備搭建本身的ngrok服務器。大體的步驟以下:html

ngrok服務器能夠是多種平臺,如windows、Linux(CentOS、Debian、Ubuntu等)、Mac OS等。node

編譯源代碼生成應用強烈建議你們使用linux環境,windows確定能夠成功,但很是麻煩,我在windows操做系統上兜了一個大圈圈。linux

先決條件:nginx

a)、您有一臺公網上的服務器,如阿里雲的ECSgit

b)、您有一個域名,最好ICP備案成功,否則80端口沒有辦法使用,不過像微信開發是不使用80端口的,能夠用nginx代理轉換。github

4.二、安裝ubuntu操做系統

在linux環境下編譯ngrok的源代碼比windows下 方便不少,這裏咱們選擇使用ubuntu,得到ubuntu的方法有以下幾種:golang

1)、全新安裝ubuntu系統ubuntu

2)、申請VPS服務器, 阿里雲、騰訊雲、華爲雲、百度雲、新浪雲等,僅編譯一下這種方法不錯windows

3)、在虛擬機中安裝ubuntu系統服務器

綜合考慮我選擇了在虛擬機中安裝ubuntu操做系統

4.2.一、安裝VMware虛擬機

VMware Workstation是一款功能強大的虛擬機軟件,在不影響本機操做系統的狀況下,用戶能夠在虛擬機中同時運行不一樣版本的操做系統,用於開發、測試以及部署工做。

VMware Workstation 12 pro下載:VMware-workstation-full-12.1.0-3272444.exe

序列號:5A02H-AU243-TZJ49-GTC7K-3C61N(商業應用請購買正式版權,這裏僅爲學習使用

1)、雙擊VMware Workstation 12安裝文件,或者右鍵管理員身份打開,提示是否容許更改,點擊是;

2)、打開VMware安裝嚮導,點擊下一步;

 技術分享

3)、VMware Workstation 12激活步驟:

  方法1、首次開啓直接輸入上文密鑰,便可激活;
  方法2、首次開啓選擇試用,進入試用後按一下步驟激活:

  a、打開虛擬機主界面,點擊「幫助」—「輸入許可證密鑰」;

  技術分享

  b、在密鑰輸入框輸入永久許可證密鑰5A02H-AU243-TZJ49-GTC7K-3C61N,肯定;更多

4.2.二、安裝ubuntu到虛擬機

1)、下載ubuntu操做系統鏡像

下載地址:https://www.ubuntu.com/download/desktop

這裏我下載的是ubuntu-16.04.3-desktop-amd64.iso

2)、在VMware中安裝ubuntu

打開VMware點擊「建立新的虛擬機」

嚮導選擇自定義

這裏寫圖片描述

而後下一步再下一步,直到這裏,稍後再安裝系統

這裏寫圖片描述

後面設置處理器和內存的,電腦配置好的能夠試試,不然採用默認的,博主這裏是採用默認的,而後下一,直到這裏,選擇將虛擬機存儲爲單個磁盤:

這裏寫圖片描述

我的建議至少20G硬盤空間,內存建議給1.5G,固然也要看電腦自己的配置,1G的內存跑起來比較卡。

其它的步驟比較簡單,更多細節能夠參考這裏,《VMware Ubuntu安裝詳細過程》

4.2.三、配置ubuntu系統

當ubuntu系統安裝成功後,在虛擬機中能夠啓動ubuntu系統,啓動後的系統以下:

ubuntu系統的使用仍是有許多內容的,這裏須要設置的內容以下:

a)、設置上網

就是在ubuntu中能夠訪問外網,可使用多種形式

b)、設置語言

能夠選擇使用中文版的ubuntu語言環境

c)、設置屏幕分辨率

若是不設置默認的屏幕比較小

d)、設置以root超級管理員的身份登陸

許多操做要求管理身份

e)、安裝VMware Tools工具

只有在VMware虛擬機中安裝好了VMware Tools,才能實現主機與虛擬機之間的文件共享,同時可支持自由拖拽的功能,鼠標也可在虛擬機與主機之間自由移動(不用再按ctrl+alt),且虛擬機屏幕也可實現全屏化。
VMware Tools是VMware虛擬機中自帶的一種加強工具,至關於VirtualBox中的加強功能(Sun VirtualBox Guest Additions),是VMware提供的加強虛擬顯卡和硬盤性能、以及同步虛擬機與主機時鐘的驅動程序。

 

注意若是這裏是灰色的須要您將linux.iso鏡像加載到虛擬光驅中,通常在VM的安裝目錄下有,若是沒有您須要自行下載。

說明:ubuntu的使用不是本文的重點,相關操做請你們自行查找。

4.三、生成ngrok服務器與客戶端應用程序

4.3.1. 導出源代碼

ngrok的源代碼託管在github上,能夠先在ubuntu下安裝git再將ngrok的源代碼克隆到本地。

其實也能夠直接下載到本地後解壓,這裏使用命令行完成。

啓動ubuntu,開打命令行(終端),以下所示:

以root身份執行以下命令:

mkdir ngrok #建立名稱爲ngrok的目錄

apt-get update #更新包管理器

apt-get install git  #安裝git

git clone https://github.com/inconshreveable/ngrok.git ngrok2 #將ngrok源代碼克隆回本地

成功執行後以下所示:

導出成功後的源代碼:

PS. 直接在服務器上下載的話實在太慢,能夠先在本地下載好,而後用ftp放到服務器上去直接用,若是安裝了VMware tools直接拖進去就能夠了。

4.3.2. 安裝Go語言開發環境

直接在命令模式下執行以下指令:

apt-get install golang #安裝go語言

執行結果以下:

4.3.3. 更改ngrok域名

在本身的域名管理中添加解析A記錄,以下所示:

將*.ngrok與ngrok都指向您的主機IP。

默認的域名是ngrok本身的,要替換成您本身的域名

export GOPATH=/usr/local/ngrok/  #設置環境變量,Go語言的安裝位置
export NGROK_DOMAIN="ngrok.yourdomain.com"  #設置環境變量,ngrok域名

PS. ngrok名稱能夠任意,推薦名稱爲ngrok或者tunnel 

4.3.4. 爲域名生成證書

openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem
openssl genrsa -out server.key 2048
openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -out server.csr
openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 5000

生成後的結果以下:

證書以下:

4.3.5. 拷貝證書到指定位置

cp rootCA.pem assets/client/tls/ngrokroot.crt  #複製rootCA.pem到assets/client/tls/並改名爲ngrokroot.crt
cp server.crt assets/server/tls/snakeoil.crt #複製server.crt到assets/server/tls/並改名爲snakeoil.crt
cp server.key assets/server/tls/snakeoil.key #複製server.key到assets/server/tls/並改名爲snakeoil.key

運行結果:

4.3.6. 編譯

 因爲go語言的特性,在編譯時直接生成機器碼,因此在運行過程當中並不須要go的環境(非託管應用)。在ngrok目錄下,運行一下命令分別生成對應的客戶端與服務端。

#win服務端
GOOS=windows GOARCH=386 make release-server 
#win客戶端
GOOS=windows GOARCH=386 make release-client
#linux服務端
GOOS=linux GOARCH=386 make release-server
#linux客戶端
GOOS=linux GOARCH=386 make release-client

生成完成後,在工做目錄的bin文件夾下,產生對應的文件。以編譯windows平臺爲例,會產生「ngrok.exe」與「ngrokd.exe」這兩個文件,前者客戶端,後者須要運行在公網服務器上。

由於項目中引用了一些外部資源,生成會耗費一些時間,對網絡也有必定的要求,太慢會中短,命令執行下如:

生成結果:

這裏我還生成了兩個運行在windows服務器與客戶端的應用:

ngrok.exe是客戶端,ngrokd.exe是服務端,下面是比較連續的操做結果。

 

相關文章
相關標籤/搜索