林一二2023年08月21日 14:07
- 首先下载 FDroid
- 用 FDroid 来安装 Termux
- 更新包
pkg upgrade, 中间可能会卡住需要输入Y - 装 ssh 远程连接,方便电脑上操作
pkg install openssh- 参考 SSH into Termux from Your Computer 查看用户名、配置密码,把它们用 Bitwarden 之类的密码管理器记录起来
- 安装
pkg install net-tools,然后就可以用ifconfig查看手机在内网的 ip 了,例如192.168.3.4 ssh u0_a233@192.168.3.4 -p 8022来连接,然后输入密码。sshd 默认会启动在 8022 上。
- 安装 nodejs
- 参考 How to install Node.js and npm in Termux on Android
apt install nodejs
- 将 Github 上的 wiki 仓库同步到本地
pkg install gitgit clone https://github.com/linonetwo/wiki.git- 配置定时同步脚本 startBlogAndProxy.config.js,定时同步 git,并自动刷新 wiki
- 启动只读的 wiki
- 配置反向代理
- 用免费的 Cpolar,下载并解压程序
curl -O -L https://static.cpolar.com/downloads/releases/3.3.12/cpolar-stable-linux-arm.zip && unzip ./cpolar-stable-linux-arm.zip,然后参考「连接您的帐户」添加token./cpolar authtoken xxx - 执行内网穿透代理
./cpolar http 8080,如果买了付费版还可以指定「预留」里配置的域名,例如./cpolar http 8080 -subdomain=onetwowiki,就可以在 https://onetwowiki.cpolar.top 访问了 - 在域名提供商处配置 CNAME 记录,来使用自己的域名。注意"不能"把现有域名的子域名,例如 wiki.onetwo.ren 直接绑定到上面的域名上,而是要使用「预留」里的「保留自定义域名」,把自己的域名(例如
wiki.onetwo.ren)填进去后,点击「保留」按钮,获得一个专门用于绑 CNAME 的域名(例如xxxx.cname.cpolar.io),把这个填到 CNAME 记录里即可 - 在配置保留域名时,如果自己的域名没有备案,记得地区选 United States,并给 Tiddlywiki 服务器配置 HTTPS
- 用免费的 Cpolar,下载并解压程序
- 配置 HTTPS 免备案
- 如果是在阿里云上买的域名,可以申请 20 个免费 https 证书,参考如何申请阿里云的免费域名HTTPS证书,不仅方便,还会自动更新域名解析的 DNS 记录
- 申请完后,下载
Apache crt/key类型的证书,存放在ssh文件夹里,例如我为 https://wiki.onetwo.ren 申请的证书,就重命名后放在~/ssl/wiki.onetwo.ren_public.crt和~/ssl/wiki.onetwo.ren.key - 在启动命令的后面拼上
tls-key=../ssl/wiki.onetwo.ren.key tls-cert=../ssl/wiki.onetwo.ren_public.crt,变为cd ~/wiki && git pull && tiddlywiki ~/wiki --listen host=0.0.0.0 port=8080 root-tiddler=$:/core/save/lazy-images tls-key=../ssl/wiki.onetwo.ren.key tls-cert=../ssl/wiki.onetwo.ren_public.crt - Cpolar 的命令也要用上 https 相关证书,并连到 https 版的本地 wiki
https://localhost:8080上,变为./cpolar tls -hostname=wiki.onetwo.ren -redirect-https -crt=~/ssl/wiki.onetwo.ren.pem -key=~/ssl/wiki.onetwo.ren.key -region=hk https://localhost:8080
配置了 pm2 配置文件 startBlogAndProxy.config.js 之后,可以通过 pm2 start ~/wiki/tiddlers/startBlogAndProxy.config.js 来自动后台启动和同步。
(当然首先要 npm i -g pm2)
Q/A
如果不是在阿里云买的域名,如何开 HTTPS 呢?
FSpark:
关键是获得证书,在手机上跑sh还是在电脑上跑再复制过来都行,用 acme.sh 或 certbot 验证获得免费证书,三个月自动更新一次,它们靠自动更改DNS TXT记录来验证域名所有权
如果我没有域名呢?
可以直接用 Cpolar 的免费子域名,例如我们的 https://tw-cn.cpolar.top 就是。不过还是在阿里云买个自己的域名好,便宜的也无所谓。