
Trả lời nhanh: Nhóm lỗi 403 / session expired / logged out đều quy về một gốc: phiên xác thực không còn hiệu lực. Xử theo thứ tự: tailscale up (hoặc tailscale login) đăng nhập lại máy → nếu là admin console báo session expired thì đăng nhập lại trình duyệt → máy chạy dài hạn bị lặp lỗi thì vào console bật Disable key expiry để khóa máy không bao giờ hết hạn nữa.
Đây là nhóm lỗi Tailscale gặp nhiều nhất vì nó đến theo lịch: khóa máy (node key) có hạn dùng, hết hạn là mọi kết nối đứng hình kèm thông báo 403 hoặc logged out, thường vào đúng lúc bạn cần SSH gấp. Bài này tách từng thông báo trong nhóm, chỉ gốc rễ của mỗi ca và cách chặn tái diễn vĩnh viễn cho server.
error 403: user is not logged in: máy chưa/hết xác thực:tailscale uplà xong đa số casession expired, log in again: phiên admin console trên trình duyệt hết hạn, không liên quan máyyou are logged outkèm last login error, tailscaled mất phiên: đọc phần lỗi kèm theo để biết gốc- Server bị lặp lỗi theo chu kỳ = key expiry: bật Disable key expiry trong console một lần là hết
- Nút Sign in bấm không phản hồi là bệnh khác (webview), đăng nhập vòng qua CLI
Ba thông báo, ba chỗ hỏng khác nhau
Cùng chữ đăng nhập nhưng ba lỗi này sống ở ba tầng: error 403 user is not logged in nói về máy, tailscaled trên thiết bị không có phiên hợp lệ với control server; session expired nói về trình duyệt, phiên đăng nhập admin console hết hạn, mạng của bạn vẫn chạy bình thường; you are logged out là trạng thái máy đã bị đăng xuất, kèm dòng the last login error was... cho biết vì sao. Xác định đúng tầng trước khi gõ lệnh, sửa nhầm tầng là lý do nhiều người loay hoay cả buổi.
Xử ca máy: tailscale up và các biến thể
tailscale status
# NeedsLogin / Logged out -> dang nhap lai:
sudo tailscale up
# hoac chi dang nhap, khong dong den cau hinh:
tailscale loginLệnh in ra link, mở trên trình duyệt bất kỳ, xác thực, máy sống lại ngay. Máy headless dùng auth key: sudo tailscale up --auth-key=tskey-auth-xxxxx. Nhớ bẫy quen thuộc: tailscale up reset các cờ không khai lại, máy đang làm exit node/subnet router thì khai đủ cờ cũ, hoặc đăng nhập bằng tailscale login rồi chỉnh lẻ bằng tailscale set (chi tiết trong bài Ubuntu toàn tập).
Chặn tái diễn cho server: Disable key expiry
Khóa máy mặc định hết hạn theo chu kỳ của tailnet (thường 180 ngày), hợp lý cho laptop, tai họa cho server không người trực: đến hẹn là VPS văng khỏi mạng giữa đêm. Vào admin console → Machines → máy cần giữ → menu ba chấm → Disable key expiry. Làm một lần cho mọi server, VPS, router trong mạng. Cách bền hơn cho hạ tầng nhiều máy: vào mạng bằng auth key gắn tag (tag:server), node theo tag không hết hạn theo user ngay từ đầu.
Session expired trên console và lỗi 401 khi gọi API
Admin console báo session expired: chỉ cần đăng nhập lại trình duyệt (phiên web ngắn hạn là chủ đích bảo mật); không có gì hỏng ở mạng. Error 401 khi gọi Tailscale API (script tự động, CI): API key hết hạn, key API có hạn tối đa 90 ngày, tạo key mới trong Settings → Keys và cập nhật vào secret của script. Đừng nhầm API key (gọi REST API) với auth key (đưa máy vào mạng), hai loại khác nhau, lỗi chữ giống nhau.
Nút Sign in không phản hồi: bệnh riêng, thuốc riêng
Bấm Sign in mà không có gì xảy ra không phải lỗi phiên, là webview/trình duyệt mặc định gãy, gặp nhiều trên Windows và Android. Thuốc theo nền tảng: Windows, cài Microsoft Edge WebView2 Runtime, đặt lại trình duyệt mặc định, hoặc né hẳn bằng CLI tailscale login; Android, cập nhật Android System WebView trên Play Store. Toàn cảnh chẩn đoán kết nối (khi đăng nhập xong vẫn không thông) nằm ở bài chẩn đoán 5 tầng.
Con số về hạn dùng, lấy từ tài liệu Tailscale
| Loại | Hạn mặc định | Ghi chú |
|---|---|---|
| Khóa máy (node key) | 180 ngày cho tailnet mới | Hết hạn là mọi kết nối tới và đi từ máy đó ngừng hoạt động |
| Máy đã gắn thẻ (tag) | Không hết hạn | Tài liệu Tailscale ghi rõ: máy được gắn thẻ lần đầu và xác thực xong thì hạn khóa mặc định bị tắt |
| Phiên đăng nhập trang quản trị | Ngắn, hết hạn thường xuyên | Chỉ ảnh hưởng trình duyệt, không ảnh hưởng mạng đang chạy |
Điểm quan trọng nhất nằm ở dòng thứ hai: đưa máy chủ vào mạng bằng khóa xác thực có gắn thẻ thì node không hết hạn ngay từ đầu, khỏi phải nhớ vào bật tắt cho từng máy. Đây là cách làm đúng cho hạ tầng nhiều máy, còn nút Disable key expiry là cách chữa cho những máy đã lỡ vào mạng theo kiểu cũ.
Đưa máy chủ vào mạng theo cách không bao giờ hết hạn
# 1. Trong access control cua tailnet, khai thu so huu the:
# "tagOwners": { "tag:server": ["autogroup:admin"] }
# 2. Tao auth key: Settings > Keys > Generate auth key
# bat Reusable, gan Tags = tag:server
# 3. Tren may chu:
sudo tailscale up --auth-key=tskey-auth-xxxxx --advertise-tags=tag:server
tailscale status # kiem tra may hien dung ten va theKiểm nhanh máy nào sắp hết hạn: mở trang quản trị, mục Machines, cột Expires. Sắp xếp theo cột đó là thấy ngay danh sách máy cần xử lý trước. Máy đã tắt hạn khóa hiển thị chữ Disabled.
Ba tình huống hay gặp ở doanh nghiệp Việt Nam
- VPS văng khỏi mạng lúc nửa đêm, không SSH vào được. Đúng chu kỳ 180 ngày kể từ ngày đưa máy vào mạng. Lối vào cuối cùng là console khẩn cấp của nhà cung cấp VPS, đăng nhập qua đó rồi chạy
tailscale up. Đây là lý do phải giữ thông tin đăng nhập console ở nơi khác, không phải chỉ trên máy đó. - Kịch bản tự động hoặc CI báo lỗi 401. Đây là khóa gọi API hết hạn, khác hẳn khóa đưa máy vào mạng. Tạo khóa mới trong mục Settings, Keys, rồi cập nhật vào nơi lưu bí mật của kịch bản. Đừng nhầm hai loại khóa, tên gọi giống nhau nhưng dùng cho hai việc khác nhau.
- Nhân viên nghỉ việc, máy của họ vẫn trong mạng. Xóa tài khoản người đó khỏi tailnet thì các máy do họ đưa vào cũng bị ảnh hưởng, trừ máy đã gắn thẻ vì máy gắn thẻ thuộc về thẻ chứ không thuộc về người. Thêm một lý do nữa để mọi máy chủ đều gắn thẻ ngay từ đầu.
Danh sách kiểm trước khi coi là xong
- Mọi máy chủ và thiết bị mạng đều gắn thẻ hoặc đã tắt hạn khóa.
- Khóa xác thực dùng cho máy chủ là loại tái sử dụng, không phải loại dùng một lần và không phải loại tự xóa khi máy offline.
- Có ít nhất hai người trong tổ chức vào được trang quản trị, tránh việc một người nghỉ là không ai quản lý được.
- Ghi lại ngày đưa từng máy chủ vào mạng, hoặc đơn giản hơn là đặt lịch nhắc rà cột Expires mỗi quý.
- Giữ đường vào dự phòng cho mọi máy chủ quan trọng, không phụ thuộc hoàn toàn vào mạng riêng.
Câu hỏi thường gặp
Vì sao Tailscale bắt đăng nhập lại dù tôi không làm gì?
Khóa máy có hạn dùng mặc định, đến hạn là phải xác thực lại, đây là thiết kế an toàn chứ không phải lỗi. Máy chạy dài hạn thì tắt cơ chế này bằng Disable key expiry trong admin console.
Đăng nhập lại có mất cấu hình exit node, subnet router không?
Mất nếu bạn đăng nhập bằng tailscale up mà không khai lại cờ. Dùng tailscale login (chỉ xác thực) hoặc khai đủ cờ cũ trong lệnh up. Kiểm tra sau đăng nhập bằng tailscale status và admin console.
Lỗi 403 xuất hiện trên một máy nhưng máy khác vẫn chạy?
Bình thường, khóa mỗi máy hết hạn theo mốc riêng (tính từ lần xác thực của máy đó). Máy nào báo thì đăng nhập lại máy đó.
Bị logged out ngay sau khi vừa đăng nhập thành công?
Xem dòng last login error đi kèm: thường là fetch control key (mạng/giờ hệ thống, có bài riêng trong series) hoặc node bị xóa/tài khoản bị gỡ khỏi tailnet trong admin console, kiểm tra mục Machines xem máy còn tồn tại không.
Bài viết liên quan
- Tailscale không kết nối được: chẩn đoán direct, relay, DNS
- Lỗi fetch control key và invalid key trong Tailscale
- Tailscale trên Ubuntu toàn tập: headless, autostart, DNS
- Proxy cho Playwright Puppeteer Selenium 2026
- ImmuDB vs PostgreSQL: chọn DB nào cho audit log startup?
- Cài Proxmox build cloud nhỏ tại nhà: tự host vs thuê VPS, khi nào đáng?
- Migrate server từ Việt Nam sang US: checklist 2026
- VPS US cho dropship Amazon Etsy: setup + bản quyền
- Chrome DevTools MCP cho Claude, Codex, Gemini - AI agent thật sự control browser, debug như senior dev



