Cách sửa lỗi cài đặt Tailscale trên Ubuntu
Lỗi cài đặt Tailscale trên Ubuntu thường do apt không tìm thấy kho lưu trữ hoặc sai khóa keyring. Bài viết hướng dẫn bạn kiểm tra codename và cấu hình lại source list để fix lỗi.
Tại sao lỗi cài đặt Tailscale trên Ubuntu lại là lỗi apt
Lỗi cài đặt Tailscale trên Ubuntu hầu như luôn xảy ra trước khi bất kỳ mã nguồn nào của Tailscale được thực thi. Đó là các lỗi của apt. Ubuntu không phát hành gói tailscale của riêng họ: kiểm tra với kho lưu trữ gói của Ubuntu vào tháng 8 năm 2026, các kết quả khớp duy nhất là các thư viện hỗ trợ Go và python3-tailscale, vì vậy daemon phải được lấy từ kho lưu trữ apt của chính Tailscale tại pkgs.tailscale.com.
Việc thêm kho lưu trữ đó sẽ tạo ra hai tệp tin. Một tệp cho apt biết các gói nằm ở đâu. Tệp còn lại chứa khóa công khai mà apt sử dụng để kiểm tra chữ ký trên chỉ mục của kho lưu trữ. Gần như mọi lỗi dưới đây đều do một trong hai tệp đó bị sai, hoặc do một thiết bị nằm giữa apt và kho lưu trữ từ chối yêu cầu.
Đây là các lệnh mà Tailscale công bố cho Ubuntu 24.04:
sudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/noble.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/noble.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list
sudo apt-get update && sudo apt-get install tailscalenoble là codename của Ubuntu 24.04 và nó xuất hiện trong cả hai URL. Lệnh thứ hai ghi một dòng chú thích và một dòng deb vào /etc/apt/sources.list.d/tailscale.list, và cat sẽ cho bạn thấy chính xác những gì đã được ghi vào đó.
cat /etc/apt/sources.list.d/tailscale.listHãy đọc dòng deb đó như một địa chỉ gồm bốn trường: tùy chọn trong ngoặc vuông [signed-by=/usr/share/keyrings/tailscale-archive-keyring.gpg], sau đó là cơ sở của kho lưu trữ, cụ thể là pkgs.tailscale.com/stable/ubuntu được truy cập qua https, tiếp theo là suite noble, và cuối cùng là thành phần main. apt kết hợp cơ sở và suite thành một URL duy nhất rồi tải về: https://pkgs.tailscale.com/stable/ubuntu/dists/noble/InRelease. Nếu bạn có thể tự tải URL đó theo cách thủ công, thì apt cũng có thể tải được. Đó là toàn bộ quy trình chẩn đoán.
Đọc lỗi apt trước khi thay đổi bất cứ thứ gì
Hãy chạy lệnh update riêng lẻ để không có nội dung nào khác làm trôi mất thông báo lỗi.
sudo apt updateMột repository của bên thứ ba bị lỗi sẽ trông như thế này. Codename và địa chỉ IP trên máy của bạn sẽ khác.
E: Failed to fetch https://pkgs.tailscale.com/stable/ubuntu/dists/wilma/InRelease 404 Not Found [IP: 203.0.113.9 443]
E: Some index files failed to download. They have been ignored, or old ones used instead.Hai thông tin trong kết quả đó quyết định bước tiếp theo của bạn: mã trạng thái và URL đầy đủ trên dòng E: Failed to fetch. Đừng đoán dựa trên dòng tóm tắt ở cuối. Hãy copy URL đó và tự truy vấn máy chủ.
curl -sS -o /dev/null -w '%{http_code}\n' https://pkgs.tailscale.com/stable/ubuntu/dists/noble/InReleaseLệnh đó in ra 200 cho một codename mà Tailscale công bố. Kiểm tra vào tháng 8 năm 2026, noble trả về một index đã ký chứa Origin: Tailscale và Codename: noble. Hãy thay thế noble bằng codename từ lỗi của chính bạn và chạy lại lệnh. Nếu curl nhận được 200 trong khi apt báo lỗi, thì repository vẫn ổn và vấn đề nằm ở cấu hình của chính apt.
Mã trạng thái cho bạn biết điều gì
404 Not Foundnghĩa là repository không có file tại đường dẫn đó. Trênpkgs.tailscale.com, đây hầu như luôn là codename trong URL.403 Forbiddennghĩa là có phản hồi nhưng bị từ chối. Tính đến tháng 8 năm 2026, repository này trả về 404 cho đường dẫn không tồn tại, vì vậy mã 403 chỉ ra rằng có một proxy, thiết bị lọc hoặc firewall nằm giữa server của bạn và Tailscale.401 Unauthorizedhoặc407 Proxy Authentication Requirednghĩa là proxy yêu cầu thông tin xác thực mà apt không gửi đi.- Lỗi kết nối hoặc lỗi phân giải tên miền nghĩa là không có cuộc hội thoại HTTP nào diễn ra. Hãy chuyển sang phần IPv6.
Codename trong URL là thứ mà Tailscale không công bố
Tailscale xây dựng một thư mục riêng cho mỗi codename của Ubuntu. Nếu bạn yêu cầu một codename không tồn tại, bạn sẽ nhận lỗi 404 vì không có dists/<codename> trên máy chủ để phản hồi. Danh sách của nhà cung cấp tại pkgs.tailscale.com/stable cho biết những codename nào đang tồn tại. Vào tháng 8 năm 2026, danh sách đó chạy từ 16.04 đến resolute, tức là Ubuntu 26.04.
Cách thông thường khiến codename sai xuất hiện là do lsb_release -cs trên một bản phân phối dựa trên Ubuntu nhưng không phải là Ubuntu. Trên Linux Mint 22, lệnh đó in ra wilma, đây là codename riêng của Mint và Tailscale không phát hành gói cho nó. Hãy đọc phiên bản Ubuntu nền tảng thay thế.
. /etc/os-release
echo "$VERSION_CODENAME $UBUNTU_CODENAME"Trên Ubuntu, cả hai giá trị đều giống nhau. Trên một bản phái sinh, VERSION_CODENAME là tên của bản phái sinh đó và UBUNTU_CODENAME là bản phát hành Ubuntu mà nó được xây dựng dựa trên. Hãy sử dụng UBUNTU_CODENAME trong cả hai URL.
Cách thứ hai là nâng cấp bản phát hành. Công cụ nâng cấp của Ubuntu sẽ vô hiệu hóa các nguồn của bên thứ ba khi chạy, vì vậy sau khi nâng cấp Ubuntu 24.04 lên 26.04, bạn sẽ thấy /etc/apt/sources.list.d/tailscale.list bị comment lại hoặc vẫn đang trỏ đến noble trên một máy hiện đã là resolute. Hãy sửa lỗi này bằng cách chạy lại hai lệnh curl với codename mới, chúng sẽ ghi đè lên cả hai file.
Cách thứ ba là vấn đề thời điểm. Trong vài tuần sau khi một bản phát hành Ubuntu mới ra mắt, codename đó tồn tại ở Canonical trước khi nó có mặt tại Tailscale. Việc trỏ file vào codename LTS trước đó thường vẫn cài đặt được vì các gói này có ít dependency, nhưng khi đó bạn đang chạy bản build dành cho một bản phát hành cũ hơn. Hãy kiểm tra những gì bạn thực sự nhận được bằng apt policy tailscale và chuyển file về đúng codename khi nó đã xuất hiện.
Keyring trống và lệnh ghi file không báo lỗi
Lỗi này rất âm thầm và là nguyên nhân của hầu hết các trường hợp thất bại. Hãy xem lại lệnh keyring:
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/noble.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/nullShell xây dựng toàn bộ pipeline trước khi bất kỳ chương trình nào chạy, vì vậy sudo tee mở đường dẫn keyring và cắt nó về 0 byte ngay lập tức. Nếu curl sau đó thất bại, và -f khiến nó dừng lại khi gặp bất kỳ lỗi HTTP nào, curl sẽ không ghi gì cả và thoát với mã khác 0. File vẫn ở mức 0 byte. Trạng thái thoát của một pipeline là trạng thái của lệnh cuối cùng, đó là tee, lệnh này đã chạy thành công. Không có gì được in ra, và bạn chuyển sang lệnh tiếp theo với niềm tin rằng key đã được cài đặt.
Hãy kiểm tra file, đừng kiểm tra lệnh tạo ra nó.
ls -l /usr/share/keyrings/tailscale-archive-keyring.gpg
gpg --show-keys /usr/share/keyrings/tailscale-archive-keyring.gpgMột keyring hợp lệ sẽ in ra một dòng pub và một dòng uid có tên Tailscale. Một file 0 byte sẽ in ra gpg: no valid OpenPGP data found. và không có gì khác. Một file chứa trang lỗi HTML cũng in ra kết quả tương tự, và lệnh head -c 80 trên file đó sẽ hiển thị phần đầu của một trang web thay vì dữ liệu key nhị phân.
Với một keyring không chứa key hợp lệ, sudo apt update sẽ tải xuống index và sau đó từ chối nó. Bạn sẽ nhận được một dòng W: GPG error có tên repository Tailscale và suite của nó, văn bản The following signatures couldn't be verified because the public key is not available: NO_PUBKEY theo sau là một id key gồm 16 ký tự, và bên dưới đó là lỗi thông báo repository không được ký. Hãy lưu ý những gì apt đang báo cho bạn: nó đã tải xuống index thành công, nhưng không thể kiểm tra chữ ký. Đó là vấn đề về key, không phải vấn đề về mạng. Nếu file keyring hoàn toàn không tồn tại, thông báo sẽ khác và chỉ đích danh đường dẫn với Could not open file /usr/share/keyrings/tailscale-archive-keyring.gpg.
Hãy ghi key theo hai bước để một lần tải xuống thất bại không thể làm hỏng keyring đang hoạt động.
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/noble.noarmor.gpg -o /tmp/tailscale.gpg
gpg --show-keys /tmp/tailscale.gpg
sudo install -m 0644 -o root -g root /tmp/tailscale.gpg /usr/share/keyrings/tailscale-archive-keyring.gpgDòng ở giữa là chốt chặn: nếu nó không in ra uid của Tailscale, hãy dừng lại và không copy file. Mode 0644 rất quan trọng vì apt hạ quyền xuống user _apt không đặc quyền để tải và xác thực, vì vậy một keyring mà chỉ root mới có thể đọc là keyring mà apt không thể sử dụng.
Cả file .list và .sources đều mô tả cùng một repository
Ubuntu đã chuyển các nguồn của chính họ sang định dạng deb822 từ phiên bản Ubuntu 24.10, trong đó /etc/apt/sources.list trở thành /etc/apt/sources.list.d/ubuntu.sources. Tailscale vẫn phát hành theo định dạng một dòng. Kiểm tra vào tháng 8 năm 2026, không có file .sources nào để tải về từ pkgs.tailscale.com: URL đó trả về lỗi 404. Vì vậy, nếu máy của bạn có file tailscale.sources, thì bạn hoặc một hướng dẫn nào đó đã tự tạo ra nó, và nếu tailscale.list vẫn còn đó, apt hiện đang hiểu là có cùng một repository được mô tả hai lần.
Trường hợp nhẹ là một cảnh báo xuất hiện trong mỗi lần cập nhật:
W: Target Packages (main/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list.d/tailscale.list:1 and /etc/apt/sources.list.d/tailscale.sources:1Trường hợp nghiêm trọng xảy ra khi hai file chỉ định các đường dẫn keyring khác nhau, vì apt không thể quyết định key nào quản lý repository đó. Nó sẽ in ra E: Conflicting values set for option Signed-By regarding source, theo sau là repository và suite của nó, cùng hai đường dẫn keyring với != ở giữa, và sau đó từ chối thực hiện tiếp:
E: The list of sources could not be read.Lỗi đó chặn mọi lệnh apt, không chỉ riêng lệnh cập nhật, cho đến khi một trong hai file bị xóa bỏ. Lỗi tương tự cũng xuất hiện với các repository của chính Ubuntu, và lỗi trùng lặp nguồn apt sau khi chuyển đổi deb822 sẽ hướng dẫn cách xử lý cho trường hợp tổng quát.
Hãy tìm mọi file có nhắc đến Tailscale trước khi bạn xóa bất cứ thứ gì.
grep -RIn tailscale /etc/apt/sources.list /etc/apt/sources.list.d/Hãy giữ lại một file. Để vô hiệu hóa file còn lại mà không làm mất nó, hãy đổi tên file đó: apt chỉ đọc các file kết thúc bằng .list hoặc .sources, vì vậy tailscale.list.bak sẽ bị bỏ qua và vẫn nằm trên đĩa để bạn tham khảo.
Viết file nguồn deb822 đúng cách
Nếu bạn thích định dạng mới hơn, hãy chuyển đổi file hiện có thay vì gõ lại địa chỉ repository, vì lỗi đánh máy chính là nguyên nhân gây ra các lỗi nêu trên. Các bản phát hành apt gần đây có sẵn công cụ chuyển đổi giúp viết lại các file .list thành các stanza deb822 và chuyển tùy chọn signed-by thành Signed-By.
apt modernize-sources --help
sudo apt modernize-sourcesUbuntu 24.04 sử dụng phiên bản apt cũ hơn phiên bản có subcommand này, vì vậy dòng trợ giúp sẽ cho bạn biết ngay lập tức hệ thống của bạn có hỗ trợ hay không. Nếu không, hãy tạo stanza từ dòng đã có sẵn trên ổ đĩa, để phần cơ sở được lấy từ file của nhà cung cấp thay vì từ bàn phím của bạn.
. /etc/os-release
{
echo 'Types: deb'
echo "URIs: $(awk '/^deb /{print $3}' /etc/apt/sources.list.d/tailscale.list)"
echo "Suites: $UBUNTU_CODENAME"
echo 'Components: main'
echo 'Signed-By: /usr/share/keyrings/tailscale-archive-keyring.gpg'
} | sudo tee /etc/apt/sources.list.d/tailscale.sources
sudo rm /etc/apt/sources.list.d/tailscale.listLệnh đó sẽ in ra stanza vừa được viết, để bạn có thể kiểm tra lại các trường trước khi thực hiện apt update tiếp theo. Có bốn trường cần nắm rõ chi tiết, vì mỗi trường sẽ gây lỗi theo cách khác nhau:
URIsdừng lại ở phần gốc của repository. Nếu bạn dán phầndists/noblevào đó, hệ thống sẽ báo lỗi 404, vì apt sẽ tự động thêmdists/<suite>vào sau và yêu cầudists/noble/dists/noble.Suiteslà codename, chính là giá trị nằm ở giữa định dạng một dòng cũ.Signed-Bynhận đường dẫn tuyệt đối đến file keyring. Nó cũng chấp nhận một key đã được armored đặt ngay bên dưới, trong đó mỗi dòng của key phải thụt vào một khoảng trắng và mỗi dòng trống bên trong key được viết bằng một dấu chấm.Enabled: nodùng để tắt một nguồn mà không cần xóa nó, cách này dễ hoàn tác hơn so với việc đổi tên và dễ giải thích cho người kế nhiệm hơn.
Hãy giữ mỗi file một stanza cho các repository của bên thứ ba và đặt một dòng trống giữa các stanza nếu bạn để nhiều stanza trong cùng một file. Chỉ mục repository liệt kê amd64 và arm64 trong số các kiến trúc của nó, vì vậy một VPS ARM không cần thêm trường Architectures.
Một proxy ở giữa trả về lỗi 403
Vì một đường dẫn không tồn tại trong repository này sẽ trả về lỗi 404, nên lỗi 403 có nghĩa là một thành phần khác đã phản hồi thay cho nó. Hãy bắt đầu với cấu hình của chính apt, vì proxy được thiết lập ở đó chỉ áp dụng cho apt chứ không áp dụng cho lệnh curl tương tác của bạn.
grep -RIn -i proxy /etc/apt/apt.conf.d/ /etc/apt/apt.conf
sudo apt-config dump | grep -i 'acquire::http'Sau đó, hãy theo dõi những gì apt thực sự gửi đi.
sudo apt -o Debug::Acquire::http=1 updateLệnh đó sẽ in ra dòng yêu cầu, các header mà apt đã gửi và proxy mà nó đã kết nối qua (nếu có). Hãy so sánh nó với một lệnh curl thông thường đến cùng URL đó. Nếu curl trả về 200 còn apt trả về 403, thì hai yêu cầu này khác nhau ở một điểm nào đó mà thiết bị trung gian quan tâm, và nguyên nhân thường gặp nhất là user agent:
curl -sS -o /dev/null -w '%{http_code}\n' -A 'Debian APT-HTTP/1.3' https://pkgs.tailscale.com/stable/ubuntu/dists/noble/InReleaseNếu lệnh đó trả về 403 trong khi curl mặc định trả về 200, thì một thiết bị lọc đang từ chối apt dựa trên tên của nó. Cách khắc phục nằm ở thiết bị đó, không phải trên máy chủ của bạn. Một proxy doanh nghiệp có kiểm tra TLS sẽ hoạt động theo cách khác: apt sẽ báo lỗi xác thực chứng chỉ thay vì mã trạng thái, vì chứng chỉ mà nó nhận được do proxy cấp chứ không phải do cơ quan cấp chứng chỉ của Tailscale. Một firewall egress trên cloud chỉ cho phép truy cập các mirror của Ubuntu là một nguyên nhân phổ biến khác, và cách khắc phục ở đó là cho phép pkgs.tailscale.com trên firewall.
Chỉ sử dụng IPv6 cho egress và các lỗi không phải mã trạng thái
Nếu apt không nhận được phản hồi HTTP, hãy kiểm tra từng giao thức một.
curl -4 -sS -o /dev/null -w 'v4 %{http_code}\n' https://pkgs.tailscale.com/stable/ubuntu/dists/noble/InRelease
curl -6 -sS -o /dev/null -w 'v6 %{http_code}\n' https://pkgs.tailscale.com/stable/ubuntu/dists/noble/InReleaseKhi IPv4 phản hồi nhưng IPv6 bị treo hoặc báo lỗi Network is unreachable, apt thất bại vì thư viện phân giải ưu tiên IPv6 trong khi máy chủ không có đường truyền IPv6 hoạt động. Hãy ép chạy một lần qua IPv4 để xác nhận giả thuyết này:
sudo apt -o Acquire::ForceIPv4=true updateNếu lệnh cập nhật đó thành công, hãy áp dụng vĩnh viễn.
echo 'Acquire::ForceIPv4 "true";' | sudo tee /etc/apt/apt.conf.d/99force-ipv4Cần nhìn nhận thực tế đối với trường hợp ngược lại. Trên một VPS hoàn toàn không có địa chỉ IPv4, việc ép dùng IPv4 sẽ không giải quyết được gì vì không có route IPv4 nào để điều hướng lưu lượng. Trong trường hợp đó, bạn cần NAT64 kết hợp với DNS64 từ nhà cung cấp, hoặc một proxy có địa chỉ IPv4. Triệu chứng là lỗi kết nối liên quan đến một địa chỉ IPv6, vì vậy dòng curl -6 chính là thông tin phản ánh đúng tình trạng lỗi.
Các phương án dự phòng và chi phí đi kèm
Script cài đặt từ nhà cung cấp. curl -fsSL https://tailscale.com/install.sh | sh là lệnh mà Tailscale quảng bá. Khi đọc script này, nó sẽ tự nhận diện bản phân phối của bạn từ /etc/os-release và sau đó ghi đè vào hai đường dẫn mà hướng dẫn này đã xử lý, /usr/share/keyrings/tailscale-archive-keyring.gpg và /etc/apt/sources.list.d/tailscale.list, từ cùng các URL đó. Điều này quan trọng đối với kỳ vọng của bạn: nó không giúp vượt qua được repository đang bị proxy chặn. Nó sẽ thất bại theo cách tương tự nhưng với ít thông tin log hơn. Việc pipe một script tải về trực tiếp vào shell dưới quyền root là một sự đánh đổi, không phải giải pháp, vì bạn đang tin tưởng vào bất cứ thứ gì server trả về tại thời điểm đó và bạn không lưu lại bản sao của những gì đã chạy. Nếu bạn chấp nhận đánh đổi này, hãy thực hiện với sự hiểu biết rõ ràng:
curl -fsSL https://tailscale.com/install.sh -o install.sh
less install.sh
sh install.shCác file binary tĩnh. Cùng server đó xuất bản các file tarball thuần túy trong mục static binaries tại pkgs.tailscale.com/stable. Tính đến tháng 8 năm 2026, bản stable là 1.102.2 và file cho x86 64-bit là tailscale_1.102.2_amd64.tgz. Bạn tự đặt client tailscale và daemon tailscaled vào vị trí, đồng thời tự quản lý daemon, vì vậy sẽ không có đường dẫn apt upgrade và mọi bản cập nhật trong tương lai đều là việc tải về thủ công mà bạn phải tự ghi nhớ. Phương án này phù hợp trên các host air-gapped (cô lập mạng), hoặc khi bạn bắt buộc phải cố định một phiên bản cụ thể.
Gói cài đặt của riêng Ubuntu. Không có gói nào cả. Chạy sudo apt install tailscale mà không cấu hình repository của nhà cung cấp sẽ dẫn đến lỗi E: Unable to locate package tailscale, và dù bạn có chạy apt update bao nhiêu lần cũng không thay đổi được điều đó. Nếu thứ bạn thực sự muốn là một coordination server do chính bạn kiểm soát thay vì server được host bởi Tailscale, đó là một quyết định riêng biệt: chạy Headscale làm control server của riêng bạn đề cập đến vấn đề này, và so sánh giữa Tailscale và WireGuard thuần đề cập đến việc liệu bạn có thực sự cần toàn bộ hệ thống này hay không.
Gói đã cài đặt nhưng tailscaled không khởi động
Sau khi apt hoàn tất, các lỗi thường chuyển sang daemon.
systemctl status tailscaled
sudo journalctl -u tailscaled -n 50Trên VPS sử dụng công nghệ ảo hóa container chia sẻ kernel với host, ví dụ như LXC hoặc OpenVZ, log sẽ hiển thị một dòng thông báo /dev/net/tun không tồn tại. Daemon cần thiết bị TUN để tạo giao diện tailscale0, nhưng container hiện tại không được cấp quyền này. Hãy yêu cầu nhà cung cấp bật TUN cho container, hoặc chuyển sang gói KVM nơi bạn có kernel riêng. Trên KVM, dịch vụ này hoạt động mà không cần cấu hình thêm.
Sau đó, sudo tailscale up sẽ in ra một URL đăng nhập, và tailscale status sẽ liệt kê máy của bạn với một địa chỉ trong dải 100.64.0.0/10. Một máy xuất hiện ở đó là máy bạn có thể sử dụng để triển khai, cho dù đó là việc quảng bá một subnet riêng từ VPS của bạn hay sử dụng VPS làm exit node.
FAQ
Tại sao apt báo repository của Tailscale không được ký?
Vì apt đã tải xuống chỉ mục repository nhưng không thể xác minh chữ ký của nó với /usr/share/keyrings/tailscale-archive-keyring.gpg. Lý do thường gặp là keyring có kích thước 0 byte: sudo tee đã cắt ngắn file trước khi curl tải được bất kỳ dữ liệu nào, và pipeline báo thành công vì tee đã chạy xong. Hãy chạy gpg --show-keys /usr/share/keyrings/tailscale-archive-keyring.gpg. Một keyring hoạt động bình thường sẽ in ra một dòng pub và một dòng uid có tên Tailscale, trong khi keyring trống hoặc hỏng sẽ in ra gpg: no valid OpenPGP data found.. Hãy tải key về một file tạm, kiểm tra tại đó, sau đó copy vào vị trí cũ với mode 0644 để người dùng _apt có thể đọc được.
Tôi nên điền codename nào của Ubuntu vào các URL của Tailscale?
Hãy sử dụng giá trị của UBUNTU_CODENAME từ /etc/os-release, giá trị này là noble trên Ubuntu 24.04 và resolute trên Ubuntu 26.04. Đừng sử dụng lsb_release -cs trên các bản phân phối dựa trên Ubuntu: trên Linux Mint 22 nó in ra wilma, Tailscale không xuất bản gì dưới tên đó, và apt sẽ báo lỗi 404 trên dists/wilma/InRelease. Hãy xác nhận lựa chọn của bạn trước khi chỉnh sửa bất cứ thứ gì bằng cách tự lấy chỉ mục thủ công với curl -sS -o /dev/null -w '%{http_code}\n' đối với https://pkgs.tailscale.com/stable/ubuntu/dists/<codename>/InRelease.
Chạy script cài đặt Tailscale bằng cách pipe trực tiếp vào shell có an toàn không?
Đây là một sự đánh đổi mà bạn cần cân nhắc kỹ. Script này đến từ Tailscale và thực hiện các bước tương tự như hướng dẫn thủ công: nó đọc /etc/os-release, ghi keyring và /etc/apt/sources.list.d/tailscale.list tương tự, sau đó cài đặt gói. Cái giá phải trả là bạn chạy bất cứ thứ gì server trả về tại thời điểm đó với quyền root và không lưu lại bản ghi nào. Hãy tải nó về bằng -o install.sh, đọc nội dung, sau đó chạy nếu bạn muốn sự tiện lợi mà không bị mù thông tin. Cách này cũng không giúp ích gì nếu repository bị chặn, vì nó sử dụng chính các URL đã bị lỗi trước đó.
Làm thế nào để cài đặt Tailscale trên Ubuntu mà không cần apt repository?
Hãy sử dụng các bản tarball tĩnh được xuất bản trên pkgs.tailscale.com, tính đến tháng 8 năm 2026 là phiên bản 1.102.2 với file amd64 có tên tailscale_1.102.2_amd64.tgz. Bạn tự cài đặt các chương trình tailscale và tailscaled, đồng thời tự chạy daemon dưới quyền systemd. Cái giá phải trả là việc nâng cấp: không có gói apt nào để lấy phiên bản mới, vì vậy mỗi lần cập nhật đều phải làm thủ công. Kho lưu trữ của Ubuntu không chứa gói tailscale riêng, vì vậy sudo apt install tailscale trên một máy không có repository của nhà cung cấp sẽ dừng lại ở E: Unable to locate package tailscale.