【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除
背景
之前内网穿透系列的 blog
【Ubuntu】【远程开发】内网穿透:SSH 反向隧道
已经建立了稳定的 SSH 反向隧道,然后在 Nuttx 系列的 blog
【OS】【Nuttx】【周边】文档构建渲染:效果呈现
介绍了如何生成 Nuttx 帮助文档网站,OK,现在介绍如何将两者结合起来,从外地访问内网的 Web 服务
拉出内网 Web 服务
首先,拉出内网 Web 服务是建立在 SSH 隧道已经建立的情况,如果这里没达成,先看该专栏下内网穿透系列 blog,建立起远程连接
OK,然后根据 Nuttx 系列最新的 blog
【Nuttx】【工具】Esbonio 更新后无法使用(一)
【Nuttx】【工具】Esbonio 更新后无法使用(二)
更新到 Esbonio v1.0 的插件,在终端输入
bash
sphinx-build -b html Documentation/ sphinx_build/
这里 Documentation/ 是 Nuttx 中 Sphinx 项目的位置,sphinx_build/ 是构建件的输出目录,关于 -b 选项,在终端输入 sphinx-build --help,可以查看器帮助内容如下

这里面描述了 sphinx-build 命令比较多东西,这里稍微说下,首先是其命令格式的基本格式
sphinx-build [OPTIONS] SOURCEDIR OUTPUTDIR [FILENAMES...]
[OPTIONS]:表示可选参数,比如上面的-b html,表示构建出html网页SOURCEDIR:表示文档源文件所在的目录,也就是包含.rst文件的目录OUTPUTDIR:表示生成的文档要输出到哪个目录
[FILENAMES...]:可选,表示只重新构建指定的某些文件,一般不用,都是全量构建
OK,然后看下这里描述的东西
sphinx-build命令的作用是将.rst等源文件生成漂亮的文档,比如网页,pdf 等,该命令会读取SOURCEDIR源目录里的文档源码,然后把生成的结果放到OUTPUTDIR输出目录里sphinx-build命令会在SOURCEDIR里查找配置文件conf.py,这就是之前 blog 【OS】【Nuttx】【周边】文档构建渲染:安装 Sphinx 扩展(下) 里提到的,conf.py里会定义文档的标题,作者,扩展,主题等设置- 如果是第一次写
Sphinx项目,可以用sphinx-quickstart命令,这个命令会生成一些初始项目结构,比如conf.py和首页index.rst等 Sphinx支持多种输出格式,比如网页HTML,PDF/LaTeX(LaTeX用来写公式会很优美),man手册页(类似 Linux 手册页那种),epub电子书等,可以通过-b <builder>选项来选择格式,默认是网页HTML,也就是-b html- 默认情况下,
Sphinx只重新构建有改动,或者过期的文件(可以加快构建速度)
OK ,分析完 sphinx-build 命令的作用,然后可以看到网页 HTML 构建成功

OK,网页构建成功,接着在终端输入命令
bash
python3 -m http.server 2025
就可以在 http://localhost:2025 上看到网页了,注意,这里说的 localhost 指的是远程的内网服务器,不是本地电脑

下面再说下 python3 -m http.server 2025 这组命令
之前的 blog 【OS】【Nuttx】【周边】效果呈现方案解析:端口映射(二) 介绍过,这个命令在启动本地服务器时,同时 VSCode 也会在后台持续监控远程机器上新启动的监听端口 ,比如通过 netstat 或 lsof 等工具命令,此时一旦发现有进程比如上面的 python -m http.server 2025 开始监听 localhost:8000,就会触发端口自动转发功能,关于 VSCode 的端口自动转发功能,还是参考 blog
【OS】【Nuttx】【周边】效果呈现方案解析:端口映射(一)
【OS】【Nuttx】【周边】效果呈现方案解析:端口映射(二)
【OS】【Nuttx】【周边】效果呈现方案解析:端口映射(三)
这个时候就可以在本地浏览器打开 http://localhost:2025 了
OK,本篇先到这里,如有疑问,欢迎评论区留言讨论,祝各位功力大涨,技术更上一层楼!!!更多内容见下篇 blog
【Ubuntu】【远程开发】拉出内网 Web 服务:构建静态网页(二)