使用GitHub免费空间搭建博客并绑定域名

对于开发者和内容创作者而言,搭建一个属于自己的独立博客是沉淀思考、展示成果的重要方式。

Hexo 作为轻量级的静态博客框架,凭借其高效的渲染速度、丰富的主题生态和简洁的命令行操作,成为众多博主的首选;而 GitHub Pages 则提供了免费、稳定的静态资源托管服务,二者结合既能摆脱传统服务器的成本负担,又能享受开源生态的便捷。

本文将从底层逻辑到实操步骤,拆解如何将本地 Hexo 博客部署到 GitHub Pages,并绑定自定义域名,不仅能完成搭建,更能理解每一步操作的核心意义。

一、GitHub 仓库:博客部署的「基础载体」

GitHub Pages 的核心原理是通过特定命名规则的仓库,自动托管静态网页资源。

因此,创建符合规范的仓库是部署的第一步,其命名规则背后也藏着 GitHub Pages 的运行逻辑。

进入 GitHub 官网

1
https://github.com/

之后,完成账号注册,推荐使用常用邮箱,如 QQ 邮箱,便于后续验证和找回。

账号注册之后,我们需要进入仪表盘,

1
https://github.com/dashboard

点击上面的Create repository来创建一个仓库

注意仓库的名字是否重名,必须带有.github.io的后缀形式,而且是一个Public的属性。

Private 仓库需 GitHub Pro 会员,暂不适合免费搭建场景

点击下面的绿色创建按钮,此时你已拥有了一个可用于托管博客的「云端空间」

二、SSH 密钥配置:本地与 GitHub 的「安全桥梁」

部署博客的本质是将本地 Hexo 生成的静态文件推送到 GitHub 仓库,而 SSH 密钥则是实现本地与 GitHub 免密码安全通信的核心 。

相比账号密码登录,SSH 通过非对称加密(私钥存本地、公钥存 GitHub)避免了密码泄露风险,也是开发者协作的标准配置。

回到本地 Hexo 博客根目录,打开 Git Bash(Windows)或终端(Mac/Linux),先配置 Git 全局身份(关联 GitHub 账号,便于提交记录溯源):

1
git config --global user.name "xxxxxxxxxxxxxx"
1
git config --global user.email "xxxxxx@qq.com"

执行以下命令验证配置是否正确,确保输出与你输入的信息一致:

1
git config user.name
1
git config user.email

确认无误后,生成 SSH 密钥对:

1
ssh-keygen -t rsa -C "youremail"

执行后按回车默认保存,无需设置密码,简化后续操作,密钥会生成在系统用户目录下的.ssh文件夹中(如 Windows:C:\Users\你的用户名\.ssh,Mac/Linux:~/.ssh),其中id_rsa是私钥(切勿泄露),id_rsa.pub是公钥(需配置到 GitHub)。

其中,id_rsa是你这台电脑的私人秘钥,id_rsa.pub是公共秘钥。

三、公钥配置步骤:

打开 GitHub 账号设置(非仓库设置),进入「SSH and GPG keys」页面

1
https://github.com/settings/ssh/new

点击「New SSH key」,标题自定义(如「Hexo 博客部署机」),将本地id_rsa.pub文件的内容全选复制到「Key」输入框;

点击「Add SSH key」完成配置。

四、Hexo 部署配置:本地静态文件的「云端交付」

Hexo 本身不具备直接推送到 GitHub 的能力,需通过配置文件和专用插件,实现「生成静态文件→推送到 GitHub 仓库」的自动化流程。

4.1. 配置部署参数

打开本地 Hexo 博客根目录的_config.yml文件(Hexo 的核心配置文件),下拉至末尾,添加部署配置:

1
2
3
4
deploy:
type: git
repository: git@github.com:账户名/仓库名.git
branch: main

repository 地址需替换为你的 GitHub 仓库 SSH 地址(可在仓库「Code」按钮下复制)。

branch 指定推送的分支(GitHub Pages 默认读取 main/master 分支,需与仓库默认分支一致)。

4.2. 安装部署插件

保存配置文件之后,回到 Git Bash,安装 hexo-deployer-git 插件 ,用于使用命令部署到 Github,使用下面的代码安装插件

1
npm install hexo-deployer-git --save

然后执行

1
hexo clean
1
hexo generate
1
hexo deploy

随着代码运行

如果出现上面的代码,就表示部署成功。回到 Github 仓库,就会发现部署的文件

在这里给大家说一下,最后两张图片是借用的一个朋友的部署图片,大同小异。然后就可以通过你设置的仓库名来访问您的博客。

1
http://yourname.github.io

到这里,我们就把本地的博客文件上传到了 Github,下面,Github 上的博客绑定域名,通过域名来访问部署在 Github 上的博客。

五、自定义域名绑定:从「默认域名」到「专属标识」

给 Github 上的博客绑定域名,通过域名来访问部署在 Github 上的博客,过程也并不复杂,来看下面的操作。

5.1. 域名购买:选择靠谱的注册商

若尚未拥有域名,建议选择国内主流注册商,避免小众平台的续费、转移套路:

1
https://www.22.cn/
1
www.aliyun.com/
1
https://cloud.tencent.com/

这些平台不仅价格透明,且 DNS 解析服务稳定,后续管理也更便捷。

5.2.DNS 解析设置:让域名指向 GitHub Pages

域名购买后,进入注册商的「域名解析」控制台,添加「CNAME 记录」(核心解析方式,适用于 GitHub Pages):

  1. 记录类型:CNAME
  2. 主机记录:www(或 @,对应无 www 的根域名)
  3. 记录值:你的用户名.github.io(无需加 http/https)

解析逻辑:CNAME 记录的作用是将自定义域名映射到 GitHub Pages 的默认域名,无需手动解析 IP(GitHub Pages 的 IP 可能变动,CNAME 可自动适配)。设置完成后,等待 DNS 缓存生效(通常 10 分钟~2 小时)。

5.3. 本地 CNAME 文件配置:声明博客的主域名

进入本地 Hexo 博客的source文件夹,新建无后缀的「CNAME」文件

如有必要,需先显示文件扩展名:文件夹→查看→勾选「文件扩展名」,打开后输入你的自定义域名

1
2
www.liublog.cn   # 带www,访问时需输入www.liublog.cn
liublog.cn # 无www,访问时输入liublog.cn

关键注意:CNAME 文件中不可包含http://https://,否则会导致 GitHub Pages 识别失败;该文件会随部署命令推送到 GitHub,作为博客主域名的「本地声明」。

5.4.Github 博客仓库的域名设置

域名和本地域名设置之后,就需要进入博客仓库进行设置,进入博客仓库之后,选择点击博客仓库的设置按钮,找到page页面选项就可以,或者采用给出的地址链接来进行设置,大家会发现里面的 Custom domain 选项,把自己的域名添加进去就可以。

1
https://github.com/1128299/1128299.github.io/settings/pages

这一步是让 GitHub Pages 确认你的自定义域名,自动生成对应的解析记录,同时开启 HTTPS(可选,需等待 DNS 生效后勾选 Enforce HTTPS)。

六、写在最后

靠着一两次的操作经验,难免有疏忽的地方,有问题大家可以搜一搜相关设置教程,一些细节问题大家多琢磨。

一晃两年,这个博客起始的域名都已放弃,回顾这次 Github 搭建博客的过程,多少有些小问题,大家可以互联网搜索对应教程,希望或多或少可以帮助到您。