前言
因为准备创建俱乐部,需要用到网站等内容。而创建俱乐部本身就是为了学习树莓派、编程等内容的,所以计划使用树莓派做Web服务器,不过因为设备在内网,而且没有固定IP,需要用到内网穿透。经过在网络上搜索,找到了Ngrok这个工具,1.X是开源的,2.X不是。于是开始用1.X创建Ngrok服务器。因为我不是技术派,所有的资料都是网上找到的,属于自己试错过来的,依葫芦画瓢而已。很多内容只是知其然而不知期所以然,因此如果这篇文章有幸被其他想要自己创建的朋友看到,有任何问题可以和我交流,我的邮箱是ixujue@vip.qq.com,欢迎发邮件交流。
文章目录
1. Ngrok是什么
一开始我只知道想要做内网穿透可以使用Ngrok,因为我是通过搜索内网穿透找到的它(感觉有点绕,将就一下,就啰嗦这几句)。
通过了解发现,Ngrok主要是用来做内网暴露的,是粗暴的机器翻译这么解释的,来自官网中文网站的介绍是:
将本地Web服务器公开到互联网
ngrok允许您将本地计算机上运行的Web服务器公开到互联网。只是告诉ngrok你的web服务器正在监听什么端口。
如果你不知道你的web服务器正在监听什么端口,它可能是端口80,HTTP的默认值。
我在其他介绍自建Ngrok服务器的文章中还看到:
ngrok是一个反向代理,它能够让你本地的网络服务或TCP服务通过公共的端口和外部建立一个安全的通道,使得外网可以访问本地的计算机服务.ngrok1.x开源,ngrok2.x不开源
ngrok的主要用途有以下几种:
- 内网穿透,可代替VPN
- 将无外网IP的桌面映射到公网
- 临时搭建网络并分配二级域名
- 微信二次开发的本地调试
还有的文章是和各类收费的软件作比较的,比如国内做了很久的花生壳,以及类似的软件(很多我记不住名字)。这部分就啰嗦到这里了。
2. 我用到的设备和软件
Ngrok服务器必须搭建在公网独立IP的服务器上,这有点悖论,我都买了个公网独立IP服务器了,我还做内网穿透做什么?
我的考虑是,便宜啊。我的公网服务器只用来搭建Ngrok,对系统的要求很低,入门级别就可以了,一年只有几百大洋。而且,服务还可以搭建在亚马逊的AWS上面,如果是新用户,可以免费用一年,下一步我就准备在AWS上再建一个用一年,节约点成本也是好的。
2.1 硬件设备
- 阿里云服务器
- 一个域名
- 树莓派3B+配32G卡
- 用于远程SSH连接阿里云和树莓派的Windows电脑一台(我是Win系用户)
2.2 软件系统(这里只是介绍,后面会有操作步骤)
- Debian 9.2 64位,安装在阿里云服务器上
- git软件,用于下载Ngrok源代码,安装在阿里云服务器上
- go lang软件,用于编译可执行程序
- RASPBIAN STRETCH WITH DESKTOP,安装在树莓派3B+上
- 宝塔Linux面板
- 其他软件系统都自带了,不用再额外安装了。
3. 基础环境操作
搞清楚前面的内容后,我们就可以开始动手了。
3.1 给两台电脑硬件安装Linux操作系统
这个指导文件的第一版我只是带过一下,关于安装操作系统的内容,请上网搜索相关内容了解执行。后续版本我会把相关内容都添加进去。
Debian上官网去下载最新版的安装就可以了,我用的是阿里云服务器,直接在阿里云里通过镜像的方式可以快速安装Debian系统。Raspbian其实就是Debian针对树莓派编译的独立版本Linux,到树莓派的官网就可以下载,按照里面的指导文件操作,很容易就可以搞定。
3.2 服务器端软件安装
由于使用的镜像包安装的阿里云系统,简化的比较厉害,不少软件都没有,所以需要安装基础软件,以下的命令都是Debian中可用的,其他系统我没用过,所以没有去了解执行命令。所有的命令我都是在root账号下执行的。
首先是更新系统软件和系统命令:
apt-get update
apt-get upgrade
然后安装git:
apt-get install git
再安装go lang环境:
apt-get install golang-go
git和go lang环境的安装我都是用的Linux命令执行的,Linux系统的软件资源List会自动对应网址进行下载,这样省去了我选择版本的疑惑,基本上安装的都是最新版本的软件。这些步骤结束后,我们的环境已经准备好了,接下来开始安装Ngrok服务。
4. Ngrok复制和编译
4.1 Ngrok复制
在使用git软件从github上下载Ngrok源码前,需要先进入装备安装的目录,我看到的几个版本都是建议放在/usr/local/目录下。至于为什么,在写这篇文章的时候我搜索了一下,这与Liunx目录的结构有关,Linux目录结构又来自于Unix系统,而这个初始结构的来历,居然是和过去单个磁盘空间太小有关,下面是引用的内容,大家也一起学习一下吧:
Unix目录结构是历史造成的。
话说1969年,Ken Thompson和Dennis Ritchie在小型机PDP-7上发明了Unix。1971年&#x