Tools7 min

aki-mcp-sv 1.7.0: ba chế độ ingress, thêm Cloudflare tunnel

aki-mcp-sv 1.7.0 thêm hai public edge ngoài Tailscale Funnel: Cloudflare tunnel (--tunnel) và PUBLIC_ORIGIN tự host, cho vùng hay rớt request.

aki-mcp-sv 1.7.0: ba chế độ ingress, thêm Cloudflare tunnel

aki-mcp-sv 1.7.0 (14/08/2026) cho phép đổi cổng public edge của server. Ngoài Tailscale Funnel mặc định, bạn có thể chạy qua một Cloudflare tunnel riêng bằng cờ --tunnel, hoặc trỏ thẳng vào một origin HTTPS bạn tự vận hành bằng biến PUBLIC_ORIGIN. Bản này sinh ra để gỡ đúng một tình huống: ở vài vùng mạng, edge của Funnel thỉnh thoảng rớt lẻ tẻ từng request dù trạng thái vẫn báo "on".

Vấn đề Funnel rớt lẻ từng request là gì?

Tailscale Funnel vẫn là đường mặc định và không đổi, nhưng ở một số vùng nó rớt lẻ tẻ từng request ngay cả khi tailscale funnel status báo "on". Triệu chứng dễ nhận: server khoẻ, funnel báo bật, nhưng client bên ngoài thỉnh thoảng không kết nối được, và log dừng ở bước xác thực mà không thấy request kế tiếp.

Đây không phải lỗi code của server mà là chuyện xảy ra ngay tại tầng TLS của edge Funnel. 1.7.0 không sửa Funnel, mà cho bạn một lối thoát: chuyển hẳn điểm kết thúc TLS sang một edge khác mà bạn kiểm soát.

Ba chế độ ingress và thứ tự ưu tiên

Từ 1.7.0 có ba cách để lộ server ra internet, chọn theo thứ tự ưu tiên rõ ràng: --tunnel > PUBLIC_ORIGIN > Tailscale Funnel. Cái nào được khai báo trước trong thứ tự đó thì thắng; không khai báo gì thì mặc định vẫn là Funnel như trước, hành vi cũ không đổi.

  • Cloudflare tunnel (--tunnel): chạy một named tunnel qua cloudflared làm edge public thay cho Funnel. Chỉ nhận credentials dạng JSON; --origin bắt buộc để cấp hostname; cổng forward cố định 9999.
  • PUBLIC_ORIGIN (tự mang edge của bạn): trỏ biến này vào bất kỳ origin HTTPS ổn định nào bạn tự vận hành, server sẽ bỏ qua Tailscale hoàn toàn.
  • Tailscale Funnel (mặc định): không truyền gì thì mọi thứ chạy y như cũ.

Dùng --tunnel và PUBLIC_ORIGIN thế nào?

Với Cloudflare tunnel, truyền file credentials JSON và hostname mà tunnel đã gắn:

bash
npm start -- --tunnel <cred.json> --origin https://your-host

Với origin tự vận hành, đặt PUBLIC_ORIGIN trỏ vào edge HTTPS của bạn rồi chạy như thường:

bash
PUBLIC_ORIGIN=https://your-host npm start
Cảnh báo

Chưa có số đo nào chứng minh Cloudflare bền hơn Funnel. Bài test tỷ lệ rớt request mới chỉ ở mức thiết kế. Vậy nên hãy xem --tunnelPUBLIC_ORIGIN là lựa chọn để dùng khi Funnel không ổn định ở vùng của bạn, không phải một tuyên bố rằng Cloudflare chắc chắn tốt hơn.

Được ai đó đưa cho file tunnel JSON thì sao?

Nếu một người sở hữu domain đã tạo sẵn tunnel và bản ghi DNS rồi gửi bạn file credentials JSON, bạn không cần tài khoản Cloudflare của riêng mình. Chỉ cần cài cloudflared và chạy với đúng origin mà họ cấp cho bạn.

Đường này biến việc onboarding thành một bước dán: người chủ domain lo phần hạ tầng edge, bạn chỉ chạy server trên máy và nhận request qua hostname họ đã gán.

Panel và vài chỗ chỉnh cho đúng

Panel mục 0 không còn báo Tailscale lỗi giả khi bạn cố ý chạy tunnel riêng; thay vào đó nó nêu đúng đường ingress đang hoạt động và origin đang phục vụ.

  • Chữ trong phần thiết lập nay gọi đúng ô "custom instructions" thay vì một ô "header"/"preferences" mà không app nào có.
  • Banner nhắc cập nhật AkiDevRule không còn hiện lại sau khi đã cập nhật.
  • Whitelist shell trên macOS thêm open, sips, ffmpeg để xử lý media cục bộ.

Ba lệnh media mới trên macOS

Whitelist shell macOS thêm ba lệnh cho việc xử lý ảnh và video ngay trên máy: open để mở file bằng app mặc định, sips để đổi kích thước và chuyển định dạng ảnh, ffmpeg để cắt ghép và chuyển mã video. Cả ba nằm trong whitelist deny-by-default như mọi lệnh khác, không phá vỡ mô hình chỉ-cho-phép-lệnh-được-khai-báo.

Xem thêm vì sao aki-mcp-sv chọn whitelist thay vì blocklist trong bài phân tích kiến trúc bảo mật, và bài giới thiệu dự án cho bức tranh tổng thể.

Bài liên quan