Tailscale không kết nối được: chẩn đoán direct, relay, DNS

Chia sẻ bài viết

Mục lục
Tailscale không kết nối được: chẩn đoán direct, relay, DNS

Trả lời nhanh: Chẩn đoán theo thứ tự: tailscale status (đăng nhập còn hạn? máy đích online?) → tailscale ping ten-may (nối direct hay via DERP?) → tailscale netcheck (UDP có bị chặn? DERP gần nhất ở đâu?) → kiểm tra firewall UDP 41641 → cuối cùng mới đến DNS/MagicDNS. 90% ca không kết nối rơi vào một trong năm tầng đó.

Các cụm từ được tìm nhiều đáng ngạc nhiên quanh Tailscale không phải tính năng, mà là not connecting, login button not working, dns not working, trên đủ Windows, Mac, Ubuntu, Android. Bài này gom toàn bộ thành một quy trình chẩn đoán 5 tầng dùng chung cho mọi hệ điều hành, với nguyên tắc quan trọng nhất: xác định đúng tầng hỏng trước khi sửa, vì triệu chứng giống nhau có thể đến từ nguyên nhân rất khác nhau.

Tóm tắt nhanh
  • Tầng 1, danh tính: key hết hạn, chưa đăng nhập, máy bị xóa khỏi tailnet
  • Tầng 2, đường đi: tailscale ping phân biệt direct (khỏe) và via DERP (chậm)
  • Tầng 3, UDP: tailscale netcheck lộ ngay mạng chặn UDP hay NAT quá chặt
  • Tầng 4, firewall: UDP 41641 hai đầu, antivirus, mạng công ty
  • Tầng 5, DNS: gọi IP 100.x được mà gọi tên không được = lỗi MagicDNS, không phải lỗi mạng

Tầng 1: danh tính, status nói gì trước tiên

Mọi phiên chẩn đoán bắt đầu bằng:

tailscale status

Ba tình huống hay gặp: Logged out, chạy tailscale up (hoặc tailscale login) đăng nhập lại; máy đích hiện offline, vấn đề ở đầu kia, không phải máy bạn (đầu kia tắt máy, rớt mạng, hoặc dịch vụ tailscaled chết, nhờ ai đó tại chỗ chạy systemctl restart tailscaled); NeedsLogin / key expired, khóa máy hết hạn định kỳ, đăng nhập lại, và với server hãy vào admin console bật Disable key expiry để không tái diễn. Nút Sign in trên app không phản hồi (bệnh riêng của Windows/Android) thường do trình duyệt mặc định, đăng nhập bằng CLI là đường vòng chắc ăn.

Tầng 2: đường đi, direct hay relay quyết định trải nghiệm

Kết nối được nhưng chậm, giật, copy file ì ạch? Hỏi Tailscale xem gói tin đang đi đường nào:

tailscale ping vps-tnd
# pong from vps-tnd (100.x.y.z) via 203.0.113.7:41641 in 4ms   <- DIRECT: khoe
# pong from vps-tnd (100.x.y.z) via DERP(sin) in 85ms          <- RELAY: cham

Direct là P2P thẳng, độ trễ gần bằng mạng trần. Via DERP nghĩa là hai máy không đục thủng NAT được, phải đi vòng máy chủ chuyển tiếp (ví dụ DERP sin = Singapore), vẫn thông nhưng chậm và giới hạn băng thông. Relay không phải lỗi, là chế độ dự phòng; việc của bạn là tìm xem vì sao không direct được, sang tầng 3.

Tầng 3: netcheck, soi chất lượng mạng đang đứng

tailscale netcheck

Đọc nhanh các dòng quan trọng: UDP: false, mạng bạn đang đứng chặn UDP hoàn toàn (nhiều wifi công ty, khách sạn), mọi kết nối buộc qua relay, đổi mạng hoặc xin mở UDP; MappingVariesByDestIP: true, NAT dạng khó (hard NAT), đục lỗ thất bại là bình thường, hai đầu cùng hard NAT gần như chắc chắn relay; Nearest DERP, relay gần nhất đang là region nào, người ở Việt Nam thấy DERP xa (Tokyo, Sydney) sẽ chịu độ trễ tương ứng khi rơi về relay. Đây cũng là lý do đội dùng nhiều nên tự dựng DERP tại Việt Nam trên VPS, bài Headscale có nhắc cách nhúng DERP riêng.

Tầng 4: firewall và những kẻ chặn UDP thầm lặng

Tailscale cần UDP ra vào tự do để direct; thủ phạm chặn thường gặp theo thứ tự: ufw/iptables trên server, cho phép cổng WireGuard của Tailscale: sudo ufw allow 41641/udp (không bắt buộc để chạy, nhưng tăng mạnh tỉ lệ direct); Windows Firewall/antivirus, đảm bảo tailscale.exe được phép ở cả profile Private lẫn Public, vài antivirus có mục chặn VPN riêng; router/mạng công ty, một số chặn UDP outbound trừ DNS, hoặc symmetric NAT triệt để; kiểm chứng bằng cách phát 4G từ điện thoại cho laptop thử, direct được qua 4G tức thủ phạm là mạng cũ.

Tầng 5: DNS, khi mạng thông mà tên không gọi được

Dấu hiệu nhận dạng: ping 100.x.y.z chạy ngon nhưng ssh vps-tnd báo không phân giải được tên. Đây là lỗi MagicDNS, không phải lỗi kết nối. Kiểm tra theo chuỗi: MagicDNS có đang bật trong admin console (mục DNS)? tailscale status đầu ra có dòng tên miền tailnet? Trên Linux, resolvectl status xem interface tailscale0 có DNS 100.100.100.100? Máy đang tự làm DNS server (Pi-hole…) thì xem cách chung sống trong bài Ubuntu toàn tập. Trong lúc chưa xử xong, dùng thẳng IP 100.x, mạng vẫn chạy đủ, chỉ thiếu phần gọi tên.

Mẹo chốt: cô lập vấn đề bằng phép thử chéo

Khi bí, đừng đoán, cô lập: thử máy khác cùng mạng (hỏng theo mạng hay theo máy?), thử mạng khác cùng máy (4G là mạng đối chứng tốt), thử chiều ngược lại (A ping B hỏng nhưng B ping A chạy?), và restart có thứ tự: systemctl restart tailscaled trước, reboot sau, cài lại là phương án cuối. Ghi lại tổ hợp nào hỏng, nếu phải hỏi cộng đồng hay support, một dòng kết quả netcheck + ping đáng giá hơn mười dòng mô tả cảm giác.

Câu hỏi thường gặp

Vì sao Tailscale chạy được ở nhà mà lên công ty lại không?

Gần như chắc chắn do mạng công ty chặn UDP hoặc dùng NAT/proxy nghiêm ngặt, chạy tailscale netcheck sẽ thấy UDP: false. Kết nối khi đó rơi về relay qua cổng 443 (thường vẫn thông); nếu công ty chặn cả đường đó, cần trao đổi với IT.

DERP là gì và có đọc được dữ liệu của tôi không?

DERP là máy chủ chuyển tiếp của Tailscale dùng khi hai máy không nối thẳng được. Nó chỉ chuyển gói tin đã mã hóa WireGuard đầu-cuối, vận hành relay không giải mã được nội dung. Trả giá duy nhất là độ trễ và băng thông.

Tailscale hiện connected mà vẫn không vào được dịch vụ trên máy đích?

Mạng thông không có nghĩa dịch vụ mở. Kiểm tra dịch vụ trên máy đích có lắng nghe trên IP tailnet không (ss -tlnp), firewall máy đích có cho cổng đó qua tailscale0, và ACL tailnet có cho phép cặp máy-cổng này.

Cứ phải đăng nhập lại Tailscale sau vài tháng, bình thường không?

Bình thường, khóa máy có hạn (mặc định theo chu kỳ của tailnet) như một lớp an toàn. Server và máy không người trực nên bật Disable key expiry trong admin console, hoặc vào mạng bằng auth key gắn tag để không hết hạn theo user.

Hạ tầng VPS tại Việt Nam của TND
Cloud VPS linh hoạt và VPS NVMe xung cao, IP công cộng riêng, đặt tại Việt Nam
Node hay rơi relay nhất luôn là máy sau NAT gia đình, còn VPS với IP công cộng gần như luôn direct với mọi thiết bị, kiêm được cả DERP tự host tại Việt Nam cho đội của bạn. Cloud VPS TND ping nội địa vài ms, bàn giao 5 phút; cần hiệu năng I/O có dòng VPS NVMe.
Chọn gói VPS giá rẻ phù hợp nhu cầu của bạnCần I/O mạnh? Xem VPS NVMe

Bài viết liên quan