树莓派内网穿透建站与维护
概述
如题,我们今天主要讲利用网云穿官方提供的内网穿透功能来外网访问树莓派上的网站,以及通过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是有配置文件直接生效的,可以通过浏览器访问树莓派的局域网ip,例如我的是192.168.199.175
,能看到这个页面,就表示web server已经正常提供服务。
如果需要访问自己的网站文件,改一下nginx的配置文件就可以了。
网云穿内网穿透
网站已经有了,接下来就是配置内网穿透进行外网访问。
在网云穿官网注册账号-领取免费隧道,然后跳转控制台点击隧道管理、配置隧道信息;穿透协议设置为Http(s)。内网端口就是上面安装的nginx的端口,默认是80,可以通过修改配置文件做调整,在这里配置好即可。
确定之后控制台会生成令牌,复制下来。
接着安装网云穿客户端,上面说了树莓派是arm架构处理器,所以要下载arm版本的网云穿软件,登录控制台很明显的可以看到:
复制好链接地址,执行如下命令:
# 使用wget
wget https://down.xiaomy.net/linux/wyc_linux_arm && chmod a+rwx wyc_linux_arm
# 使用curl,二选一即可
curl -O https://down.xiaomy.net/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 外网端口 pi@域名
这就实现了对树莓派进行远程管理。
总结
通过网云穿开通了两条隧道,即实现了外网访问的网站,也实现了远程管理。
你可能会问,这么做有必要吗?还不如买一个云服务器呢!
我个人认为建站最大的成本在于云服务器,个人网站使用的1核1G外加1Mbps带宽通常够了。以阿里云为例,价格每年500左右。而这个配置的服务器我之前启动个hadoop都很费劲。
而内网穿透明显便宜很多,我们可以根据网站的情况选用更高的带宽。并且可以绑定自己的域名,服务器也不需要备案,外人看来和云服务器没有区别。
最后,非常感谢网云穿提供的免费方案。