关于思源笔记与 docker 的部分问题

本贴最后更新于 935 天前,其中的信息可能已经事过景迁

关于思源笔记

sevePath 与思源

思源从版本 1.9.8 之后规定必须设置 servePath 绑定地址,即仅限指定地址访问。
比如,部署的时候设置的--servePath=127.0.0.1:6806,那么仅能访问 127.0.0.1:6806 访问,不可以 0.0.0:6806 或其他地址访问。
启动容器时若不设置--servePath,我们能够看到 docker logs 报告必须设置 servePath。
在这里插入图片描述该设置的好处显而易见:访问者仅能从指定地址访问,提高了思源的安全性。
弊端:不能使用隐性解析方案。

笔者喜欢在每个服务器部署一个思源笔记。且笔者部署的每一个思源都是使用隐性解析方案的。

关于此处 servePath 在官方文档的说明,可以使用 nginx 设置反向代理来隐藏地址,下面我们来看一下隐性解析与反向代理的区别。


隐性解析

隐性解析属于应用层。我们在设置域名解析的时候,一般设置为类型 A 解析。而隐性解析属于转发。

转发

转发一般分为两种,一种是显性转发,一种是隐性转发。

显性转发

显性转发即访问后跳转到所设置的转发域名
如 我们将三级域名 a.baidu.com 设置显性转发为 b.baidu.com,则访问 a.baidu.com 时候,url 会显示 b.baidu.com。

隐性转发

隐性转发即访问后跳转到所设置的转发域名,但 url 显示的为我们访问的域名。
如 我们将三级域名 a.baidu.com 设置隐性转发为 b.baidu.com,则访问 a.baidu.com 时候,url 会显示 a.baidu.com。

隐性转发的好处为:我们可以隐藏访问的具体地址。比如说我们在使用隐性转发,三级域名 a.baidu.com 设置隐性转发为 b.baidu.com,则我们使用 a.baidu.com 访问其文件夹/file,具体路径为 b.baidu.com/file,但 url 则显示 a.baidu.com。也就是我们使用 a 地址去访问 b 地址下的任意文件,隐性转发下的地址栏是不会变的,只显示 a 地址。


反向代理

反向代理这里指基于思源官方文档的反向代理,也就是基于本机的反向代理。
我们在地址为 172.0.0.1 的服务器内配置 nginx,在配置文件*.conf 里面设置
listen 80
proxy_pass 127.0.0.1:6806
server_name siyuan.baidu.com
其中,siyuan.baidu.com 在域名解析设置为 A 类型解析到 172.0.0.1。
那么我们访问 siyuan.baidu.com 时,相当于访问地址为 172.0.0.1 公网服务器的内网地址 127.0.0.1:6806。


隐性解析与反向代理方案的区别

不同于隐性解析的是,改方案无法隐藏访问地址。

比如我们访问服务器内 172.0.0.1/data/1.sy,那么访问地址为 siyuan.baidu.com/data/1.sy。

若隐性解析方案访问 172.0.0.1/data/1.sy,则地址栏显示仍然是 siyuan.baidu.com(此处的 baidu.com 解析为 A 类型 127.0.0.1,siyuan.baidu.com 解析为隐性 baidu.com:6806)


版本 >1.9.8 与方案

通过上面的描述我们可以知道,大于 1.9.8 的版本是不能够使用隐性解析方案访问思源的。
我们来对思源的判定简单做一下分析。
在这里插入图片描述我们可以看到在 conf.json 做了访问限制。
笔者在部署的时候尝试了设置两个 servePath,
即--servePath=baidu.com.6806 --servePath=siyuan.baidu.com。
测试发现,该情况下两个地址均无法进入思源。(测试时使用笔者的域名,非 baidu.com。此处仅示例)。

以上即关于大于 1.9.8 的版本无法使用隐性解析方案访问的总结。

存储地址

关于存储地址,注意到本段以前图片的读者会发现,思源的存储地址是在容器内。我们来看一下思源的存储说明与实际地址。

官方说明如下
在这里插入图片描述即思源存储于容器内的工作文件。
基于 ubuntu20.04tls 部署的思源
docker pull b3log/siyuan
docker run --name siyuan -it -d --restart=always -v /usr/local/software/siyuan/data/SiYuan:/root/Documents/SiYuan -p 6806:6806 b3log/siyuan
(老版本无需设置 servePath)
那么实际存储地址为/var/lib/docker/overlay2/[容器完整 id]/diff/home/siyuan/Documents/SiYuan

希望开发者以后可以将思源的保存地址允许设置到本机的 root 下,或本机的/home 下的文件夹内吧。

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    22026 引用 • 87852 回帖 • 4 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • chax

    感觉这个限制意义不大……

    徒增麻烦

    1 回复
  • kaydenlsr
    作者

    确实