hexo博客搭建(四):本地Linux系统部署,搭建宝塔Linux面板,通过内网传统实现域名访问
本文主要讲解如何搭建hexo博客网站,并直接部署在github上,实现通过
xxx.github.io
来访问博客,同时针对云服务器的用户,可以把Hexo博客同步部署到服务器上,通过宝塔Linux面板架设网站,并实现域名解析和绑定。针对没有云服务器的用户,也给出了直接部署在个人的Linux终端(比如:树莓派或者其他Linux开发板,软路由,NAS等)的方案和思路,并给出通过内网穿透方法实现通过自主域名访问博客的方法。最终实现可以通过xxx.github.io
和自主域名访问博客网页。 这里不对Hexo博客的特性做说明,详细的Hexo相关的内容,可以参考Hexo官方网站:https://hexo.io/zh-cn/
这里用宝塔面板主要因为:一方面宝塔面板免去了Nginx的相关配置,可以直接用可视化操作来部署网页;另外一方面,一台Linux服务器可以同属部署多个网站,可以统一用宝塔面板统一管理。也方便该服务器不仅可以用来部署网站,还可以同时作为其他左右使用(比如可以用来做远程代码调试,内网穿透服务等)。
本文主要分四个章节来讲解:
二:如何把Hexo搭建的博客同步到github的网页托管服务上,实现以
xxx.github.io
(其中xxx
为你的github用户名)访问;四:如何把博客部署到本地的Linux服务器(树莓派或者其他Linux开发板,软路由,NAS等)上,通过内网穿透服务和自主域名绑定实现实现自主域名的访问。
一般情况下,自主域名需要做域名解析,所以,它只能访问你的云服务器或者你本地的Linux服务器,二选一即可,把hexo博客部署在Linux服务器上的操作在第三章节的前面两个部分。
四、本地Linux系统部署,搭建宝塔Linux面板,通过内网穿透实现域名访问
本节主要介绍假如没有云服务器,而手头刚好有一块linux的开发板(比如树莓派—也包括其他XX派,软路由,NAS等),可以实现再本地的linux电脑上假设网站,然后通过内网穿透服务(内网穿透有多种方法,比如如果自己有云服务器,可以通过自己搭建frp,或者nps实现内网穿透),当然,也有一些其他的内网穿透方法,这里不一一介绍了。但是,一般情况下内网穿透软件都是由两部分组成,服务端和客户端,服务端也需要部署在一个拥有公网IP的机器上(本身上还是需要一个云服务器),当然也可以用一个云服务器给多个内网设备做穿透,这个取决于个人的业务需求和选择。
如果你没有云服务器(而如果你只需要实现一个博客网站,也不需要专门购买一个云服务器,虽然一个云服务器本身并不贵,而且阿里云,腾讯云,华为云还经常由活动,一个基本的云服务器在做活动的时候是需要几十到百来元/一年不等的价格),也可以采用其他服务商提供的内网穿透服务来实现访问,有免费的有收费的,这里只是提供一种思路,所以采用了第三方公司的内网穿透服务natapp,它是一家国内基于ngrok的内网穿透服务提供商。它有免费的和收费的可以选择,内网穿透的服务器也可以选择国内服务器和香港的服务器,如果你的域名已经备案,可以选择国内服务。如果域名没有备案,也可以选择香港的服务器。不过免费的内网穿透方案,不支持绑定自己的域名,只能使用服务商提供的二级域名。
可能涉及到的软件和工具:
- frp内网穿透工具:https://gofrp.org/zh-cn/
- nps内网穿透工具:https://ehang-io.github.io/nps/#/
ngrok 反向代理: https://ngrok.com/
natapp内网穿透服务:https://natapp.cn/
另外,由于本次实验采用的开发板也是基于ubuntu的系统,所以,再部署git服务器和安装和配置宝塔Linux面板操作(即1和2部分)和在云服务器上基本一样,只是ip地址变成了局域网的ip地址,你只需要按照上一章节的1和2部分一样操作即可。这里就不重复介绍了,这里假设你已经在开发板上部署好了你的博客系统。只是介绍如何部署内网穿透,以及如何在宝塔Linux面板中配置与内网穿透对接实现域名访问。
1、 把在本地部署的hexo博客通过内网穿透绑定自主域名
- 进入natapp的网站注册一个账号,注意,natapp的默认免费通道是不支持绑定自主域名的,如果你的域名没有备案,则需要购买香港服务器(HK-1和HK-2型)。由于我们已经有一个测试的备案域名,所以我们购买一个1个月的VIP-1型,另外,如果需要绑定已经备案自主域名还需要花费1元购买10积分,添加一个备案域名(HK型可以直接添加自定义域名)。添加的备案域名可以在自主域名处查看到(这里我们以一个我已经备案的域名senyblog.com为例):
- 接着我们可以配置我们的VIP-1 型通道,设置如下:
这里简单介绍以下,我们选择自主域名,并且以我们备案的域名
www.senyblog.com
作为自主域名,来映射到服务器的主机的80端口上,免费开启https是指在我们有SSL证书的情况下,可以开启安全的https访问。这个后面会说明。 注意到通道名称上面有一个
authtoken
字符串,这个后面我们在客户端中需要用到。
- 我们需要在域名提供商(我们域名是在阿里云购买),设置域名解析,把
senyblog.com
域名的主机记录:www,以CHANE的记录类型,记录值为通道提供的c80de39d61648d86.natapp.cc
上。
- 然后我们进入到宝塔linux面板,在网页中添加我们的备案域名
www.senyblog.com
,如下图:
我们从natapp官网下载客户端(根据自己的服务器类型,我们采用的是RK3588的处理器,64位的ubuntu系统,所以选择
Linux/ARM 64位
版本),然后用支持文件传输的ssh工具(这里使用MobaXterm
,当然也可以直接使用宝塔的linxu面板来传输文件),把文件传输到/usr/local/natapp/
中(如果没有则创建对应的文件夹),也就是把下载的natapp的应用程序拷贝到该目录下。以root权限,在终端中进入
/usr/local/natapp/
目录,给与natapp
的运行权限,并运行natapp
,其中的-authtoken=XXXXXXX
填入通道的authtoken
值即可。
1 | sudo root |
- 这个时候我们就可以通过能够上网的任何设备,直接用
www.senyblog.com
访问我们的网页了。
- 这时候只是可以访问,但是每次启动我们的开发板,需要重新运行一次
./natapp -authtoken=XXXXXXX
命令来启动natapp
,且需要占用终端。这里给出两个方案,一个是后台运行,一个是开启自启动
后台运行 : 直接
nohup ./natapp -authtoken=xxxx -log=stdout &
来运行natapp即可,如果需要退出,可以通过ps -ef|grep natapp
来查看narapp
进程,然后通过kill -9 id
来关闭natapp
,详细可以参考:https://natapp.cn/article/nohup通过脚本设置开启自启动,按照如下操作
- 从网站:https://natapp.cn/article/config_ini 下载config.ini文件,填写
authtoken
的值,并把该文件上传到natapp
的目录下,即/usr/local/natapp/
目录下 - 可以通过直接运行
./natapp
测试运行natapp是否正常,如果正常,则下一步 - 下载开启自启动脚本:https://github.com/natapp/natapp_autostart,这里我们选择`RaspberryPi`目录下的`natapp`脚本文件,由于外该脚本中定义natapp目录为`/usr/natapp`,我们需要修改为`/usr/local/natapp/`,修改好后把该脚本文件拷贝到`/etc/init.d/`目录下。
- 给与该脚本文件755权限
sudo chmod 755 /etc/init.d/natapp
1
sudo chmod 755 /etc/init.d/natapp
- 从网站:https://natapp.cn/article/config_ini 下载config.ini文件,填写
运行
sudo /etc/init.d/natapp start
测试脚本启动情况,如果允许正常,则可以加入开机自动启动1
2cd /etc/init.d
sudo update-rc.d natapp defaults 90输入
sudo reboot
尝试重启设备,然后验证服务是否启动正常,如果正常,则表示没有问题可以通过如下命令关闭对脚本进行控制
1
2
3
4
5
6
7sudo /etc/init.d/natapp start #开启
sudo /etc/init.d/natapp stop #关闭
sudo /etc/init.d/natapp restart #重启
cd /etc/init.d
sudo update-rc.d natapp defaults 90 #加入开机启动
sudo update-rc.d -f natapp remove #取消开机启动
- 到这里,在本地开发板上架设博客,并绑定自己域名实现远程访问的功能就实现了。如果采用这种方式,你只需要有一个可以允许linux的开发板,一个备案的域名,额外,natapp添加一个备案域名费用1元,外加可能需要一个月9元内网穿透的隧道费用。就可以实现部署一个自己域名的网站或者博客了。