​ 本文主要讲解如何搭建hexo博客网站,并直接部署在github上,实现通过xxx.github.io来访问博客,同时针对云服务器的用户,可以把Hexo博客同步部署到服务器上,通过宝塔Linux面板架设网站,并实现域名解析和绑定。针对没有云服务器的用户,也给出了直接部署在个人的Linux终端(比如:树莓派或者其他Linux开发板,软路由,NAS等)的方案和思路,并给出通过内网穿透方法实现通过自主域名访问博客的方法。最终实现可以通过xxx.github.io和自主域名访问博客网页。

​ 这里不对Hexo博客的特性做说明,详细的Hexo相关的内容,可以参考Hexo官方网站:https://hexo.io/zh-cn/

​ 这里用宝塔面板主要因为:一方面宝塔面板免去了Nginx的相关配置,可以直接用可视化操作来部署网页;另外一方面,一台Linux服务器可以同属部署多个网站,可以统一用宝塔面板统一管理。也方便该服务器不仅可以用来部署网站,还可以同时作为其他左右使用(比如可以用来做远程代码调试,内网穿透服务等)。

​ 本文主要分四个章节来讲解:

​ 一般情况下,自主域名需要做域名解析,所以,它只能访问你的云服务器或者你本地的Linux服务器,二选一即可,把hexo博客部署在Linux服务器上的操作在第三章节的前面两个部分。

四、本地Linux系统部署,搭建宝塔Linux面板,通过内网穿透实现域名访问

​ 本节主要介绍假如没有云服务器,而手头刚好有一块linux的开发板(比如树莓派—也包括其他XX派,软路由,NAS等),可以实现再本地的linux电脑上假设网站,然后通过内网穿透服务(内网穿透有多种方法,比如如果自己有云服务器,可以通过自己搭建frp,或者nps实现内网穿透),当然,也有一些其他的内网穿透方法,这里不一一介绍了。但是,一般情况下内网穿透软件都是由两部分组成,服务端和客户端,服务端也需要部署在一个拥有公网IP的机器上(本身上还是需要一个云服务器),当然也可以用一个云服务器给多个内网设备做穿透,这个取决于个人的业务需求和选择。

​ 如果你没有云服务器(而如果你只需要实现一个博客网站,也不需要专门购买一个云服务器,虽然一个云服务器本身并不贵,而且阿里云,腾讯云,华为云还经常由活动,一个基本的云服务器在做活动的时候是需要几十到百来元/一年不等的价格),也可以采用其他服务商提供的内网穿透服务来实现访问,有免费的有收费的,这里只是提供一种思路,所以采用了第三方公司的内网穿透服务natapp,它是一家国内基于ngrok的内网穿透服务提供商。它有免费的和收费的可以选择,内网穿透的服务器也可以选择国内服务器和香港的服务器,如果你的域名已经备案,可以选择国内服务。如果域名没有备案,也可以选择香港的服务器。不过免费的内网穿透方案,不支持绑定自己的域名,只能使用服务商提供的二级域名。

​ 可能涉及到的软件和工具:

​ 另外,由于本次实验采用的开发板也是基于ubuntu的系统,所以,再部署git服务器和安装和配置宝塔Linux面板操作(即1和2部分)和在云服务器上基本一样,只是ip地址变成了局域网的ip地址,你只需要按照上一章节的1和2部分一样操作即可。这里就不重复介绍了,这里假设你已经在开发板上部署好了你的博客系统。只是介绍如何部署内网穿透,以及如何在宝塔Linux面板中配置与内网穿透对接实现域名访问。

1、 把在本地部署的hexo博客通过内网穿透绑定自主域名

  1. 进入natapp的网站注册一个账号,注意,natapp的默认免费通道是不支持绑定自主域名的,如果你的域名没有备案,则需要购买香港服务器(HK-1和HK-2型)。由于我们已经有一个测试的备案域名,所以我们购买一个1个月的VIP-1型,另外,如果需要绑定已经备案自主域名还需要花费1元购买10积分,添加一个备案域名(HK型可以直接添加自定义域名)。添加的备案域名可以在自主域名处查看到(这里我们以一个我已经备案的域名senyblog.com为例):

natapp1

  1. 接着我们可以配置我们的VIP-1 型通道,设置如下:

natapp2

​ 这里简单介绍以下,我们选择自主域名,并且以我们备案的域名www.senyblog.com作为自主域名,来映射到服务器的主机的80端口上,免费开启https是指在我们有SSL证书的情况下,可以开启安全的https访问。这个后面会说明。

​ 注意到通道名称上面有一个authtoken字符串,这个后面我们在客户端中需要用到。

  1. 我们需要在域名提供商(我们域名是在阿里云购买),设置域名解析,把senyblog.com域名的主机记录:www,以CHANE的记录类型,记录值为通道提供的 c80de39d61648d86.natapp.cc 上。

natapp3

  1. 然后我们进入到宝塔linux面板,在网页中添加我们的备案域名www.senyblog.com,如下图:

baota6

  1. 我们从natapp官网下载客户端(根据自己的服务器类型,我们采用的是RK3588的处理器,64位的ubuntu系统,所以选择Linux/ARM 64位版本),然后用支持文件传输的ssh工具(这里使用MobaXterm,当然也可以直接使用宝塔的linxu面板来传输文件),把文件传输到/usr/local/natapp/中(如果没有则创建对应的文件夹),也就是把下载的natapp的应用程序拷贝到该目录下。

  2. 以root权限,在终端中进入/usr/local/natapp/目录,给与natapp的运行权限,并运行natapp,其中的-authtoken=XXXXXXX填入通道的authtoken值即可。

1
2
3
4
sudo root
cd /usr/local/natapp/
chmod a+x natapp
./natapp -authtoken=XXXXXXX
  1. 这个时候我们就可以通过能够上网的任何设备,直接用www.senyblog.com访问我们的网页了。

natapp4

  1. 这时候只是可以访问,但是每次启动我们的开发板,需要重新运行一次./natapp -authtoken=XXXXXXX命令来启动natapp,且需要占用终端。这里给出两个方案,一个是后台运行,一个是开启自启动
  1. 运行sudo /etc/init.d/natapp start测试脚本启动情况,如果允许正常,则可以加入开机自动启动

    1
    2
    cd /etc/init.d
    sudo update-rc.d natapp defaults 90
  2. 输入sudo reboot尝试重启设备,然后验证服务是否启动正常,如果正常,则表示没有问题

  3. 可以通过如下命令关闭对脚本进行控制

    1
    2
    3
    4
    5
    6
    7
    sudo /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 #取消开机启动
  1. 到这里,在本地开发板上架设博客,并绑定自己域名实现远程访问的功能就实现了。如果采用这种方式,你只需要有一个可以允许linux的开发板,一个备案的域名,额外,natapp添加一个备案域名费用1元,外加可能需要一个月9元内网穿透的隧道费用。就可以实现部署一个自己域名的网站或者博客了。