From 9b4ffce9a57afa9d35b1a4273191b60332f6afe5 Mon Sep 17 00:00:00 2001 From: liuzhuohua <29739020+liuzhuohua@users.noreply.github.com> Date: Wed, 30 Sep 2026 23:14:19 +0800 Subject: [PATCH] =?UTF-8?q?feat(devtools):=20=E7=94=9F=E6=88=90=E6=88=AA?= =?UTF-8?q?=E5=9B=BE=E5=9B=BE=E5=BA=8A=E5=A4=96=E9=93=BE=E6=B8=85=E5=8D=95?= =?UTF-8?q?=EF=BC=88Markdown=20/=20BBCode=20/=20HTML=20=E4=B8=89=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 用户问「能不能当图床、转成论坛可用的格式」。 实测结论:可以。四种直链形式全部 200,且 - Content-Type 正确(image/jpeg) - Access-Control-Allow-Origin: *(CORS 全开,网页引用无阻) - 无防盗链:带外部 Referer、无 UA 均正常返回 新增 devtools/gen-image-urls.py,一次性产出三种论坛格式: ① Markdown ![alt](url) GitHub / 语雀 / Discourse / Obsidian ② BBCode [img]url[/img] Discuz / phpBB / NGA / 恩山 / Chiphell / v2ex ③ HTML 博客 / 自建站 / 富文本编辑器 域名默认用 cdn.jsdelivr.net/gh —— 国内可达性明显好于 raw.githubusercontent.com,且缓存 7 天(raw 只有 5 分钟)。 文档里附了换域名对照表(gcore 备用节点 / statically / raw)。 同时支持 @ 冻结写法,把内容锁定在某个提交上, 避免后续提交把已发出去的帖子里的图改掉。 产物同时落在 docs/图床链接清单.md(进仓库)和桌面(方便直接用)。 顺带记录一个失败:想生成「纯格式版」和「带文件名版」两份, 判断逻辑写错导致两份内容相同;改用一次生成、分节呈现, 反而更适合「整段复制」的用法。别为了参数化而增加无意义的重复产物。 --- devtools/gen-image-urls.py | 127 +++++++++++++ docs/图床链接清单.md | 380 +++++++++++++++++++++++++++++++++++++ 2 files changed, 507 insertions(+) create mode 100644 devtools/gen-image-urls.py create mode 100644 docs/图床链接清单.md diff --git a/devtools/gen-image-urls.py b/devtools/gen-image-urls.py new file mode 100644 index 0000000..2653ff2 --- /dev/null +++ b/devtools/gen-image-urls.py @@ -0,0 +1,127 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +把 docs/screenshots/ 里的截图生成「论坛可直接贴」的三种格式 URL 清单。 + +三种格式覆盖主流论坛: + 1. Markdown ![alt](url) —— GitHub / 语雀 / Obsidian / 少数派 / Discourse + 2. BBCode [img]url[/img] —— Discuz / phpBB / NGA / 恩山 / Chiphell / v2ex + 3. HTML —— 博客 / 自建站 / 富文本编辑器 + +URL 用两种: + - 浮动版 @main :仓库更新后自动跟着变(想"永远最新"用这个) + - 冻结版 @ :锁定到某个 commit,永不改变(想"发出去的帖子永远一致"用这个) + +为什么默认推荐 jsDelivr: + 它挂了 CORS、CDN 缓存 7 天、国内可达性明显好于 raw.githubusercontent.com。 + raw 也可以,但国内部分网络会连不上(被墙/被限速),帖子图片就成了白框。 +""" +import os +import subprocess +import sys + +ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +SHOTS = os.path.join(ROOT, "docs", "screenshots") + +OWNER = "liuzhuohua" +REPO = "drouter" +BRANCH = "main" + +# 缩略图说明:供 --with-caption 用,读取 shots-map 的图注 +sys.path.insert(0, os.path.join(ROOT, "devtools")) + + +def load_captions(): + import importlib.util + spec = importlib.util.spec_from_file_location( + "sm", os.path.join(ROOT, "devtools", "shots-map.py")) + sm = importlib.util.module_from_spec(spec) + spec.loader.exec_module(sm) + return {dst[:-4] if dst.endswith(".jpg") else dst: cap for _, dst, cap in sm.MAP} + + +def jsdelivr(ref, path): + # jsDelivr 的 GitHub 形式:/gh//@/ + return "https://cdn.jsdelivr.net/gh/%s/%s@%s/%s" % (OWNER, REPO, ref, path) + + +def raw(ref, path): + return "https://raw.githubusercontent.com/%s/%s/%s/%s" % (OWNER, REPO, ref, path) + + +def main(): + withcap = "--with-caption" in sys.argv + commit = subprocess.run(["git", "rev-parse", "HEAD"], + cwd=ROOT, capture_output=True, text=True).stdout.strip() + files = sorted(f for f in os.listdir(SHOTS) if f.lower().endswith(".jpg")) + caps = load_captions() + + def emit(title, urlfn, fmt): + print("=" * 96) + print("【%s】 base=%s" % (title, urlfn(BRANCH, "docs/screenshots/").split("/docs/")[0])) + print("=" * 96) + for f in files: + p = "docs/screenshots/" + f + u = urlfn(BRANCH, p) + cap = caps.get(f[:-4], f) + if fmt == "md": + line = "![%s](%s)" % (cap, u) + elif fmt == "bb": + line = "[img]%s[/img]" % u + else: + line = '%s' % (u, cap) + if withcap: + print("%-28s %s" % (f, line)) + else: + print(line) + print() + + print("# Drouter 截图外链清单") + print("# 仓库: https://github.com/%s/%s" % (OWNER, REPO)) + print("# 图片: %d 张,位于 docs/screenshots/" % len(files)) + print("# 冻结版本 commit: %s" % commit) + print("#") + print("# 用法:三种格式任选其一,直接整段复制到论坛/博客编辑器即可。") + print("# 域名说明见文末「该用哪个域名」。") + print() + + emit("① Markdown 格式 — GitHub / 语雀 / Discourse / Obsidian", jsdelivr, "md") + emit("② BBCode 格式 — Discuz / phpBB / NGA / 恩山 / Chiphell / v2ex", jsdelivr, "bb") + emit("③ HTML 格式 — 博客 / 自建站 / 富文本编辑器", jsdelivr, "html") + + print("=" * 96) + print("该用哪个域名") + print("=" * 96) + print(""" + 域名 国内可达 缓存 建议 + ---------------------------------- -------- ------- -------------------------- + cdn.jsdelivr.net/gh/... 好 7 天 首选,本文档默认 + raw.githubusercontent.com/... 时好时坏 5 分钟 备选;国内可能连不上 + github.com/..../raw/main/... 同上 5 分钟 不推荐(多一次 302 跳转) + cdn.statically.io/gh/... 较好 1 天 备选 CDN + gcore.jsdelivr.net/gh/... 好 7 天 jsDelivr 备用节点(主站被墙时) + + 实测结论(2026-09-30):四种形式全部 200 且 CORS 全开、无防盗链, + 带外部 Referer 也能正常返回图片。可以放心当图床。 + + 想换域名:把 URL 里的 `cdn.jsdelivr.net/gh` 换成上表任一即可, + 其余部分原样保留。 + + ⚠️ 关于「冻结版」(把 @main 换成 @): + GitHub 的图床链接一旦仓库被删/改名就失效。若帖子要长期留存, + 建议本地也存一份原图,或者用 @ 形式锁定 —— 至少内容不会被 + 后续提交改变(但仓库删除依然会失效)。 +""") + + print("=" * 96) + print("冻结版(@%s)示例 —— 前 3 张" % commit[:8]) + print("=" * 96) + for f in files[:3]: + p = "docs/screenshots/" + f + print(" %-24s %s" % (f, raw(commit, p))) + print() + print(" 全文冻结版生成:把本脚本里 BRANCH 换成 commit sha 再跑一次") + + +if __name__ == "__main__": + main() diff --git a/docs/图床链接清单.md b/docs/图床链接清单.md new file mode 100644 index 0000000..11a2b89 --- /dev/null +++ b/docs/图床链接清单.md @@ -0,0 +1,380 @@ +# Drouter 78 张截图 · 图床链接清单(纯格式,可整段复制) + +> 仓库:https://github.com/liuzhuohua/drouter +> 锁定 commit:`3f5f31701ee64b9419456b3c24b3e02fbfccb0c4` +> 图片数:78 张 · 默认域名 `cdn.jsdelivr.net`(国内可达 + CDN 缓存 7 天 + CORS 全开) + +--- + +## 一、Markdown 格式 + +> 适用:GitHub、语雀、Obsidian、少数派、Discourse、Notion + +```markdown +![登录页](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/01-login.jpg) +![网络状态 · 路由表与接口地址](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/02-netstat-2.jpg) +![网络状态 · flowtable 软加速](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/02-netstat-3.jpg) +![网络状态 / 加速](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/02-netstat.jpg) +![系统概览 · 硬件仪表盘](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/02-overview-2.jpg) +![系统概览 · 网络与服务状态](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/02-overview-3.jpg) +![系统概览](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/02-overview.jpg) +![网卡与桥接](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/03-iface.jpg) +![LAN 口](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/03-lan.jpg) +![PPPoE 多拨 · 会话状态](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/03-pppoe-2.jpg) +![PPPoE 多拨](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/03-pppoe.jpg) +![VLAN / IPTV 单线复用](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/03-vlan.jpg) +![WAN 口 · 实时状态](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/03-wan-2.jpg) +![WAN 口 · 拨号日志](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/03-wan-3.jpg) +![WAN 口 · 接入方式](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/03-wan.jpg) +![网络唤醒 WOL](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/03-wol.jpg) +![动态域名 DDNS · IPv6 记录](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-ddns-2.jpg) +![动态域名 DDNS · 解析结果](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-ddns-3.jpg) +![动态域名 DDNS](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-ddns.jpg) +![DHCP 服务 · 租约表](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-dhcp-2.jpg) +![DHCP 服务](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-dhcp.jpg) +![DHCPv6 / 前缀委派](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-dhcpv6.jpg) +![DNS 服务](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-dns.jpg) +![IPv6 / RA · 前缀与 RDNSS](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-ipv6ra-2.jpg) +![IPv6 / RA · 运行状态](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-ipv6ra-3.jpg) +![IPv6 / RA](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-ipv6ra.jpg) +![真·公网 IP 判定 · NAT 类型](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-publicip-2.jpg) +![真·公网 IP 判定](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-publicip.jpg) +![访问控制 / 时间组](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/05-acl.jpg) +![端口转发 / DMZ](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/05-dnat.jpg) +![防火墙 IPv4 · 规则与日志](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/05-fw4-2.jpg) +![防火墙 IPv4](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/05-fw4.jpg) +![防火墙 IPv6 · 规则与日志](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/05-fw6-2.jpg) +![防火墙 IPv6](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/05-fw6.jpg) +![UPnP / NAT-PMP](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/05-upnp.jpg) +![AC / AP · 无线与 VLAN](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-acap-2.jpg) +![AC / AP 管理中心](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-acap.jpg) +![打印服务 · 打印队列](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-cups-2.jpg) +![打印服务 · USB 直通](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-cups-3.jpg) +![打印服务 · 共享设置](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-cups-4.jpg) +![打印服务 CUPS](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-cups.jpg) +![应用识别 DPI · 识别结果](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-dpi-2.jpg) +![应用识别 DPI](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-dpi.jpg) +![NTP 时间同步](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-ntp.jpg) +![智能限速 QoS · 队列与规则](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-qos-2.jpg) +![智能限速 QoS](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-qos.jpg) +![文件共享 · 共享目录](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-smb-2.jpg) +![文件共享 SMB / NFS](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-smb.jpg) +![通用 API · OpenAPI 文档](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-api-2.jpg) +![通用 API 接口](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-api.jpg) +![网络诊断工具](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-diag.jpg) +![Docker · 容器与镜像](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-docker-2.jpg) +![Docker · Compose 项目](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-docker-3.jpg) +![Docker / Compose](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-docker.jpg) +![Docker 引擎 · 镜像源测速](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-dockerconf-2.jpg) +![Docker 引擎 · daemon.json](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-dockerconf-3.jpg) +![Docker 引擎配置](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-dockerconf.jpg) +![IPv6 连通性测试](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-ipv6test.jpg) +![Web 终端 / 文件](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-webshell.jpg) +![连接与流日志 · conntrack](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/08-flowlog-2.jpg) +![连接与流日志](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/08-flowlog.jpg) +![系统日志](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/08-syslog.jpg) +![磁盘与日志清理 · 占用明细](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-cleanup-2.jpg) +![磁盘与日志清理](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-cleanup.jpg) +![依赖自检 · 探测结果](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-deps-2.jpg) +![依赖自检与安装](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-deps.jpg) +![内核转发 · 开关与联动](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-kernel-2.jpg) +![内核转发与加速](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-kernel.jpg) +![电源控制](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-power.jpg) +![系统设置 · 时区与主机名](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-settings-2.jpg) +![系统设置 · Web 端口](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-settings-3.jpg) +![系统设置 · 审计日志](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-settings-4.jpg) +![系统设置](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-settings.jpg) +![证书 / SSL · 签发与部署](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-tls-2.jpg) +![证书 / SSL · 握手体检](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-tls-3.jpg) +![证书 / SSL](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-tls.jpg) +![用户与密钥 · SSH 公钥](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-user-2.jpg) +![用户与密钥](https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-user.jpg) +``` + +## 二、BBCode 格式 + +> 适用:Discuz、phpBB、NGA、恩山、Chiphell、v2ex、吾爱破解 + +```bbcode +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/01-login.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/02-netstat-2.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/02-netstat-3.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/02-netstat.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/02-overview-2.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/02-overview-3.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/02-overview.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/03-iface.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/03-lan.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/03-pppoe-2.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/03-pppoe.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/03-vlan.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/03-wan-2.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/03-wan-3.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/03-wan.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/03-wol.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-ddns-2.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-ddns-3.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-ddns.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-dhcp-2.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-dhcp.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-dhcpv6.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-dns.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-ipv6ra-2.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-ipv6ra-3.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-ipv6ra.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-publicip-2.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-publicip.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/05-acl.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/05-dnat.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/05-fw4-2.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/05-fw4.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/05-fw6-2.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/05-fw6.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/05-upnp.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-acap-2.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-acap.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-cups-2.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-cups-3.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-cups-4.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-cups.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-dpi-2.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-dpi.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-ntp.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-qos-2.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-qos.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-smb-2.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-smb.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-api-2.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-api.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-diag.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-docker-2.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-docker-3.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-docker.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-dockerconf-2.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-dockerconf-3.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-dockerconf.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-ipv6test.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-webshell.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/08-flowlog-2.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/08-flowlog.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/08-syslog.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-cleanup-2.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-cleanup.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-deps-2.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-deps.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-kernel-2.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-kernel.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-power.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-settings-2.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-settings-3.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-settings-4.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-settings.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-tls-2.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-tls-3.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-tls.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-user-2.jpg[/img] +[img]https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-user.jpg[/img] +``` + +## 三、HTML 格式 + +> 适用:博客、自建站、富文本编辑器(WordPress / Typecho / Hexo) + +```html +登录页 +网络状态 · 路由表与接口地址 +网络状态 · flowtable 软加速 +网络状态 / 加速 +系统概览 · 硬件仪表盘 +系统概览 · 网络与服务状态 +系统概览 +网卡与桥接 +LAN 口 +PPPoE 多拨 · 会话状态 +PPPoE 多拨 +VLAN / IPTV 单线复用 +WAN 口 · 实时状态 +WAN 口 · 拨号日志 +WAN 口 · 接入方式 +网络唤醒 WOL +动态域名 DDNS · IPv6 记录 +动态域名 DDNS · 解析结果 +动态域名 DDNS +DHCP 服务 · 租约表 +DHCP 服务 +DHCPv6 / 前缀委派 +DNS 服务 +IPv6 / RA · 前缀与 RDNSS +IPv6 / RA · 运行状态 +IPv6 / RA +真·公网 IP 判定 · NAT 类型 +真·公网 IP 判定 +访问控制 / 时间组 +端口转发 / DMZ +防火墙 IPv4 · 规则与日志 +防火墙 IPv4 +防火墙 IPv6 · 规则与日志 +防火墙 IPv6 +UPnP / NAT-PMP +AC / AP · 无线与 VLAN +AC / AP 管理中心 +打印服务 · 打印队列 +打印服务 · USB 直通 +打印服务 · 共享设置 +打印服务 CUPS +应用识别 DPI · 识别结果 +应用识别 DPI +NTP 时间同步 +智能限速 QoS · 队列与规则 +智能限速 QoS +文件共享 · 共享目录 +文件共享 SMB / NFS +通用 API · OpenAPI 文档 +通用 API 接口 +网络诊断工具 +Docker · 容器与镜像 +Docker · Compose 项目 +Docker / Compose +Docker 引擎 · 镜像源测速 +Docker 引擎 · daemon.json +Docker 引擎配置 +IPv6 连通性测试 +Web 终端 / 文件 +连接与流日志 · conntrack +连接与流日志 +系统日志 +磁盘与日志清理 · 占用明细 +磁盘与日志清理 +依赖自检 · 探测结果 +依赖自检与安装 +内核转发 · 开关与联动 +内核转发与加速 +电源控制 +系统设置 · 时区与主机名 +系统设置 · Web 端口 +系统设置 · 审计日志 +系统设置 +证书 / SSL · 签发与部署 +证书 / SSL · 握手体检 +证书 / SSL +用户与密钥 · SSH 公钥 +用户与密钥 +``` + +--- + +## 单独取某一张的 URL + +| # | 页面 | 文件名 | URL | +|---|---|---|---| +| 1 | 登录页 | `01-login.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/01-login.jpg | +| 2 | 网络状态 · 路由表与接口地址 | `02-netstat-2.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/02-netstat-2.jpg | +| 3 | 网络状态 · flowtable 软加速 | `02-netstat-3.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/02-netstat-3.jpg | +| 4 | 网络状态 / 加速 | `02-netstat.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/02-netstat.jpg | +| 5 | 系统概览 · 硬件仪表盘 | `02-overview-2.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/02-overview-2.jpg | +| 6 | 系统概览 · 网络与服务状态 | `02-overview-3.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/02-overview-3.jpg | +| 7 | 系统概览 | `02-overview.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/02-overview.jpg | +| 8 | 网卡与桥接 | `03-iface.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/03-iface.jpg | +| 9 | LAN 口 | `03-lan.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/03-lan.jpg | +| 10 | PPPoE 多拨 · 会话状态 | `03-pppoe-2.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/03-pppoe-2.jpg | +| 11 | PPPoE 多拨 | `03-pppoe.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/03-pppoe.jpg | +| 12 | VLAN / IPTV 单线复用 | `03-vlan.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/03-vlan.jpg | +| 13 | WAN 口 · 实时状态 | `03-wan-2.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/03-wan-2.jpg | +| 14 | WAN 口 · 拨号日志 | `03-wan-3.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/03-wan-3.jpg | +| 15 | WAN 口 · 接入方式 | `03-wan.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/03-wan.jpg | +| 16 | 网络唤醒 WOL | `03-wol.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/03-wol.jpg | +| 17 | 动态域名 DDNS · IPv6 记录 | `04-ddns-2.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-ddns-2.jpg | +| 18 | 动态域名 DDNS · 解析结果 | `04-ddns-3.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-ddns-3.jpg | +| 19 | 动态域名 DDNS | `04-ddns.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-ddns.jpg | +| 20 | DHCP 服务 · 租约表 | `04-dhcp-2.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-dhcp-2.jpg | +| 21 | DHCP 服务 | `04-dhcp.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-dhcp.jpg | +| 22 | DHCPv6 / 前缀委派 | `04-dhcpv6.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-dhcpv6.jpg | +| 23 | DNS 服务 | `04-dns.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-dns.jpg | +| 24 | IPv6 / RA · 前缀与 RDNSS | `04-ipv6ra-2.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-ipv6ra-2.jpg | +| 25 | IPv6 / RA · 运行状态 | `04-ipv6ra-3.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-ipv6ra-3.jpg | +| 26 | IPv6 / RA | `04-ipv6ra.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-ipv6ra.jpg | +| 27 | 真·公网 IP 判定 · NAT 类型 | `04-publicip-2.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-publicip-2.jpg | +| 28 | 真·公网 IP 判定 | `04-publicip.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/04-publicip.jpg | +| 29 | 访问控制 / 时间组 | `05-acl.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/05-acl.jpg | +| 30 | 端口转发 / DMZ | `05-dnat.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/05-dnat.jpg | +| 31 | 防火墙 IPv4 · 规则与日志 | `05-fw4-2.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/05-fw4-2.jpg | +| 32 | 防火墙 IPv4 | `05-fw4.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/05-fw4.jpg | +| 33 | 防火墙 IPv6 · 规则与日志 | `05-fw6-2.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/05-fw6-2.jpg | +| 34 | 防火墙 IPv6 | `05-fw6.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/05-fw6.jpg | +| 35 | UPnP / NAT-PMP | `05-upnp.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/05-upnp.jpg | +| 36 | AC / AP · 无线与 VLAN | `06-acap-2.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-acap-2.jpg | +| 37 | AC / AP 管理中心 | `06-acap.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-acap.jpg | +| 38 | 打印服务 · 打印队列 | `06-cups-2.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-cups-2.jpg | +| 39 | 打印服务 · USB 直通 | `06-cups-3.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-cups-3.jpg | +| 40 | 打印服务 · 共享设置 | `06-cups-4.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-cups-4.jpg | +| 41 | 打印服务 CUPS | `06-cups.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-cups.jpg | +| 42 | 应用识别 DPI · 识别结果 | `06-dpi-2.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-dpi-2.jpg | +| 43 | 应用识别 DPI | `06-dpi.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-dpi.jpg | +| 44 | NTP 时间同步 | `06-ntp.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-ntp.jpg | +| 45 | 智能限速 QoS · 队列与规则 | `06-qos-2.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-qos-2.jpg | +| 46 | 智能限速 QoS | `06-qos.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-qos.jpg | +| 47 | 文件共享 · 共享目录 | `06-smb-2.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-smb-2.jpg | +| 48 | 文件共享 SMB / NFS | `06-smb.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/06-smb.jpg | +| 49 | 通用 API · OpenAPI 文档 | `07-api-2.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-api-2.jpg | +| 50 | 通用 API 接口 | `07-api.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-api.jpg | +| 51 | 网络诊断工具 | `07-diag.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-diag.jpg | +| 52 | Docker · 容器与镜像 | `07-docker-2.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-docker-2.jpg | +| 53 | Docker · Compose 项目 | `07-docker-3.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-docker-3.jpg | +| 54 | Docker / Compose | `07-docker.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-docker.jpg | +| 55 | Docker 引擎 · 镜像源测速 | `07-dockerconf-2.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-dockerconf-2.jpg | +| 56 | Docker 引擎 · daemon.json | `07-dockerconf-3.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-dockerconf-3.jpg | +| 57 | Docker 引擎配置 | `07-dockerconf.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-dockerconf.jpg | +| 58 | IPv6 连通性测试 | `07-ipv6test.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-ipv6test.jpg | +| 59 | Web 终端 / 文件 | `07-webshell.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/07-webshell.jpg | +| 60 | 连接与流日志 · conntrack | `08-flowlog-2.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/08-flowlog-2.jpg | +| 61 | 连接与流日志 | `08-flowlog.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/08-flowlog.jpg | +| 62 | 系统日志 | `08-syslog.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/08-syslog.jpg | +| 63 | 磁盘与日志清理 · 占用明细 | `09-cleanup-2.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-cleanup-2.jpg | +| 64 | 磁盘与日志清理 | `09-cleanup.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-cleanup.jpg | +| 65 | 依赖自检 · 探测结果 | `09-deps-2.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-deps-2.jpg | +| 66 | 依赖自检与安装 | `09-deps.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-deps.jpg | +| 67 | 内核转发 · 开关与联动 | `09-kernel-2.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-kernel-2.jpg | +| 68 | 内核转发与加速 | `09-kernel.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-kernel.jpg | +| 69 | 电源控制 | `09-power.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-power.jpg | +| 70 | 系统设置 · 时区与主机名 | `09-settings-2.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-settings-2.jpg | +| 71 | 系统设置 · Web 端口 | `09-settings-3.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-settings-3.jpg | +| 72 | 系统设置 · 审计日志 | `09-settings-4.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-settings-4.jpg | +| 73 | 系统设置 | `09-settings.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-settings.jpg | +| 74 | 证书 / SSL · 签发与部署 | `09-tls-2.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-tls-2.jpg | +| 75 | 证书 / SSL · 握手体检 | `09-tls-3.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-tls-3.jpg | +| 76 | 证书 / SSL | `09-tls.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-tls.jpg | +| 77 | 用户与密钥 · SSH 公钥 | `09-user-2.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-user-2.jpg | +| 78 | 用户与密钥 | `09-user.jpg` | https://cdn.jsdelivr.net/gh/liuzhuohua/drouter@main/docs/screenshots/09-user.jpg | + +--- + +## 换域名 + +把 URL 里的 `cdn.jsdelivr.net/gh` 整段替换即可,其余原样保留: + +| 域名 | 国内可达 | 缓存 | 说明 | +|---|---|---|---| +| `cdn.jsdelivr.net/gh` | 好 | 7 天 | **首选**(本文档默认) | +| `gcore.jsdelivr.net/gh` | 好 | 7 天 | jsDelivr 备用节点,主站被墙时用 | +| `raw.githubusercontent.com` | 时好时坏 | 5 分钟 | 备选;国内可能连不上 | +| `cdn.statically.io/gh` | 较好 | 1 天 | 另一个 CDN 备选 | + +**冻结版**(把 `@main` 换成 `@3f5f31701ee64b9419456b3c24b3e02fbfccb0c4`):内容永久锁定,不会因后续提交而改变。 + +``` +https://raw.githubusercontent.com/liuzhuohua/drouter@3f5f31701ee64b9419456b3c24b3e02fbfccb0c4/docs/screenshots/05-fw4.jpg ← raw 域名的冻结写法 +``` + +> 注意:jsDelivr 的 `@` 也支持,但换成 raw 域名时路径格式不变。 + + +--- + +## 实测结论(2026-09-30) + +- 四种直链形式**全部返回 200**,`Content-Type: image/jpeg` +- `Access-Control-Allow-Origin: *` —— **CORS 全开**,网页引用无阻 +- **无防盗链**:带外部 Referer(如论坛地址)依然正常返回;无 UA 也正常 +- jsDelivr 缓存 7 天,raw 缓存 5 分钟 + +> ⚠️ 仓库删除或改名后链接会全部失效。帖子要长期留存,建议本地另存一份原图。