树莓派利用内网穿透建站与维护,无需服务器
树莓派内网穿透建站与维护
概述
如题,我们今天主要讲利用网云穿官方提供的内网穿透功能来外网访问树莓派上的网站,以及通过 ssh 进行远程管理。
树莓派
树莓派是基于博通出品的 arm 架构处理器的微型电脑,价格低廉,目前最新版本为 4B,笔者使用的是 3B+,当时是二百元左右。
3B + 版本的配置如下:
- 主频 1.4GHz,64 位 4 核的 ARM Cortex-A53 CPU
- 1GB LPDDR2 内存
- 2.4GHz 和 5GHz IEEE802.11.b/g/n/ac 无线网卡,蓝牙 4.2
- 4 个 USB2.0
- HDMI
这配置跑一个静态网站是绰绰有余了,毕竟阿里云便宜的也就 1 核 1G 而已(主频会稍高一些)。
建站
nginx
树莓派官方提供了基于 Debian 的 Raspberry Pi OS,所以安装软件与大家熟悉的 Ubuntu 一样,首先安装 nginx 作为 web server:
sudo apt install nginx
安装完启动:
# 启动nginx,没有输出就表示启动成功了sudo nginx # 也可以主动查看进程ps -ef | grep nginx
查看进程输出类似如下效果:
nginx
默认 nginx 是有配置文件直接生效的,可以通过浏览器访问树莓派的局域网 ip,例如我的是 192.168.199.175,能看到这个页面,就表示 web server 已经正常提供服务。
浏览器
如果需要访问自己的网站文件,改一下 nginx 的配置文件就可以了。
网云穿内网穿透
网站已经有了,接下来就是配置内网穿透进行外网访问。
在网云穿官网购买隧道并将穿透协议设置为 Http (s)。内网端口就是上面安装的 nginx 的端口,默认是 80,可以通过修改配置文件做调整,在这里配置好即可。
image-20200802160920441
确定之后控制台会生成令牌,复制下来。
image-20200802161617631
接着安装网云穿客户端,上面说了树莓派是 arm 架构处理器,所以要下载 arm 版本的网云穿软件,登录控制台很明显的可以看到:
arm
复制好链接地址,执行如下命令:
# 使用wgetwget http://xiaomy.net/download/linux/wyc_linux_arm && chmod a+rwx wyc_linux_arm # 使用curl,二选一即可curl -O http://xiaomy.net/download/linux/wyc_linux_arm && chmod a+rwx wyc_linux_arm
执行完成后网云穿的客户端就安装好了,接下来启动软件,执行如下命令:
./wyc_linux_arm -token 上面记录的令牌
可以看到如下输出:
外网地址也有了,直接在浏览器访问外网域名:
就是这么简单,树莓派里面的网站就可以供外网访问了。
运维
网站运行起来就完事了吗?当然不是,后续可能还需要面临网站更新、软件更新、服务重启等事务,这些事情只能通过远程管理来操作,也就是这部分要讲的内容:通过 ssh 进行树莓派的运维管理。
其实在建站的过程中我们已经在树莓派上安装了些软件,这个过程就是 ssh 连接的操作,而现在要做的就是 ssh 访问外网地址来连接树莓派。
同样还是先开通隧道,这次配置穿透协议为 tcp,内网端口为 sshd 的端口,默认是 22 号,当然也可以通过配置文件进行修改,保持一致就行。
确定之后,会生成如下信息,记录下外网端口、域名和令牌:
并且再次启动一个网云穿客户端,使用刚刚记录的口令,这次会生成一个带有端口的外网地址。
./wyc_linux_arm -token 上面记录的令牌
最后可以在其他机器上通过下面的命令连接树莓派:
ssh -p 外网端口 aaa@qq.com域名
这就实现了对树莓派进行远程管理。
总结
通过网云穿开通了两条隧道,即实现了外网访问的网站,也实现了远程管理。
你可能会问,这么做有必要吗?还不如买一个云服务器呢!
我个人认为建站最大的成本在于云服务器,个人网站使用的 1 核 1G 外加 1Mbps 带宽通常够了。以阿里云为例,价格每年 500 左右。而这个配置的服务器我之前启动个 hadoop 都很费劲。
而内网穿透明显便宜很多,我们可以根据网站的情况选用更高的带宽。并且可以绑定自己的域名,服务器也不需要备案,外人看来和云服务器没有区别。
当然这么比较明显是不公平的,因为选用内网穿透的方案需要我们自己提供电脑、电费和精力。综合起来成本可能差不多,但是理论上电脑的性能就由我们自己控制,可玩性大得多,生命不就在于折腾吗?
最后,非常感谢网云穿提供的免费方案。
推荐阅读