More Tailscale tricks for your jailbroken Kindle

More Tailscale tricks for your jailbroken Kindle

为你的越狱 Kindle 带来更多 Tailscale 新玩法

If you managed to put Tailscale on a jailbroken Kindle before it updated too far ahead, you got something pretty great, even if it wasn’t the full Tailscale experience. But good things come to those who wait (or dig around on GitHub). 如果你在 Kindle 系统自动更新到最新版本之前,成功地在越狱后的 Kindle 上安装了 Tailscale,那么你已经获得了一个相当棒的工具,尽管它并非完整的 Tailscale 体验。但好东西总是留给那些愿意等待(或在 GitHub 上深挖)的人。

Open-source developers have improved the Tailscale experience on one of the weakest computers you own. If your Kindle is jailbroken, an updated version of Mitanshu Sukhwani’s Tailscale implementation offers a few new things: 开源开发者们已经改进了 Tailscale 在你手中性能最弱的设备之一上的运行体验。如果你的 Kindle 已经越狱,Mitanshu Sukhwani 的 Tailscale 实现版本更新后带来了一些新功能:

  • Tailscale SSH enabled by default, so you don’t have to enable USBnetworking SSH and its very obvious default user/password
  • 默认启用 Tailscale SSH,因此你无需再开启 USBnetworking SSH 及其显而易见的默认用户名/密码。
  • A proxy mode that lets apps like KOReader to reach other nodes on your tailnet, like a Calibre/OPDS or Wallabag server
  • 一种代理模式,允许像 KOReader 这样的应用访问你 Tailnet 网络中的其他节点,例如 Calibre/OPDS 或 Wallabag 服务器。
  • A full TUN mode that, on some Kindles, can make Tailscale networking work at the device level
  • 完整的 TUN 模式,在某些 Kindle 设备上,它可以让 Tailscale 网络在设备层面生效。

Let’s dig into each one and how to set them up. As before, this is community code working on a very unofficial device state; bring your patience along. 让我们深入了解每一项功能及其设置方法。和往常一样,这是在非常规设备状态下运行的社区代码;请保持耐心。

Tailscale on a Kindle, now with proxies

Kindle 上的 Tailscale,现已支持代理

The last time we wrote about Tailscale on a Kindle, the client was basic, but it worked. The Kindle showed up on your tailnet, complete with a green dot in the web admin console. You could reach the Kindle by its Tailscale IP address. You could even SSH into the Kindle over Tailscale, which was handy for further tinkering. 上次我们撰写关于 Kindle 上 Tailscale 的文章时,客户端还很基础,但它确实能用。Kindle 会出现在你的 Tailnet 中,并在 Web 管理控制台中显示绿点。你可以通过 Tailscale IP 地址访问 Kindle,甚至可以通过 Tailscale 对 Kindle 进行 SSH 连接,这对于进一步折腾非常方便。

But “reachable via Tailscale” is not the same as “routing all incoming and outgoing traffic across your tailnet,” it turns out. Tailscale on a jailbroken Kindle is typically forced to run in userspace mode, which means it cannot use the device’s own network routing layer, known as TUN mode. You could start Tailscale, and then start an app like KOReader, but when you tried to connect to another Tailscale device, like your Calibre server at 100.x.y.z, it would go like this: 但事实证明,“可通过 Tailscale 访问”并不等同于“通过 Tailnet 路由所有进出流量”。越狱 Kindle 上的 Tailscale 通常被迫在用户空间模式下运行,这意味着它无法使用设备自身的网络路由层(即 TUN 模式)。你可以启动 Tailscale,然后启动像 KOReader 这样的应用,但当你尝试连接到另一个 Tailscale 设备(例如 100.x.y.z 的 Calibre 服务器)时,情况会是这样:

  1. KOReader (or any app) asks the Kindle’s root OS how to reach 100.x.y.z
  2. KOReader(或任何应用)询问 Kindle 的底层操作系统如何访问 100.x.y.z。
  3. The Kindle, lacking Tailscale routing, cannot reach that Tailscale IP address
  4. Kindle 由于缺乏 Tailscale 路由,无法访问该 Tailscale IP 地址。
  5. KOReader drops the connection
  6. KOReader 断开连接。

An update to the Kindle KUAL app by greywolf1499 provides different modes that work around this. Now, when you try to reach another Tailscale IP address on your Kindle, it can go like this: 由 greywolf1499 更新的 Kindle KUAL 应用提供了一些绕过此限制的新模式。现在,当你尝试在 Kindle 上访问另一个 Tailscale IP 地址时,流程可以是这样的:

  • You start Tailscale in proxy mode
  • 你以代理模式启动 Tailscale。
  • You set up KOReader or another app’s proxy settings to connect to 127.0.0.1:1055
  • 你将 KOReader 或其他应用的代理设置配置为连接到 127.0.0.1:1055。
  • KOReader tells the proxy it wants to reach 100.x.y.z
  • KOReader 告诉代理它想要访问 100.x.y.z。
  • Tailscale’s daemon tailscaled, listening on port 1055, routes the connection through Tailscale
  • 监听在 1055 端口的 Tailscale 守护进程 tailscaled 通过 Tailscale 路由该连接。
  • E-books, articles, and other data flows between your Tailscale-running Kindle and other Tailscale devices
  • 电子书、文章和其他数据在运行 Tailscale 的 Kindle 与其他 Tailscale 设备之间流动。

This Tailscale proxy offers two modes, SOCKS5 and HTTP CONNECT, for apps that may prefer one or the other. This opens up a good bit more utility for your more-connected Kindle. 此 Tailscale 代理提供 SOCKS5 和 HTTP CONNECT 两种模式,以适配不同应用的需求。这为你的 Kindle 带来了更多实用性。

What you can do with a proxied Kindle

使用代理后的 Kindle 能做什么

A few wild ideas, depending on how dug in you want to get: 一些大胆的想法,取决于你想折腾到什么程度:

  • Calibre or Wallabag servers, as mentioned
  • 如前所述,连接 Calibre 或 Wallabag 服务器。
  • Audiobookshelf connection through KOReader
  • 通过 KOReader 连接 Audiobookshelf。
  • Use Readest to track reading progress across devices
  • 使用 Readest 跨设备同步阅读进度。
  • Linking KOReader’s RSS reader to a self-hosted feed server
  • 将 KOReader 的 RSS 阅读器连接到自托管的订阅服务器。
  • Accessing minimalist dashboards and web pages in the (pretty bad) Kindle browser
  • 在(体验相当糟糕的)Kindle 浏览器中访问极简仪表盘和网页。
  • Using a Bluetooth keyboard and the kterm app to SSH into tailnet devices
  • 使用蓝牙键盘和 kterm 应用通过 SSH 连接到 Tailnet 设备。

Is that last one all that practical? Not really. But is there a pleasant warmth, knowing that you’ve added the least likely thin client to your what-if kit? For some types, types I know quite well: yes. 最后一点实用吗?其实不然。但当你意识到自己把这个最不可能的设备变成了“瘦客户端”时,心中是否会涌起一丝满足感?对于某些人——我非常了解这类人——答案是肯定的。

The Tailscale plugin for KOReader (with Kobo and PocketBook support)

KOReader 的 Tailscale 插件(支持 Kobo 和 PocketBook)

If you don’t really need any Tailscale powers outside the highly capable KOReader app, check out this Tailscale KOReader plugin. It doesn’t make your Kindle accessible over your tailnet, like the KUAL-based app. But it does automatically create the proxy interfaces that are needed for reaching your content servers from your KOReader-running Kindle—or your Kobo device, or your PocketBook. 如果你不需要在功能强大的 KOReader 应用之外使用 Tailscale,可以看看这个 Tailscale KOReader 插件。它不像基于 KUAL 的应用那样让你的 Kindle 接入 Tailnet,但它能自动创建代理接口,让你从运行 KOReader 的 Kindle(或 Kobo、PocketBook 设备)访问你的内容服务器。

I haven’t been able to really try this extension out myself; my 11th-generation standard Kindle doesn’t play well with it at the moment. It’s been “Tested on Kindle PW5/PW6, Kobo, and PocketBook”—it’s nice to see Tailscale come to some other KOReader-friendly devices, too. 我还没能亲自测试这个扩展;我的第 11 代标准版 Kindle 目前与它兼容性不佳。它已在“Kindle PW5/PW6、Kobo 和 PocketBook 上测试通过”——很高兴看到 Tailscale 也能在其他支持 KOReader 的设备上运行。

Installation is not too hard, at least if you made it this far into jailbreaking already. You copy the plugin into KOReader’s plugins directory, trigger an “Install/Update Tailscale” from KOReader’s menu, copy a Tailscale key into a directory, then toggle Tailscale on in the KOReader menu. From there, you configure KOReader with one of its proxy addresses (127.0.0.1:1055 for SOCKS5, :1056 for HTTP CONNECT), then give other plugins the Tailscale IP addresses you need to reach. 安装并不太难,至少如果你已经完成了越狱。你只需将插件复制到 KOReader 的插件目录中,从 KOReader 菜单中触发“安装/更新 Tailscale”,将 Tailscale 密钥复制到指定目录,然后在 KOReader 菜单中开启 Tailscale 即可。之后,你只需配置 KOReader 的代理地址(SOCKS5 使用 127.0.0.1:1055,HTTP CONNECT 使用 :1056),然后将你需要访问的 Tailscale IP 地址提供给其他插件即可。

Victoria Riley Barnett’s repository notes that the plugin works great with a SyncThing plugin for KOReader. KOReader is like its own separate OS for jailbroken Kindles at this point, So now you’ve got a lot more options and weird projects available to you, through this already quite-strange little slab. If you’ve worked up a weirdly useful Tailscale setup on your Kindle, Kobo, or other e-paper device, we’d love to hear about it. Let us know on Reddit, Discord, Bluesky, X, Mastodon, or LinkedIn. Victoria Riley Barnett 的仓库指出,该插件与 KOReader 的 SyncThing 插件配合使用效果极佳。此时的 KOReader 对越狱后的 Kindle 来说,简直就像是一个独立的操作系统。通过这个本就相当奇特的电子书设备,你现在有了更多的选择和折腾空间。如果你在 Kindle、Kobo 或其他电子纸设备上搭建了什么奇特且实用的 Tailscale 配置,我们很乐意听听你的分享。请通过 Reddit、Discord、Bluesky、X、Mastodon 或 LinkedIn 告诉我们。