本文最后更新于 2026年3月12日 下午
一、背景
在学习新知识时,将其记录下来既能检验学习效果,也能对整个学习过程形成闭环。常言道:好记性不如烂笔头,记录笔记的方法有很多,市面上也有各种免费或收费的工具。结合个人需求,罗列了以下几个需求:
- 本地可控:所有笔记数据完全保存在本地,自己掌握,随时可以迁移或备份。
- 互联网发布:可以轻松发布到互联网上,让更多人方便地访问和查阅。
- 多人协作:个人力量有限,希望能够与其他网络安全爱好者共同维护和撰写笔记。
- 零成本:系统的使用不产生额外费用。
二、Material for MkDocs
参考了一些高质量的知识库后,最终选择通过 Material for MkDocs 来搭建个人知识库。它与个人博客类似,采用 Markdown 转换为 HTML 的方式进行部署,操作非常简单,使用 pipx 安装即可。后期的维护与更新是核心,需要通过不断添加内容来完善整个知识库体系。
1 2
| https://squidfunk.github.io/mkdocs-material/
|
三、网络安全知识库搭建
3.1 Material for MkDocs 环境安装
访问 Material for MkDocs 说明文档,官方建议我们通过 Python 虚拟环境安装 pip 依赖,这里推荐两种安装方式,Windows 和 Macos 均可参考。
3.1.1 通过 pipx 安装 Material for MkDocs
通过 pipx 安装后,会得到 8 个执行程序,具体功能稍后会介绍。
1
| pipx install mkdocs-material
|

3.1.2 创建 Python 虚拟环境安装 Material for MkDocs
使用 python 创建虚拟环境,然后使用 pip 安装。
1 2 3 4 5 6
| python -m venv venv/
source venv/bin/activate
pip install mkdocs-material
|
对于 Windows 虚拟环境,如果在 Powershell 中需要执行 source venv/bin/activate.ps1 ,cmd 则执行 source venv/bin/activate.bat 。
3.2 Material for MkDocs 参数介绍
日常使用一般只用 mkdocs 和 ghp-import 工具,接下来挑选常用功能进行介绍。
- mkdocs:Material for MkDocs 的核心工具,可将 Markdown 文件生成静态 HTML 文件。主要负责文档构建、配置解析、服务器预览、打包发布等功能。
- mkdocs new:创建新的 Material for MkDocs 项目。
- mkdocs serve:启动服务,默认会开启本地 8000 端口,如果项目文档较大可通过 –dirtyreload 使得加载速度更快。
- mkdocs build:执行构建,将 Markdown 文档转换为 HTML 文件(放置到 site 目录)。使用 –clean 每次构建前清空 site 目录。
- ghp-import:用于将生成的静态网站快速推送到 GitHub Pages。
具体参数用例将在 GitHub 存储库创建后演示。
3.3 创建 GitHub Pages
关于本栏目可参考历史文章:
零成本搭建个人博客网站-创建 GitHub Pages 部分
3.4 发布网络安全知识库至 GitHub Pages
3.4.1 发布前初始化配置
新建一个测试项目,包含 docs 目录和 mkdocs.yml 文件,其中 docs 目录用来存放 Markdown 文本,mkdocs.yml 用来设置网站偏好信息。

根据个人需求可修改网站颜色、字体、目录结构以及插件等信息。
目录示例: 可根据个人需求创建不同的知识板块,每个板块通过目录进行区分。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
| site_name: F0ne's Docs site_description: 这是一个网络安全知识库。 site_url: https://f0nesec.github.io/f0nesec-docs/
repo_name: f0nesec/f0nesec-docs repo_url: https://github.com/f0nesec/f0nesec-docs edit_uri: blob/main/docs/
extra: generator: true
markdown_extensions:
- toc: permalink: true
- admonition
- pymdownx.details
- pymdownx.superfences
- pymdownx.highlight: linenums: true anchor_linenums: true line_spans: __span pygments_lang_class: true auto_title: true
- pymdownx.inlinehilite
- pymdownx.keys
- pymdownx.snippets
theme: name: material language: zh icon: repo: fontawesome/brands/git-alt features: - content.code.copy - content.code.select - navigation.top - search.suggest - search.highlight - search.share - content.action.edit - content.action.view
palette: - media: "(prefers-color-scheme: dark)" scheme: slate primary: black accent: deep orange toggle: icon: material/toggle-switch-off-outline name: 切换浅色模式
- media: "(prefers-color-scheme: light)" scheme: default primary: indigo accent: deep orange toggle: icon: material/toggle-switch name: 切换深色模式
- media: "(prefers-color-scheme)" toggle: icon: material/link name: 自动
favicon: assets/title.png logo: assets/logo.png
plugins: - git-revision-date-localized: fallback_to_build_date: true - git-committers: repository: f0nesec/f0nesec-docs branch: main - optimize
extra: social: - icon: fontawesome/brands/github link: https://github.com/f0nesec name: Github - icon: fontawesome/brands/discord link: https://discord.com/invite/MWKGN3AqG name: Discord
nav: - 首页: index.md - Web 应用程序安全: - 概述: Web-Application-Security/index.md - 活动目录安全(域控): - 概述: Active-Directory-Security/index.md - 移动应用程序安全: - 概述: Mobile-Application-Security/index.md - 本地权限提升: - 概述: Local-Privilege-Escalation/index.md - Windows 本地权限提升: - 概述: Local-Privilege-Escalation/Windows/index.md - Linux 本地权限提升: - 概述: Local-Privilege-Escalation/Linux/index.md - 横向移动: - 概述: Lateral-Movement/index.md - 凭证攻击: - 概述: Credential-Attacks/index.md - 代码审计: - 概述: Code-Audit/index.md - 检测与规避技术: - 概述: Detection-Evasion/index.md - 考试与认证专题: - 概述: Certifications/index.md - OSCP 认证: - Certifications/OSCP/index.md - OSWE 认证: - Certifications/OSWE/index.md - OSEP 认证: - Certifications/OSEP/index.md - OSED 认证: - Certifications/OSED/index.md
|
如若使用以上配置文件需修改一些提示信息,比如:网站 title、图标、GitHub 链接等,配置文件使用的扩展插件也需要单独安装,更多配置可查看官方文档介绍。
Python 插件安装:
1 2 3 4 5 6 7 8 9 10 11
|
pipx inject mkdocs-material mkdocs-git-revision-date-localized-plugin
pipx inject mkdocs-material mkdocs-git-committers-plugin-2
pip inject mkdocs-material mkdocs-git-revision-date-localized-plugin
pip inject mkdocs-material mkdocs-git-committers-plugin-2
|
压缩插件安装(不启动图片压缩不需要配置):
1 2 3 4 5
| brew install pngquant
下载exe安装
|
目录结构和配置文件部署完成后可在本地启动服务,检查无误后再部署至 GitHub。


将代码推送至 GitHub 共分为两步,首先是项目的源码推送,其次是构建的 HTML 源码推送。当然也可以只推送 HTML 源码,将项目源码推送至 GitHub 是为了协同维护知识库。
通过 Git 部署前需要进行一些初始化配置:
1 2 3 4 5 6 7
| git init
git remote add origin git@github.com:f0nesec/f0nesec-docs
git config --global user.email "xx@xx.com" git config --global user.name "f0nesec"
|
定义 .gitignore 文件,避免敏感信息泄漏:
1 2 3 4 5 6 7
| .DS_Store **/.DS_Store site/ .cache/ __pycache__/ *.log Git.txt
|
注意根据个人需求,将不想上传的文件和目录写入 .gitignore 文件。
3.4.2 推送项目源码
推送项目源码至仓库 main 分支:
1 2 3
| git add . git commit -m "update by F0ne" git push origin main
|
确认 GitHub 存储库 main 分支代码已经上线。

3.4.3 推送 HTML 源码
1 2
| mkdocs build --clean ghp-import -n -p -f site
|
推送完成需要在 GitHub 存储库 Settings-Pages 选择发布 gh-pages 分支。

网络安全知识库链接地址:
1
| https://f0nesec.github.io/f0nesec-docs
|
四、补充
目前,网络安全知识库的整体体系已经初步搭建完成,主要涵盖:Web 应用程序安全、Active Directory 安全(域控)、移动应用程序安全、本地权限提升、横向移动、凭证攻击、代码审计、检测与规避技术,以及考试与认证专题。未来会根据自己的学习情况逐步完善各个板块内容,相信会是一个任重而道远的过程。

最后,欢迎广大安全爱好者加入,共同打造一个全面的中文网络安全知识库。
Thanks
如果我的文章对您有帮助或您希望与我更多交流,欢迎点击「关于我」,通过页面中的微信公众号、邮箱或 Discord 与我联系;若您发现文章中存在任何错误或不足之处,也非常欢迎通过以上方式指出,在此一并致以衷心的感谢。 😊🫡
最后,祝您生活愉快!🌞✨