ngrok+raspi 快捡起你吃灰多时的树莓派
买树莓派的时候,想着那么多的好玩的(什么搭监控系统,搞个在线的音乐播放器,搭建多媒体系统,装 openwrt 当路由器),但是基本都荒废了,最后沦落为早上定时放首歌的闹钟,总结原因还是实用性都不高,眼看有台国外VPS过段时间又要到期了,想到续费(1G/年/¥450)就肉痛,想到自己还有个吃灰的树莓派,于是有了下面的内容
ngrok
一款开源的可以实现内网穿透,实现方式是最简单,最可靠的服务器中转数据的软件,官方有提供对应的服务,不过想绑定域名是要收费,加上墙的原因(慢),国内也有部分提供类似服务的,但要收费,于是还是得靠自己动手
准备
- raspi
- 公网可以访问的云服务器
- 域名
官网有提供ARM的包,可以下载,但是由于这里是自己搭建,那还是自己用源码编译吧
安装 GO
由于程序是使用GO编写的,编译前还是安装GO的环境
https://golang.org/dl/ 这里需要使用2个版本的环境,树莓派使用 Linux-ARM,中转服务器使用 Linux-amd64,对应的环境各自编译一份
vim ~/.bashrc
在最后一行追加
export GO_PATH=GO的主目录
export PATH=$GO_PATH/bin:$PATH
源码编译
git clone https://github.com/inconshreveable/ngrok
cd ngrok
make
执行完后会在 ngrok/bin 会多出几个文件,ngrok(树莓派,客户端程序),ngrokd(中转服务器端)
配置
服务端比较简单./ngrokd -domain example.com -httpAddr :8080
客户端稍微复杂一点,可以使用yaml的方式(可以配置多个)
server_addr: example.com:4443
trust_host_root_cert: false
tunnels:
jenkins:
proto:
http: 8080
subdomain: ci
./ngrok -config=/PATH/.ngrok.yml start jenkins
如果.ngrok.yml文件放在用户目录可省掉 -config 参数
共享80端口
由于端口问题,需要在服务器上面的nginx,和树莓派上面手动改 proxy_set_header Host 就可以了,服务上面的 proxy_set_header Host 带端口信息,树莓派上面的nginx省略端口信息
总结
树莓派内存有限,但是放些博客,小程序,可用性不高的,还是绰绰有余的。如果经常断电,记得加到启动配置文件里,通过简单的配置,就省了一笔了,关键是这个是终身的,想想就刺激(用几个月就回本了呀)
转载请注明作者和出处,并添加本页链接。
原文链接:
//xiaochun.zrlog.com/install-ngrok-on-raspi.html