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是服务端,下面是比较连续的操做结果。

 

相关文章
相关标签/搜索