Skip to content

Feature Remote access vi

SkimMail docs edited this page Sep 15, 2026 · 1 revision

English · Tiếng Việt · 中文

Remote access

Từ 1.4.2, SkimMail có thể tự phơi mình ra Internet công cộng qua một tunnel — không cần mở port inbound nào trên router — bằng Cloudflare Tunnel hoặc Tailscale, dưới dạng plugin tuỳ chọn tải về khi cần.

Vấn đề nó giải quyết

Một instance self-host bình thường sống trên mạng riêng: LAN, VPN, hoặc bind vào localhost sau một reverse proxy tự bạn chạy. Vậy là ổn ở nhà, nhưng "để tôi kiểm tra mail từ điện thoại bằng 4G" cần một địa chỉ có thể truy cập công khai, và cách thông thường để có nó — một VPS có IP công khai, reverse proxy của riêng bạn, chứng chỉ TLS — là hạ tầng mà hầu hết người self-host không muốn dựng chỉ vì việc này. Remote access cho bạn một địa chỉ HTTPS công khai (hoặc riêng-trong-tailnet) mà không cần bất kỳ thứ nào ở trên, đổi lại là bạn phải tin tưởng một vendor tunnel với metadata lưu lượng của mình.

Nằm ở đâu

Settings ▸ Remote access, chỉ owner — mọi route dưới /api/remote/* đều đòi vai owner.

Hai vendor

Vendor Plugin Cần gì Địa chỉ có ổn định không?
Cloudflare Tunnel, quick tunnel cloudflared (binary của chính Cloudflare, đã ghim SHA256) Không cần gì — không tài khoản, không token Không — mỗi lần khởi động ra một URL trycloudflare.com ngẫu nhiên mới
Cloudflare Tunnel, named tunnel cloudflared Một Cloudflare tunnel token và hostname bạn đã cấu hình cho nó trên Cloudflare
Tailscale skimmail-tunnel-ts (SkimMail tự build, trên tsnet) Một Tailscale auth key Có, trong tailnet của bạn; công khai chỉ khi bật Funnel

Cả hai plugin đều tải về khi cần — không gì ship sẵn trong binary gốc, gói apt hay image container — và được cài/cập nhật/gỡ qua đúng cơ chế như mọi plugin runtime khác; xem Operations ▸ Plugins để biết chỗ nó nằm trên đĩa, cách kiểm chữ ký manifest, và "đang dùng" nghĩa là gì khi cập nhật. Nút Install/Uninstall trên chính màn hình này chỉ lo phần đưa plugin lên đĩa; cập nhật một vendor plugin đã cài diễn ra ở Settings ▸ Plugins, không phải ở đây — màn hình này không có nút Update riêng.

Lưu cấu hình của một vendor và khởi động tunnel là một hành động duy nhất, Save & connect. Các ô token/auth-key là write-only: để trống khi sửa lần sau thì giữ nguyên cái đã lưu, giống quy ước của mọi ô bí mật khác trong Settings. Một Cloudflare token đi tới tiến trình con cloudflared qua biến môi trường, không bao giờ qua command line — command line thì ai chạy ps trên máy cũng nhìn thấy.

URL công khai và mã QR

Khi tunnel đang chạy, panel hiện URL sống, nút Copy, và một mã QR render ngay trên trình duyệt (không dịch vụ bên thứ ba nào thấy URL này) mà bạn quét thẳng bằng camera điện thoại — hữu ích khi không muốn gõ gì cả trên màn hình nhỏ. Một Cloudflare tunnel, dù kiểu nào, luôn công khai ngay khi đang chạy; một Tailscale tunnel chỉ công khai khi Funnel được bật, còn không thì chỉ truy cập được từ thiết bị trong chính tailnet của bạn.

Khởi động một tunnel sẽ dừng bất kỳ tunnel nào đang chạy trước đó — chỉ một tiến trình tunnel chạy tại một thời điểm, bất kể vendor nào.

Chốt chặn cứng AUTH_MODE=none

Mọi hành động thay đổi bất cứ gì ở đây — lưu cấu hình, cài, khởi động, dừng — đều bị từ chối thẳng khi server chạy AUTH_MODE=none (chế độ bỏ hẳn màn hình đăng nhập, dành cho mạng thực sự riêng tư). Màn hình thay các card vendor bằng một banner đỏ trơn, và API trả 409 auth_mode_none. Đây là chốt chặn cứng trong code, không phải cài đặt bạn ghi đè được từ UI: việc tắt xác thực và bật remote access được xem là loại trừ lẫn nhau một cách cố ý, vì một tunnel công khai vào một instance không có đăng nhập sẽ trao cả hộp thư cho bất kỳ ai tìm ra URL. Xem Bảo mật để biết AUTH_MODE=none dùng để làm gì.

Cảnh báo 2FA

Khi một tunnel đang công khai, màn hình hiện cảnh báo màu hổ phách nếu 2FA có vẻ đang tắt. Một giới hạn đáng biết: việc kiểm tra nhìn vào account id 1 cụ thể, không phải người đang đăng nhập. Trên instance chỉ-một-owner phổ biến thì đó chính là bạn nên cảnh báo là chính xác; trên instance nhiều người dùng nó phản ánh tài khoản được tạo đầu tiên, có thể không phải owner đang mở màn hình này và có thể chưa bật 2FA dù bạn đã bật.

Giới hạn

Có từ 1.4.2
Vai owner
Số vendor 2 — Cloudflare Tunnel, Tailscale
Đồng thời một tiến trình tunnel tại một thời điểm, tính chung cả hai vendor
Cảnh báo 2FA chỉ kiểm account id 1, không phải người gọi
Bị tắt cứng khi AUTH_MODE=none

Nó không làm gì

  • Không thêm lớp xác thực nào của riêng nó. Một tunnel công khai khiến việc đăng nhập của chính SkimMail là thứ duy nhất đứng giữa Internet và mail của bạn — đó chính là lý do tồn tại chốt AUTH_MODE=none và cảnh báo 2FA.
  • Không chạy được hai tunnel cùng lúc. Khởi động một cái sẽ dừng bất kỳ vendor nào đang chạy; không có load balancing hay failover giữa chúng.
  • Cloudflare quick tunnel không cho bạn kiểm soát địa chỉ. Chỉ named tunnel dùng token mới ổn định qua các lần restart.
  • Không tự quản lý chứng chỉ TLS. Cả hai vendor đều kết thúc TLS ở edge của riêng họ; SkimMail không bao giờ thấy hay lưu chứng chỉ cho việc này.

Xem thêm

  • Vận hành — plugin nằm ở đâu trên đĩa, cách cập nhật, và việc kiểm chữ ký manifest
  • Bảo mậtAUTH_MODE và vì sao none tắt hẳn tính năng này
  • Cấu hìnhSKIMMAIL_PLUGINS_URL, để trỏ việc lấy manifest plugin về một mirror riêng

SkimMail · skimmail@base101.app · 2026-09-15 · commit dffbb18

Clone this wiki locally