自己搭建ngrok服务把树莓派放到公网上去

概述

为什么自己搭建ngrok服务呢?原因很简单,官方如果绑定域名要收费啊,自己有服务器,所以就自己搭建一个好了,要求的服务器配置又不高,说实在的树莓派IO真的惨不忍睹,我的系统装在u盘里还是卡卡卡 不管怎么说,先把树莓派扔到公网上再说

搭建ngork服务

首先当然要安装go,因为ngrok使用go写的,但是go的官方网站被墙了,所以你得学会科学上网,因为我的服务器是国外的,所以就没有存在这样的网络问题了。 首先下载go wget https://storage.googleapis.com/golang/go1.9.1.linux-amd64.tar.gz 解压 tar -zxvf go1.9.1.linux-amd64.tar.gz 之后移动解压出来的文件夹到你喜欢的位置,一般源码安装的软件我喜欢放在/usr/local下面,所以我就把go放在那里了 mv go /usr/local 之后把go的bin目录中的命令软连接到/usr/bin中,这样就不用配置环境变量了 接着测试一下是否成功,输入 go env

接着安装ngrok 首先clone下来源码 git clone https://github.com/inconshreveable/ngrok.git 之后生成自签名证书 先新建一个文件夹 mkdir ssl 设置一个变量保存你的域名,下面生成证书时候就用这个变量名而不需要你在修改了 export NGROK_DOMAIN="ngrok.bboysoul.com" 接着一行一行复制下面的命令执行

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 device.key 2048
openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000

之后你会发现你当前文件夹下多了6个文件 把他们和ngrok原来的证书替换掉

➜  ssl git:(master) ✗ cp rootCA.pem ../assets/client/tls/ngrokroot.crt
➜  ssl git:(master) ✗ cp device.crt ../assets/server/tls/snakeoil.crt 
➜  ssl git:(master) ✗ cp device.key ../assets/server/tls/snakeoil.key

之后编译服务端 因为我的是amd64位系统所以设置下环境变量 export GOOS=linux export GOARCH=386 接着make make release-server

接着编译客户端,因为我的是树莓派是arm,所以修改一下环境变量 export GOARCH=arm make release-client

dns设置

域名的解析设置有两个 一个是*.ngrok 一个是ngrok

部署

把编译好的ngrok服务端放入/usr/bin下 cp bin/linux_386/ngrokd /usr/bin 运行 新建一个会话 screen -S ngrok 运行 sudo ngrokd -domain="ngrok.bboysoul.com" -httpAddr=":8080" -httpsAddr=":443"

客户端部署 首先把 scp root@ngrok.bboysoul.com:/root/software/ngrok/ngrok/bin/linux_arm/ngrok /home/bboysoul 复制到树莓派 touch一个配置文件,比如 touch ngrok.cfg 在里面输入 server_addr: ngrok.bboysoul.com:4443 trust_host_root_certs: false 域名自己修改一下 之后打开一个虚拟回话 screen -S ngrok ./ngrok -subdomain pi -proto=http -config=ngrok.cfg 8080 参数解释一下 subdomain就是你指定的四级域名,http就是http协议8080是端口,-config后跟的是你的配置文件名字,之后如果看到 Tunnel Status online 这样就表示连接成功,如果不成功,请检查一下防火墙,端口有没有开放。

欢迎关注Bboysoul的博客www.bboysoul.com Have Fun

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杂烩

gitlab bitnami 安装 原

官方页面https://bitnami.com/stack/gitlab/installer

16130
来自专栏一个会写诗的程序员的博客

BP 神经网络算法

x的值可能为[−∞,+∞],为了方便处理,需要将其压缩到一个合理的范围,还需 这样的激励函数,能够将刚才的区间压缩到[0,1]。

14830
来自专栏一个会写诗的程序员的博客

十分钟Spring Boot Kotlin快速开发爬虫:微技: 一个汇聚各大知名技术博客网站(ImportNew, OSChina, CNBlog, ITEye, SegmentFault, I...

还在奔忙于(ImportNew, OSChina, CNBlog, ITEye, SegmentFault, InfoQ )等等各大技术站点寻找技术文章吗?

16310
来自专栏杂烩

一种海量日志存储、分析解决方案V1.1 原

针对上一个版本https://my.oschina.net/shyloveliyi/blog/786337,有如下更新:

13030
来自专栏杂烩

dubbokeeper安装 原

git地址https://github.com/dubboclub/dubbokeeper

13030
来自专栏华章科技

全球大学计算机科学与人工智能排名:卡耐基梅隆大学居首

用这种方法进行排名入榜略难,因为在这些顶会发表文章不太容易,基于论文引用量的排名就相对简单。但作者也表示,之后的排名中会把论文引用量作为一个参数。目前,该排名还...

9640
来自专栏杂烩

mycat安装使用 原

    github地址:https://github.com/MyCATApache/Mycat-Server/wiki

17520
来自专栏一个会写诗的程序员的博客

【 Spring Boot 实战开发】10 分钟快速构建一个自己的技术文章博客

https://github.com/KotlinSpringBoot/saber

15430
来自专栏一个会写诗的程序员的博客

《Kotlin 反应式编程》使用 RxKotlin 实现一个极简的 http DSL ( Reactive Programming Using Rx Kotlin )《Kotlin 反应式编程》使用

我们现在已经基本知道 Kotlin 中 DSL 的样子了。但是这些 DSL 都是怎样实现的呢?本节我们就通过实现一个极简的http DSL来学习创建 DSL 背...

38620
来自专栏一个会写诗的程序员的博客

Spring 5.0.3.RELEASE中的 Kotlin 语言等支持Spring 5.0.3.RELEASE中的 Kotlin 语言支持

https://docs.spring.io/spring/docs/current/spring-framework-reference/languages....

28830

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励