<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>折腾笔记 on September的个人空间</title><link>https://blog.september.win/categories/%E6%8A%98%E8%85%BE%E7%AC%94%E8%AE%B0/</link><description>Recent content in 折腾笔记 on September的个人空间</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Sat, 02 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.september.win/categories/%E6%8A%98%E8%85%BE%E7%AC%94%E8%AE%B0/index.xml" rel="self" type="application/rss+xml"/><item><title>把旧手机变成私人学习资料网盘</title><link>https://blog.september.win/p/phone-alist-study-archive/</link><pubDate>Sat, 02 May 2026 00:00:00 +0000</pubDate><guid>https://blog.september.win/p/phone-alist-study-archive/</guid><description>&lt;p&gt;之前博客已经跑在一台安卓手机上了。既然这台手机本来就 24 小时在线，那干脆再给它加一个更实用的功能：私人学习资料网盘。&lt;/p&gt;
&lt;p&gt;现在入口是：&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://drive.september.win" target="_blank" rel="noopener"
 &gt;September Archive&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;主要用来放课程 PPT、教材 PDF、作业资料、考试复习文档，还有一些平时从桌面和聊天记录里扒出来的学习文件。它不是公开资源站，更像是给自己准备的长期资料仓库。&lt;/p&gt;
&lt;h2 id="架构"&gt;架构
&lt;/h2&gt;&lt;p&gt;整体结构很简单：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;安卓手机 Termux
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └─ Alist
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └─ /sdcard/StudyArchive
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └─ Cloudflare Tunnel
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └─ drive.september.win
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;手机本地跑 Alist，资料实际存在 &lt;code&gt;/sdcard/StudyArchive&lt;/code&gt;。外部访问不直接暴露手机端口，而是通过 Cloudflare Tunnel 转发到公网域名。&lt;/p&gt;
&lt;p&gt;这样做的好处是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;不需要公网 IP&lt;/li&gt;
&lt;li&gt;不需要在路由器上开端口&lt;/li&gt;
&lt;li&gt;手机只主动连 Cloudflare&lt;/li&gt;
&lt;li&gt;网盘地址稳定&lt;/li&gt;
&lt;li&gt;和博客一样都挂在自己的域名下面&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="安全"&gt;安全
&lt;/h2&gt;&lt;p&gt;这个网盘没有裸奔。&lt;/p&gt;
&lt;p&gt;外层用了 Cloudflare Access，访问 &lt;code&gt;drive.september.win&lt;/code&gt; 时会先要求邮箱验证码。通过之后才会进入 Alist 自己的登录页。&lt;/p&gt;
&lt;p&gt;也就是说现在是两层：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Cloudflare Access
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -&amp;gt; Alist 登录
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -&amp;gt; StudyArchive
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Alist 的游客访问也关掉了，游客按钮也从页面里隐藏了。文件接口未登录时会返回 401。&lt;/p&gt;
&lt;p&gt;这点很重要，因为学习资料虽然不是什么商业机密，但里面可能混着作业、论文、准考证、课程名单之类的东西，不能随便暴露在公网。&lt;/p&gt;
&lt;h2 id="资料整理"&gt;资料整理
&lt;/h2&gt;&lt;p&gt;这次顺手把电脑里的学习资料整理了一遍。&lt;/p&gt;
&lt;p&gt;大致扫了这些地方：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;D:\
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;E:\
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Desktop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;最后手动整理成几个分类：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Presentation
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;人智
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;党史课资料
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;分析化学
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;基础无机化学实验
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;新生研讨课
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;有机化学（生科，生技）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;生物
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;线代
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;职规赛
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;英美文学鉴赏
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;逻辑学
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;高等数学
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;最后传到手机上一共大约 1.1GB，230 个文件。&lt;/p&gt;
&lt;h2 id="网页外观"&gt;网页外观
&lt;/h2&gt;&lt;p&gt;Alist 默认界面有点朴素，所以换了一套社区美化主题，又稍微改了一下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;背景图使用博客同款背景&lt;/li&gt;
&lt;li&gt;favicon 和头像使用博客头像&lt;/li&gt;
&lt;li&gt;左上角改成 &lt;code&gt;September Archive&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;加了一个上传入口&lt;/li&gt;
&lt;li&gt;友链页面也挂上了网盘入口&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;现在它看起来更像博客的一部分，而不是一个突兀的单独服务。&lt;/p&gt;
&lt;h2 id="上传方式"&gt;上传方式
&lt;/h2&gt;&lt;p&gt;目前上传有两种方式。&lt;/p&gt;
&lt;p&gt;一种是直接登录网页，在网盘里上传文件。&lt;/p&gt;
&lt;p&gt;另一种是本地先整理好文件夹，然后打包传到手机，再解压到：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/sdcard/StudyArchive
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这次大批量传输的时候，普通 &lt;code&gt;scp&lt;/code&gt; 走 Cloudflare SSH 隧道太慢，所以最后用了临时下载隧道：电脑开一个本地 HTTP 服务，再用 Cloudflare quick tunnel 暴露给手机下载。下载完成后校验 SHA256，再在手机端解压。&lt;/p&gt;
&lt;p&gt;虽然过程有点绕，但对大文件比一堆小文件逐个 &lt;code&gt;scp&lt;/code&gt; 稳得多。&lt;/p&gt;
&lt;h2 id="为什么不用现成网盘"&gt;为什么不用现成网盘
&lt;/h2&gt;&lt;p&gt;不是不能用 OneDrive、百度网盘、阿里云盘这些服务，只是它们不太像“自己的资料库”。&lt;/p&gt;
&lt;p&gt;我想要的是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;域名是自己的&lt;/li&gt;
&lt;li&gt;文件放在哪里自己知道&lt;/li&gt;
&lt;li&gt;目录结构自己控制&lt;/li&gt;
&lt;li&gt;上传下载没有额外客户端绑架&lt;/li&gt;
&lt;li&gt;可以和博客、服务器、自动化脚本继续联动&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这也是自建服务最有意思的地方：它不一定更省事，但更可控。&lt;/p&gt;
&lt;h2 id="后续计划"&gt;后续计划
&lt;/h2&gt;&lt;p&gt;后面还可以继续加几件事：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;WebDAV，同步 Obsidian 或 Zotero&lt;/li&gt;
&lt;li&gt;自动备份到另一台电脑或对象存储&lt;/li&gt;
&lt;li&gt;给 PDF 和文档做全文搜索&lt;/li&gt;
&lt;li&gt;做一个学习资料索引页&lt;/li&gt;
&lt;li&gt;按课程自动生成目录&lt;/li&gt;
&lt;li&gt;给重要资料加冷备份&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;目前第一版已经够用了。旧手机继续发光发热，博客和网盘都跑在上面，也算是一个小型个人资料中心了。&lt;/p&gt;</description></item><item><title>在安卓手机上搭建个人博客的赛博折腾记录</title><link>https://blog.september.win/p/android-hugo-blog-setup/</link><pubDate>Sun, 05 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.september.win/p/android-hugo-blog-setup/</guid><description>&lt;p&gt;把一台安卓手机变成全天候运行的服务器，这里记录一下整个博客的底层架构、一键启动脚本以及日常编辑的工作流，作为个人记录用 Desuwa。&lt;/p&gt;
&lt;h2 id="1-核心底层架构搭建过程"&gt;1. 核心底层架构（搭建过程）
&lt;/h2&gt;&lt;p&gt;整个站点的运行不需要去购买云服务器，所有的计算和渲染都在手机里完成。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;运行环境&lt;/strong&gt;：安卓端安装 Termux，提供完整的 Linux 终端环境。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;核心引擎&lt;/strong&gt;：使用 Hugo 生成静态页面，并配置了功能齐全的 Stack 主题。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;外网穿透&lt;/strong&gt;：通过 Cloudflared 建立加密隧道。把本机的 8080 端口映射到公网域名，同时打通了 SSH 通道。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;云端编辑器&lt;/strong&gt;：在 Termux 内运行 &lt;code&gt;code-server&lt;/code&gt;，提供网页版的 VS Code 界面。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="2-自动化启动方案"&gt;2. 自动化启动方案
&lt;/h2&gt;&lt;p&gt;手机重启后，手动敲命令拉起服务效率太低。为了实现“一键复活”，配置了结合 &lt;code&gt;tmux&lt;/code&gt; 的自动化脚本。&lt;/p&gt;
&lt;p&gt;手机开机打开 Termux 后，直接执行以下代码：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;termux-wake-lock
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sshd
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tmux new-session -d -s blog &lt;span class="s2"&gt;&amp;#34;cloudflared tunnel run&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tmux new-window -t blog:1 &lt;span class="s2"&gt;&amp;#34;code-server --auth none --bind-addr 127.0.0.1:8443&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tmux new-window -t blog:2 &lt;span class="s2"&gt;&amp;#34;cd ~/myblog &amp;amp;&amp;amp; hugo server -D -p 8080&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tmux attach -t blog
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这段脚本执行了以下操作：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;获取唤醒锁，防止安卓杀后台。&lt;/li&gt;
&lt;li&gt;启动 SSH 服务，允许电脑远程接入。&lt;/li&gt;
&lt;li&gt;创建名为 &lt;code&gt;blog&lt;/code&gt; 的虚拟窗口，在后台并行三个任务：内网穿透、VS Code 服务、Hugo 本地实时预览。&lt;/li&gt;
&lt;li&gt;随时可以通过快捷键 &lt;code&gt;Ctrl+B&lt;/code&gt; 配合数字键 &lt;code&gt;0, 1, 2&lt;/code&gt; 切换查看不同服务的实时日志。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="3-跨端编辑流"&gt;3. 跨端编辑流
&lt;/h2&gt;&lt;p&gt;服务端跑通后，日常编辑不需要在手机屏幕上操作。&lt;/p&gt;
&lt;p&gt;在电脑端打开终端，执行端口转发：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;ssh&lt;/span&gt; &lt;span class="n"&gt;-L&lt;/span&gt; &lt;span class="mf"&gt;8443&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;127.0&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;0&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mf"&gt;1&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;8443&lt;/span&gt; &lt;span class="n"&gt;phone&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;接着，在电脑浏览器里打开 &lt;code&gt;http://localhost:8443/&lt;/code&gt;，即可接入完整的 VS Code 界面。工作流如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;敲击 &lt;code&gt;Ctrl + ~&lt;/code&gt; 呼出终端，使用 &lt;code&gt;hugo new post/文章名.md&lt;/code&gt; 创建新文章。&lt;/li&gt;
&lt;li&gt;直接在网页编辑器里撰写 Markdown 内容。&lt;/li&gt;
&lt;li&gt;按下 &lt;code&gt;Ctrl + S&lt;/code&gt; 保存，Hugo 会在毫秒级完成重新编译。&lt;/li&gt;
&lt;li&gt;刷新博客对应的公网页面，即可看到最新排版效果。&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>