4

几物互联

 1 year ago
source link: https://blog.heysh.xyz/2022/05/22/connect-every-something/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

我被封在外面了。这种时候非常想念 192.168.1.1…… 也非常适合写博客来回忆熟悉的网络。

无论是在家里的组装机还是漂泊的笔记本,在工作的时候都能够获得相似的上下文,有的时候甚至可以在家 CTRL+C,在公司 CTRL+V。除了鸿蒙系统之外,通过一组软件也是可以实现的。

本人现在所使用的方案如下。设置难度由易到难排序。

同步存储:Syncthing

前置条件:两台(或以上)容量较高的电子设备

比起云存储,个人更倾向于 Syncthing 这样的本地同步方案:至少文件是属于自己的(而且还不用收钱)。安装也很简单:Windows 下安装 SyncTrayzor,Android 下安装 Syncthing-Fork,其他系统移步这里就可以。安装完以后,在两边选择工作目录,就可以完成双向同步了。得益于 STUN 服务器,无论是在内网还是外网,文件都可以完成传输。

当然,Syncthing 也有一定的问题。首先是,因为是进行了同步,同一份文件会在每一个设备上都占用一份空间。在手机这样捉襟见肘的环境下,建议采用 “仅发送” 模式,只用来备份照片之类的。

另外,Syncthing 在运行的时候必须要两侧的设备保持开机,电费账单 + 1。在有一方离线的时候,需要注意文件的版本,不要在两边都修改同一个文件。毕竟不是 git,合并功能没有那么强。

笔记软件与文献管理

前置条件:同步的话需要 Syncthing,或者云存储。

本人使用 JoplinZotero 来做笔记和进行文献管理,这两款软件都可以使用 Syncthing 作为同步后端 1,而且都具有笔记功能。我的习惯是,在 Joplin 上写一些需要较长篇幅的笔记,文献阅读笔记放在 Zotero 中。

当然,作为一篇讲 “互联” 的博文,这两款软件当然也是可以相互连接的。我主要用到下面这些:

Joplin 内部

当然 Joplin 不是为了双链笔记而设计的,但是通过插件 plugin-note-link-system 也可以获得一部分双链笔记的功能,比如说,方便地在一篇笔记里引用另外一篇笔记的某个小标题;或者是在另一篇笔记里看到 backlinks。

笔记引用 Zotero 参考文献

通过 Better BibTeX for ZoteroQuick Copy 功能,按下 Ctrl+Shift+C,就可以把当前文献复制成类似 [xxx](zotero://select/library/items/xxxxxx) 的链接。这种方式对别的笔记软件也适用,只要它能够打开 URL Scheme

引用计算机上的其他内容

肯定没有人想把所有文件都塞进笔记本的数据库里,总是要引用一些外部文件的,这时候还是需要用万能的链接。这里的链接格式类似 [xxx](file://C:\工作\xxx.docx),在 Windows 系统下既有斜杠也有反斜杠,但是很神奇地能够正确找到。

实际上还有一个问题,通过 Syncthing 同步后,文件在每台电脑上的链接地址是不一样的。所以,我在每台电脑的 C 盘做了一个文件夹链接 2。在 Powershell 下:

New-Item -ItemType Junction -Path "C:\工作" -Target "C:\实际的\工作\目录"

或者也可以用 Link Shell Extension 来做这件事。之后,在每台电脑上都可以访问 C:\工作\xxx.docx 了。

随处 Ctrl+V,以及传文件

是这样的张总:你在家里的电脑上按了 CTRL+C, 然后在公司的电脑上再按 CTRL+V 是肯定不行的。即使同一篇文章也不行。不不,多贵的电脑都不行。

前置条件:需要在同一个局域网下面 —— 所以确实不行。

隆重推荐 KDE connect,虽然是 KDE 出品,但是 Windows 和 Android 也能用。给手机和电脑装上这个,在同一个局域网下面就可以共享剪贴板了,而且还能够互相传文件。

不过,有的时候 KDE connect 找不到局域网设备,这时候我会用 Total Commander (Android) 的 Wifi 传输插件,或者是 python -m http.server

远程访问:Tailscale、Tinc 或 Wireguard

前置条件:家里 24 小时开机的矿渣 / 跳板机 / 树莓派 / NAS;有公网 IP 的 VPS

之前所说的那样,当前,如果我想要在外面访问家里的局域网,我会使用 Tinc 来建立隧道。运气好(外面有 IPv6 地址,大多是手机分享 Wifi)的时候,可以直接连到自己的、IPv6 地址与某个域名绑定的 “跳板机”(ARM 矿渣)上;运气不好的话,会自动有一台国外 VPS 进行转发,速度大概在~100K/s。如果用 Wireguard 的话性能会更好,可是我一直没有找到像 Tinc 一样简单的节点转发方案。

连接 Tinc 之后,就可以通过 Wake On LAN 唤醒自己的其他电脑,然后用 samba、远程桌面之类的软件了。就好象回到家里居家办公一样!

当然,在这种需求下,最简单的应该是 Tailscale,但是由于迫害妄想,我一直没有尝试,而是另外找了类似的东西:

剧透:最后这些我都没用

好了,这次我想说的就是这些。办公室冰冷的行军床正在等着我。


  1. Joplin 使用 File System 作为同步目标,Zotero 使用 Zotfile 插件。就我自己而言,Joplin 用了 OneDrive,在手机上同步比起 SyncThing 更方便一些;Zotero 那边,我自建了 WebDAV 服务,这纯粹是因为那时候我还没找到插件。 ↩︎

  2. 其实是 Junction,对于应用来说完全透明,两边的文件是完全一样的。 ↩︎


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK