0
点赞
收藏
分享

微信扫一扫

Ubuntu上搭建自己的ngrok服务器


Ubuntu上搭建自己的ngrok服务器

参考网站:​​http://www.sunnyos.com/article-show-48.html​​

上面的内容似乎是sunny大神本人写的,了解的越多,发现自己懂得越少,但是对知识的渴求和好奇却越深。

我们暂时做的只是在局域网上搭建ngrok服务器,利用ngrok技术实现局域网上开发板的局域网nat,当我们访问服务器的局域网ip和端口时,实际远程访问控制开发板的网站。

准备:开发板上web环境正常,php环境正常,可以正常运行ngrok-php客户端;Ubuntu上web环境正常。

一、服务器搭建准备

1.安装Git

因为ngrok的源码是在开源托管在GitHub上的,所以,安装Git可以很方便的得到其源码。Ubuntu上安装Git可以选择源码安装也可以选择使用apt-get安装,源码安装方法参考网站上有,大家可以去看看,也不难。也可以使用apt-get来安装:

sudo apt-get update

sudo apt-get install git

我的git版本:

 

Ubuntu上搭建自己的ngrok服务器_ngrok

2.安装go

因为ngrok源码是go语言写的,因此编译时需要go编译器,安装go也分为两种,源码安装和apt-get安装,源码安装这里不做介绍,感兴趣的可以去参考网址中查看,apt-get安装:

sudo apt-get update

sudo apt-get install golang-go

我的go版本(apt-get安装完成后默认架构和系统就是386和Linux):

 

Ubuntu上搭建自己的ngrok服务器_ngrok_02

准备工作到这里就OK了,下面就是下载编译源码了。

二、编译生成ngrok服务器程序

和作者一样,我们也把安装位置放在/usr/local下,我们暂时不需要域名和证书,而且客户端也不采用go版本的ngrok客户端,所以暂时不需要做为域名生成证书等操作,直接执行这几步:

cd /usr/local/

sudo git clone ​​https://github.com/inconshreveable/ngrok.git​​

export GOPATH=/usr/local/ngrok/

export NGPOK_DOMAIN=”192.168.x.xx”(其实这一步也可以不要)

cd  ngrok

GOOS=linux

GOARCH=386

sudo make release-server

等待编译完成即可,有时可能编译不成功,对github.com,有时候会链接不上,多试几次,一般是不会有问题的。

三、启动ngrok服务器

命令:/usr/local/ngrok/bin/ngrokd -domain="xxx" -httpAddr=":xxx"

demain是可以不要的,因为我们暂时不需要域名,虚拟机的域名是多少我没查,我们不需要使用http协议来链接,使用tcp协议即可。

httpAddr一般也不需要,默认本地的80端口,但是如果你的本地80端口被占用了,那么久需要“:81”之类的重新指定一个了。

其实我的Ubuntu16.04的apt-get是可以直接安装ngrok-server的,但是无法运行,也就没有深究。

链接成功后:

 

Ubuntu上搭建自己的ngrok服务器_服务器_03

 

Ubuntu上搭建自己的ngrok服务器_开发板_04

 

访问我的服务器地址及映射的端口,就会显示开发板的网站内容,这样就可以远程访问开发板网站了:

 

Ubuntu上搭建自己的ngrok服务器_服务器_05

四、最后

由于我们的开发板是运行在局域网中的,用户要访问开发板网站的话只能在同一局域网中访问,一旦不在同一局域网中,我们就无法访问了,这显然对维护和使用是很不利的。在传统的c/s和b/s模式中,是将本地开发板作为客户端,将数据上传到服务器,然后用户再通过浏览器访问服务器,获取或发出指令,然后服务器提供服务,这样的话,比如说用户远程控制一个灯,需要先通过浏览器发送到服务器,然后服务器发送指令到客户端即我们的智能网关,然后网关发送指令给灯这个设备,中间经过了服务器和网关两个中转,而且由于网关和服务器,设备和网关之间信息传递是存在一定延时的,这样的话,其操作的灵敏性就显得没有那么高了。当我们采用nat的时候,浏览器发出指令是直接操作的开发板即网关的,那么网关收到指令后立即就可以控制设备做出反应,显然相比传统模式要快一些。

举报

相关推荐

0 条评论