1 điểm bởi GN⁺ 2 giờ trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Bản Tailscale cho Kindle đã jailbreak được bổ sung mặc định Tailscale SSH, proxy theo ứng dụng và chế độ TUN cho một số thiết bị
  • Trên Kindle thông thường, do giới hạn của chế độ userspace, KOReader không thể kết nối trực tiếp tới các địa chỉ tailnet như 100.x.y.z
  • Chế độ proxy mới cho phép tailscaled nhận các yêu cầu SOCKS5·HTTP CONNECT trên cổng cục bộ và chuyển tiếp tới các node tailnet khác như Calibre, Wallabag
  • Một plugin KOReader riêng sẽ tự động tạo giao diện proxy cần thiết để truy cập máy chủ nội dung không chỉ trên Kindle mà còn trên Kobo và PocketBook
  • Vì đây là mã cộng đồng dành cho môi trường jailbreak không chính thức, khả năng tương thích giữa các thiết bị có thể khác nhau và người dùng phải tự cài đặt, cấu hình

Cách kết nối mới của Tailscale dựa trên KUAL

  • Các client trước đây cũng có thể đăng ký Kindle vào tailnet để truy cập bằng IP Tailscale hoặc kết nối qua SSH, nhưng không thể định tuyến toàn bộ lưu lượng của thiết bị qua tailnet
  • Trên Kindle đã jailbreak, thông thường sẽ dùng userspace networking nên không thể dùng chế độ TUN, tức lớp định tuyến mạng của chính thiết bị
    • Dù KOReader yêu cầu kết nối tới 100.x.y.z, Kindle OS không có tuyến tới IP Tailscale đó nên kết nối sẽ bị ngắt
  • Bản cập nhật ứng dụng KUAL của greywolf1499 bổ sung nhiều chế độ để vượt qua hạn chế này
    • Khởi động Tailscale ở chế độ proxy rồi đặt địa chỉ proxy của KOReader và các ứng dụng khác thành 127.0.0.1:1055
    • tailscaled lắng nghe ở cổng 1055 sẽ nhận yêu cầu và chuyển tiếp tới thiết bị tailnet khác
    • Hỗ trợ cả SOCKS5 lẫn HTTP CONNECT để chọn cách phù hợp với từng ứng dụng
  • Tailscale SSH được bật mặc định, nên không cần bật riêng USBnetworking SSH vốn dùng tên người dùng và mật khẩu mặc định quá dễ đoán
  • Trên một số Kindle, có thể dùng chế độ TUN đầy đủ để bật mạng Tailscale ở cấp độ thiết bị
  • Khi dùng proxy, có thể thực hiện các việc sau
    • Kết nối tới máy chủ Calibre hoặc Wallabag
    • Truy cập Audiobookshelf từ KOReader
    • Đồng bộ tiến độ đọc giữa các thiết bị bằng Readest
    • Kết nối trình đọc RSS của KOReader với máy chủ feed tự host
    • Truy cập dashboard và trang web tối giản từ trình duyệt Kindle
    • Dùng bàn phím Bluetooth và kterm để SSH vào thiết bị tailnet

Plugin dành riêng cho KOReader

  • Plugin Tailscale cho KOReader là lựa chọn thay thế cho người dùng không cần tính năng Tailscale bên ngoài KOReader
    • Không giống ứng dụng KUAL, plugin này không biến chính thiết bị thành thiết bị có thể truy cập từ tailnet
    • Thay vào đó, nó tự động tạo giao diện proxy cần thiết để KOReader truy cập máy chủ nội dung
    • Đã được thử nghiệm trên Kindle PW5·PW6, Kobo và PocketBook
  • Kindle thường thế hệ 11 hiện có vấn đề tương thích, nên chưa xác nhận hoạt động bình thường
  • Việc cài đặt và cấu hình được thực hiện theo thứ tự sau
    • Sao chép plugin vào thư mục plugin của KOReader
    • Chạy Install/Update Tailscale trong menu KOReader
    • Sao chép auth key của Tailscale vào thư mục chỉ định rồi bật Tailscale từ menu
    • Đặt proxy của KOReader thành 127.0.0.1:1055 cho SOCKS5 hoặc 127.0.0.1:1056 cho HTTP CONNECT
    • Trong các plugin khác, nhập IP Tailscale của máy chủ cần kết nối
  • Plugin này cũng có thể dùng cùng plugin SyncThing cho KOReader

1 bình luận

 
Ý kiến trên Hacker News
  • KOReader là một giao diện mã nguồn mở tuyệt vời có thể cài trên hầu hết các thiết bị đọc sách điện tử. Lúc đầu tôi lo pin Kobo sẽ tụt nhanh, nhưng hoàn toàn không có vấn đề gì, và vì có thể tùy chỉnh gần như vô hạn theo ý muốn nên tôi có cảm giác đã chạm tới điểm cuối của sự tiện lợi khi đọc sách
    Tôi rất khuyến nghị nếu bạn dùng thiết bị đọc sách điện tử, và xin cảm ơn những người đã phát triển, duy trì nó mà không nhận thù lao

    • Có lẽ sẽ rất hợp với những ai muốn chỉnh mọi thứ thật chi li, nhưng với tôi thì cấu trúc cài đặt quá khó hiểu. Thật khó biết cài đặt phông chữ, lề và ngắt từ nằm ở bánh răng, tài liệu, cờ lê hay phần cài đặt sách khi nhấn giữ, rồi lại phải tìm tiếp trong typography, màn hình, kiểu, văn bản hay mục khác
      Tôi đã dùng nó trên một chuyến bay dài để sửa lỗi hiển thị của một cuốn sách Project Gutenberg, nhưng chỉ riêng việc tìm menu tắt ngắt từ cũng mất khoảng 10 phút, và ngay cả trong đúng menu đó cũng có hàng chục tùy chọn trải dài 1~3 trang. Trong khi đó, trình đọc mặc định của Kobo gom các cài đặt cần thiết vào đúng nơi đầu tiên mà người ta mong đợi
      Đây là sở thích cá nhân, nhưng tôi thích kiểu thư viện như màn hình mặc định của Kobo hay Kindle hơn là màn hình trình duyệt tệp
    • Bộ đôi KOReader và BookOrbit rất tuyệt, và bạn cũng có thể dùng kèm các công cụ mình thích như Calibre. Việc cấu hình khá phiền, nhưng một khi đã chỉnh xong thì sẽ thành môi trường đọc tốt nhất
      Ở màn hình chính tôi dùng BookShelf, còn cho phần thiết lập đầu trang và chân trang thì dùng BookEnds; tôi cũng dùng KOAssistant để gửi đoạn văn bản đã chọn tới mô hình ngôn ngữ lớn nhằm thực hiện giải thích, dịch thuật và các yêu cầu tùy chỉnh. Khi chọn những cách diễn đạt cổ hoặc thuật ngữ hàng hải lạ trong loạt Horatio Hornblower rồi nhấn Explain, tôi có thể nhận câu trả lời trên Kindle chỉ sau vài giây và dùng nó như từ điển
      Tôi quản lý tiến độ đọc, ghi chú và ebook bằng BookOrbit, đồng thời dùng Claude để thiết lập một màn hình e-ink dựa trên ESP32 sao cho nó luân phiên hiển thị các câu trích từ KOReader. Đây là đỉnh cao của một môi trường đọc tùy biến tự host, và tôi biết ơn người đồng nghiệp đã giới thiệu con đường này
    • Việc không được trả tiền chỉ xảy ra khi bạn chọn không ủng hộ thôi
      https://liberapay.com/KOReader
    • Phần mềm mặc định không có vấn đề gì đặc biệt nên tôi vẫn chưa thấy cần cài KOReader, nhưng tôi tò mò không biết những tính năng nào lại hay đến vậy. Tính năng duy nhất tôi từng nghĩ là sẽ hay nếu có là đồng bộ tiến độ đọc với TheStoryGraph
    • Tôi cũng hài lòng tương tự trên Kobo. Tôi thấy tiếc vì màn hình chính kiểu Kobo hiển thị cả sách trong các thư mục lồng rất sâu, nhưng có plugin cho việc đó: https://github.com/AndyHazz/bookshelf.koplugin
      Giờ chỉ còn thiếu một tính năng như stylesheet để chừa lề phần thân bài để thiết bị lật trang ngoài dùng cho đọc rảnh tay không che mất chữ ở mép phải; nếu ai biết cách thì mong được chỉ giúp
  • Tuần này tôi đã jailbreak Kindle Paperwhite thế hệ 7. Điều tôi khó chịu nhất là không có dark mode, nhưng hóa ra chỉ là Amazon quyết định không cung cấp mà thôi. KOReader hỗ trợ dark mode hoàn toàn ổn, và phản hồi nhanh, tức thì hơn nhiều so với phần mềm mặc định của Kindle
    Con trai và vợ tôi đều dùng Paperwhite thế hệ 10, nhưng dù cùng một thiết bị, chỉ máy của vợ tôi có dark mode do khác biệt phần mềm theo thời điểm mua
    Ngoài ra, KOReader có thể xử lý DRM qua plugin nên cuối cùng tôi cũng mượn được ebook từ thư viện. Không cần mua máy mới, chỉ với phần mềm phù hợp thì thiết bị 10 năm tuổi vẫn hoạt động rất tốt

    • Tôi tự hỏi liệu chỉ cần cập nhật lên firmware mới nhất có được không
      https://www.amazon.com/gp/help/customer/display.html?nodeId=...
    • Tôi tò mò nó hỗ trợ loại DRM nào. Nếu có thể mua và đọc sách Amazon, tôi cũng muốn biết plugin DRM đó có phải do Amazon cung cấp hay không
  • Thế này là đã vượt ngưỡng rồi, đến lúc jailbreak Kindle thôi. Vào những ngày tôi không vibe coding hoặc làm ít, tôi cảm thấy kiểu thiếu dopamine như triệu chứng cai, rồi lại tốn quá nhiều thời gian xem các bài đăng vô bổ trên X hoặc tìm thứ gì đó kích thích thần kinh
    Có lẽ dùng thời gian đó để đọc danh sách RSS còn tồn sẽ tốt hơn

  • Một trong ba thứ KOReader, SSH hoặc Tailscale đã phá hỏng hoàn toàn thời lượng pin của Kindle Oasis, đồng thời gây khởi động lại và treo thường xuyên. Đó là trải nghiệm từ bản triển khai cũ nên giờ có thể đã tốt hơn

    • Thứ đáng nghi nhất có lẽ là Tailscale. Nó cũng ngốn pin khá nhiều trên iOS, và Android cũng vậy
  • Dù firmware cũ của Kindle không có phần mở rộng kernel cần để Tailscale tạo giao diện mạng dạng TUN, bạn vẫn có thể làm nó hoạt động phần nào bằng -tun -userspace-networking trong chế độ mạng không gian người dùng
    Nhìn việc cấu hình Calibre của KOReader trỏ tới localhost:8081 thì có vẻ tôi cũng đã dùng proxy. Tôi thiết lập chuyện này đã lâu nhưng rõ ràng là làm được

  • Nhân nói về RSS, tôi muốn xin gợi ý về feed phù hợp với thiết bị đọc sách điện tử. Tôi đang nghĩ đến nội dung kiểu r/longreads

  • Khi chạy tailscaled trong script này, có lẽ cũng nên thêm --no-logs-no-support, dù cái tên nghe khá hù dọa: https://github.com/victoria-riley-barnett/koreader-tailscale...
    Nếu không, Tailscale sẽ thu thập metadata hành vi như host và cổng bạn kết nối tới mỗi lần dùng Kindle, cũng như thời điểm bắt đầu và kết thúc kết nối: https://tailscale.com/docs/features/logging#opt-out-of-clien...
    Nội dung kết nối thì được mã hóa, nhưng chỉ riêng metadata thôi cũng có thể tiết lộ khá nhiều về một cá nhân: https://kieranhealy.org/blog/archives/2013/06/09/using-metad...

    • Nếu lo chuyện ghi metadata, bạn cũng có thể tự host máy chủ điều khiển bằng Headscale. Như vậy có thể loại Tailscale hoàn toàn khỏi đường đi thay vì phải dựa vào lời hứa từ chối thu thập
  • Tôi đã dùng chiếc Kindle đầu tiên gần 10 năm, rồi mua một chiếc Kindle cũ vì pin bị phồng, và vẫn rất hài lòng. Khả năng sử dụng tốt, và nếu chia sẻ sách từ app điện thoại thì nó sẽ đồng bộ lên Kindle, nên tôi vẫn chưa muốn jailbreak
    Tôi thích Tailscale, nên có lẽ tôi cần mua một thiết bị đọc sách điện tử mã nguồn mở hoàn toàn có thể cài nó

  • Sẽ hữu ích nếu so sánh với các công cụ kỹ thuật hình thức hiện có để giúp các nhà phát triển nhanh chóng nắm được vị trí của Imiron

  • Sẽ thật tuyệt nếu có cách chạy WireGuard trên Kindle hoặc Kobo