ngrok+raspi 快捡起你吃灰多时的树莓派

/

买树莓派的时候,想着那么多的好玩的(什么搭监控系统,搞个在线的音乐播放器,搭建多媒体系统,装 openwrt 当路由器),但是基本都荒废了,最后沦落为早上定时放首歌的闹钟,总结原因还是实用性都不高,眼看有台国外VPS过段时间又要到期了,想到续费(1G/年/¥450)就肉痛,想到自己还有个吃灰的树莓派,于是有了下面的内容

ngrok

一款开源的可以实现内网穿透,实现方式是最简单,最可靠的服务器中转数据的软件,官方有提供对应的服务,不过想绑定域名是要收费,加上墙的原因(慢),国内也有部分提供类似服务的,但要收费,于是还是得靠自己动手

准备

  • raspi
  • 公网可以访问的云服务器
  • 域名

官网有提供ARM的包,可以下载,但是由于这里是自己搭建,那还是自己用源码编译吧

安装 GO

由于程序是使用GO编写的,编译前还是安装GO的环境
https://golang.org/dl/ 这里需要使用2个版本的环境,树莓派使用 Linux-ARM,中转服务器使用 Linux-amd64,对应的环境各自编译一份

vim ~/.bashrc

在最后一行追加

  1. export GO_PATH=GO的主目录
  2. export PATH=$GO_PATH/bin:$PATH

源码编译

  1. git clone https://github.com/inconshreveable/ngrok
  2. cd ngrok
  3. make

执行完后会在 ngrok/bin 会多出几个文件,ngrok(树莓派,客户端程序),ngrokd(中转服务器端)

配置

服务端比较简单
./ngrokd -domain example.com -httpAddr :8080

客户端稍微复杂一点,可以使用yaml的方式(可以配置多个)

  1. server_addr: example.com:4443
  2. trust_host_root_cert: false
  3. tunnels:
  4. jenkins:
  5. proto:
  6. http: 8080
  7. subdomain: ci

./ngrok -config=/PATH/.ngrok.yml start jenkins
如果.ngrok.yml文件放在用户目录可省掉 -config 参数

共享80端口

由于端口问题,需要在服务器上面的nginx,和树莓派上面手动改 proxy_set_header Host 就可以了,服务上面的 proxy_set_header Host 带端口信息,树莓派上面的nginx省略端口信息

总结

树莓派内存有限,但是放些博客,小程序,可用性不高的,还是绰绰有余的。如果经常断电,记得加到启动配置文件里,通过简单的配置,就省了一笔了,关键是这个是终身的,想想就刺激(用几个月就回本了呀)

转载请注明作者和出处,并添加本页链接。
原文链接:https://blog.94fzb.com/post/install-ngrok-on-raspi

给我留言