00 年代如同梦呓,10 年代就在昨日。
趁大家都在纪念着 10 年代的结束,我是不是可以偷偷的原谅自己不太满意的过去。
希望过往所有的遗憾都是未来惊喜的铺垫。
生活从未偏爱过谁,可我能听懂你的歌,这也许就是你我生存下去的意义。
—— 佚名
最近很忙,嗯,字面意义上的很忙。早上7点左右起来骑行9km,忙一天晚上再骑行回来。首先还得感谢电子学会的小伙伴王鹏,鹏总给了我这个机会,救人于水火了属于是。
在写汇报的时候忽然想起了我的个人博客,服务器自从到期后,续费动辄几百上千,没有收入买的话实在有些肉疼。磨叽好久,忽然想到我域名没到期。家里还有个之前玩着用的树莓派,这不简单折腾一下,把系统搭建起来。
系统框架
搭建整个系统,先对框架进行了解:

系统主要分为四个模块:
- 一台本地PC,用作用户端,进行文字的编辑,并通过Hexo框架的指令生成静态网页代码(一堆文件,以及index.html)。并且可以将生成的代码通过Git上传到服务器;
- 一台树莓派,作为服务器,用于存放本地PC上传的代码。存放的代码需要通过Nginx服务器,将网页通过内网IP进行展示;
- 内网穿透(内网穿透方式有很多种,我选择的是Sakura frp,怎么说呢,龙族迷,一眼真),用于将外网的端口映射到内网的IP上,这样,就可以通过frp供应商提供的IP端口进行内网访问了;
- 一个域名(这个域名可有可无其实,我正好有个阿里云没到期的,且之前实名认证+备案过的闲置域名),用作外部访问的入口,通过DNS解析到外网的IP端口或者域名即可大功告成。
本地PC
Hexo
关于Hexo,我之前的文章也有讲过。
Hexo搭建博客
当然在此重新简单的搭建一波:
安装Node.js
下载nodejs并安装,建议安装node12 Latest版,因为新版的node可能会导致一些警告。
NodeJS下载地址
安装即可,安装之后,打开系统cmd命令行,依次输入
1 | node -v |
返回正确的版本信息即安装完成(先不要关闭,还要用命令行工具)。
安装Hexo
使用nodejs的npm包管理器安装hexo,在cmd命令行中,输入安装指令。
1 | npm install -g hexo-cli |
根据返回的版本号,确定是否安装成功。
Hexo生成网页
创建任意文件夹。在文件夹位置打开cmd命令行,输入命令:
1 | hexo init test-Blog # hexo初始化 |
再次查看文件夹,就会有Hexo框架的源代码了。
接下来进入文件夹,依次输入以下命令:
1 | cd test-Blog # 进入文件夹 |
此时,访问 localhost:4000即可从本地PC上访问Hexo生成的静态网页了。
Git
安装Git
本地的网页需要上传至服务器,采用Git方案。需要去Git官网下载:
Git下载地址
正常默认安装即可。
生成ssh公钥
在命令行输入:
1 | ssh-keygen -t rsa -C "邮箱地址" |
一直回车即可,公钥一般会被保存在 C:\Users\用户名\.ssh 下,当服务器搭建起来之后,需要将公钥放在服务器端,方便访问。
本地PC端的设置到此基本完成。
树莓派
树莓派系统安装在此就不多说了。正常安装了树莓派系统的,应该都可以ssh连接。就从ssh连接之后开讲。
配置树莓派
树莓派更换源
- 打开树莓派镜像列表sources.list
1 | sudo vim /etc/apt/sources.list |
- 将内容替换为清华大学源
1 | deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi |
- 更新源
1 | sudo apt-get update |
配置远程仓库
树莓派安装GIT
1 | sudo apt-get install git |
回复正确的版本号即安装完成。
建立Git远程仓库
我的目标是将树莓派用作个人服务器,搭建在自己家中,和台式机在一个内网中。
所以需要在树莓派端用Git建立一个远程仓库,本地PC通过Git提交本地网页代码至远程仓库。
注意:这种方法适用于各类云服务器,我这里树莓派相当于替代了云服务器。(所以我的本地PC要求在树莓派的局域网内)
建立步骤:
- 创建文件夹
1 | sudo mkdir /var/repo/ # 创建一个文件夹 |
- 进入文件夹,创建Git仓库,名称为XXXXX。
1 | cd /var/repo/ |
- 仓库映射(这几步很重要)
- 创建文件夹作为nginx根目录,之后nginx配置root就是配置这个文件夹。
1 | sudo mkdir -p /var/www/hexo |
- 修改目录权限
1 | sudo chown -R $USER:$USER /var/www/hexo |
保存退出,改变文件权限,让文件变为可执行文件。
1 | sudo chmod +x /var/repo/XXXXX.git/hooks/post-receive |
这样远程Git仓库也搞定了。接下来安装&配置nginx。
安装nginx
1 | sudo apt-get install nginx |
安装返回正确版本号即可。
配置nginx
打开nginx默认配置项:
1 | sudo vim /etc/nginx/sites-available/default |
将root值修改为我们建立的根目录 /var/www/hexo,我们也能看到,nginx此时只开启了80端口,即http端口,之后我们会再配置https的443端口。
保存退出,重启nginx服务:
1 | sudo service nginx restart |
此时通过内网已经可以访问树莓派的nginx了,在浏览器输入树莓派IP地址回车即可。
添加公钥
在前面安装完PC端Git之后,我们生成了一段公钥,这时候就要把这个公钥添加在树莓派中,让树莓派不会拒绝我们的代码提交。在.ssh文件夹中打开终端上传公钥即可:
1 | ssh-copy-id -p 22 树莓派用户名@树莓派IP |
安装完毕,配置PC端hexo的_config.yml文件,填写deploy:
1 | deploy: |
都修改完之后,本地 hexo clean && hexo g && hexo d 即可。
再次访问树莓派IP地址,网站出现,整体工作完成一半。
内网穿透
关于内网穿透的一些细解就不多讲了,主要是我自己也不是很懂,就直接上我的路线吧,如遇到有缘人和我的路线一样,能帮一把是一把,如果不一样,个人主页,也可以联系我,知无不言。
需要先验条件:有备案的域名,以及1元钱(实名认证用,调用的支付宝或者微信的接口)。
我的内网穿透是用工具SakuraFrp完成的,这里上链接:SakuraFrp,进入之后,注册一个用户即可,看个人资金程度哈,我用的是免费用户,想办会员当然也可以。
有官方帮助文档,建议细看,基本所有的问题都可解决。
接下来我的步骤:
- 点击服务
- 点击隧道列表
- 创建隧道
- 选择可建站
- 选择普通节点(内地)
挑选一个不满载的创建隧道。需要创建两个:
- 名称、HTTP、80端口、自己的域名;
- 名称、HTTPS、443端口、自己的域名;
这里为什么开两个隧道的原因我给解释一下:最开始我是开了80端口,可以http访问,然后配置了ssl,改为了https+443,发现http端口不能用了。以为是重定向的问题,改了很久nginx的配置。
后来发现这种方式用的是隧道方式,和重定向没关系,强制重定向没有用。所以在Sakura frpc上又开了一个80的隧道。解决问题。
隧道配置完,需要在树莓派端输入:frpc -f wdnmdtoken666666:12345
这些在基本指南里面都有,傻瓜式输入命令行即可,没啥好搞的了。
域名
域名这个东西我自己本身就有,阿里云,直接域名解析DNS,到frp的地址即可。
隔了几天写的,忘了想写啥了。
今天听到有个外包软件的大叔,在跟两个经理讲软件相关的东西。按我的认知对个百分之65吧。
也是一顿瞎说哈哈。不过说到一句老话还是认同的,高级工程师高级在什么地方,在于掌握一门技术。身边人做不了的那种。
这就像我本科时候,我老大(杨深圳)跟我讲的一句话,在任何地方都要做到无可替代,别人没法替代你的工作,你就算在当前的岗位成功了。
我还差得远,共勉。即使当了老师,也不能懈怠,不论生活,亦是工作,都要努力做到最好。
君子慎独。