Tailscale installatiefout op Ubuntu oplossen
Tailscale installatiefouten op Ubuntu worden meestal veroorzaakt door apt-problemen. Controleer de statuscode en herstel de release codename of de signing keyring in de repository.
Waarom Tailscale-installatiefouten op Ubuntu apt-fouten zijn
Installatiefouten van Tailscale op Ubuntu treden bijna altijd op voordat er Tailscale-code wordt uitgevoerd. Het zijn apt-fouten. Ubuntu levert zelf geen tailscale-pakket: na controle in het Ubuntu-pakketarchief in augustus 2026 zijn de enige overeenkomsten Go-helperbibliotheken en python3-tailscale, dus de daemon moet afkomstig zijn uit de eigen apt-repository van Tailscale op pkgs.tailscale.com.
Het toevoegen van die repository schrijft twee bestanden. Eén bestand vertelt apt waar de pakketten zich bevinden. Het andere bevat de publieke sleutel die apt gebruikt om de handtekening op de repository-index te controleren. Vrijwel elke onderstaande fout wordt veroorzaakt doordat een van deze twee bestanden onjuist is, of doordat een apparaat tussen apt en de repository het verzoek weigert.
Dit zijn de commando's die Tailscale publiceert voor 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 is de codenaam voor Ubuntu 24.04 en deze komt in beide URL's voor. Het tweede commando schrijft een commentaarregel en één deb-regel naar /etc/apt/sources.list.d/tailscale.list, en cat laat u precies zien wat daar terecht is gekomen.
cat /etc/apt/sources.list.d/tailscale.listLees die deb-regel als een adres in vier velden: de optie tussen haakjes [signed-by=/usr/share/keyrings/tailscale-archive-keyring.gpg], vervolgens de repository-basis, die pkgs.tailscale.com/stable/ubuntu is en via https wordt bereikt, dan de suite noble, en tot slot de component main. apt voegt de basis en de suite samen tot één URL en haalt deze op: https://pkgs.tailscale.com/stable/ubuntu/dists/noble/InRelease. Als u die URL handmatig kunt ophalen, kan apt dat ook. Dat is de volledige diagnose.
Lees de apt-foutmelding voordat u wijzigingen aanbrengt
Voer de update afzonderlijk uit zodat de foutmelding niet uit het zicht verdwijnt door andere uitvoer.
sudo apt updateEen mislukte repository van een derde partij ziet er als volgt uit. De codenaam en het IP-adres zullen op uw machine afwijken.
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.Twee zaken in die uitvoer bepalen uw volgende stap: de statuscode en de volledige URL op de E: Failed to fetch-regel. Ga niet af op de samenvattingsregel onderaan. Kopieer de URL en vraag de server zelf om een reactie.
curl -sS -o /dev/null -w '%{http_code}\n' https://pkgs.tailscale.com/stable/ubuntu/dists/noble/InReleaseDit geeft 200 weer voor een codenaam die Tailscale publiceert. Gecontroleerd in augustus 2026: noble retourneert een ondertekende index met Origin: Tailscale en Codename: noble. Vervang noble door de codenaam uit uw eigen foutmelding en voer het commando opnieuw uit. Als curl 200 ontvangt terwijl apt een foutmelding gaf, dan is de repository in orde en ligt het probleem in de configuratie van apt zelf.
Wat de statuscode u vertelt
404 Not Foundbetekent dat de repository geen bestand op dat pad heeft. Oppkgs.tailscale.comis dat bijna altijd de codenaam in de URL.403 Forbiddenbetekent dat er een antwoord kwam, maar dat de toegang werd geweigerd. Sinds augustus 2026 geeft deze repository een 404 voor een pad dat niet bestaat; een 403 wijst dus op een proxy, een filterapparaat of een firewall tussen uw server en Tailscale.401 Unauthorizedof407 Proxy Authentication Requiredbetekent dat een proxy inloggegevens vereist die apt niet meestuurt.- Een verbindingsfout of een fout bij het omzetten van de hostnaam betekent dat er in het geheel geen HTTP-communicatie heeft plaatsgevonden. Ga door naar de sectie over IPv6.
De codenaam in de URL is er een die Tailscale niet publiceert
Tailscale bouwt een aparte directory per Ubuntu-codenaam. Vraagt u om een codenaam die niet bestaat, dan krijgt u een 404-foutmelding, omdat er geen dists/<codename> op de server staat om te serveren. De eigen lijst van de leverancier op pkgs.tailscale.com/stable toont welke versies er bestaan. In augustus 2026 loopt die lijst van 16.04 tot resolute, wat Ubuntu 26.04 is.
De gebruikelijke manier waarop een onjuiste codenaam in het systeem terechtkomt, is via lsb_release -cs op een distributie die gebaseerd is op Ubuntu, maar zelf geen Ubuntu is. Op Linux Mint 22 voert dit commando wilma uit, wat de eigen codenaam van Mint is, en Tailscale publiceert daar niets voor. Lees in plaats daarvan de Ubuntu-basis uit.
. /etc/os-release
echo "$VERSION_CODENAME $UBUNTU_CODENAME"Op Ubuntu zijn beide waarden gelijk. Op een afgeleide distributie is VERSION_CODENAME de naam van de afgeleide en is UBUNTU_CODENAME de Ubuntu-release waarop deze is gebouwd. Gebruik UBUNTU_CODENAME in beide URL's.
De tweede manier is een release-upgrade. De Ubuntu-upgrade-tool schakelt externe bronnen uit wanneer deze wordt uitgevoerd. Daarom zult u na het upgraden van Ubuntu 24.04 naar 26.04 zien dat /etc/apt/sources.list.d/tailscale.list ofwel is uitgeschakeld met commentaar, of nog steeds verwijst naar noble op een machine die inmiddels resolute is. Herstel dit door de twee curl-commando's opnieuw uit te voeren met de nieuwe codenaam; hiermee worden beide bestanden overschreven.
De derde manier is timing. In de weken na een nieuwe Ubuntu-release bestaat de codenaam al bij Canonical voordat deze bij Tailscale beschikbaar is. Het bestand laten verwijzen naar de vorige LTS-codenaam werkt meestal wel voor de installatie, omdat deze pakketten weinig afhankelijkheden hebben, maar u draait dan een build die voor een oudere release is gemaakt. Controleer wat u daadwerkelijk heeft geïnstalleerd met apt policy tailscale en verplaats het bestand terug zodra de juiste codenaam beschikbaar is.
De keyring is leeg en het commando dat deze schreef gaf geen uitvoer
Dit probleem is stil en is waar de meeste van deze gevallen eindigen. Bekijk het keyring-commando nogmaals:
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/noble.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/nullDe shell bouwt de volledige pipeline op voordat een van de programma's wordt uitgevoerd, dus sudo tee opent het keyring-pad en kort het onmiddellijk in tot nul bytes. Als curl vervolgens faalt, en -f zorgt ervoor dat curl faalt bij elke HTTP-fout, schrijft curl niets en sluit af met een status ongelijk aan nul. Het bestand blijft nul bytes groot. De exit-status van een pipeline is de status van het laatste commando, wat tee is, en dat is geslaagd. Er wordt niets afgedrukt en u gaat door naar het volgende commando in de veronderstelling dat de sleutel is geïnstalleerd.
Controleer het bestand, niet het commando dat het heeft aangemaakt.
ls -l /usr/share/keyrings/tailscale-archive-keyring.gpg
gpg --show-keys /usr/share/keyrings/tailscale-archive-keyring.gpgEen gezonde keyring drukt een pub-regel en een uid-regel af met de naam Tailscale. Een bestand van nul bytes drukt gpg: no valid OpenPGP data found. af en niets anders. Een bestand dat een HTML-foutpagina heeft opgevangen drukt hetzelfde af, en head -c 80 op dat bestand toont het begin van een webpagina in plaats van binaire sleutelgegevens.
Met een keyring die geen bruikbare sleutel bevat, downloadt sudo apt update de index en weigert deze vervolgens. U krijgt een W: GPG error-regel met de naam van de Tailscale-repository en de suite, de tekst The following signatures couldn't be verified because the public key is not available: NO_PUBKEY gevolgd door een sleutel-ID van 16 tekens, en daaronder een foutmelding dat de repository niet is ondertekend. Let op wat apt u vertelt: het heeft de index correct gedownload, maar kon de handtekening niet controleren. Dat is een sleutelprobleem, geen netwerkprobleem. Als het keyring-bestand volledig ontbreekt, is de melding weer anders en wordt het pad direct genoemd met Could not open file /usr/share/keyrings/tailscale-archive-keyring.gpg.
Schrijf de sleutel in twee stappen zodat een mislukte download een werkende keyring niet kan vernietigen.
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.gpgDe middelste regel is de controle: als deze geen Tailscale uid afdrukt, stop dan en kopieer het bestand niet. Modus 0644 is van belang omdat apt overschakelt naar de ongeprivilegieerde _apt-gebruiker om op te halen en te verifiëren; een keyring die alleen door root kan worden gelezen, is dus een keyring die apt niet kan gebruiken.
Zowel een .list- als een .sources-bestand beschrijven dezelfde repository
Ubuntu is in Ubuntu 24.10 overgestapt op het deb822-formaat voor zijn eigen bronnen, waarbij /etc/apt/sources.list werd vervangen door /etc/apt/sources.list.d/ubuntu.sources. Tailscale publiceert nog steeds het formaat met één regel. Bij controle in augustus 2026 bleek dat er geen .sources-bestand te downloaden is vanaf pkgs.tailscale.com: die URL geeft een 404-foutmelding. Als uw machine dus een tailscale.sources bevat, is deze handmatig door u of via een handleiding aangemaakt. Als tailscale.list ook nog aanwezig is, beschrijft apt de repository nu dubbel.
De milde variant is een waarschuwing bij elke update:
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:1De ernstige variant treedt op wanneer de twee bestanden naar verschillende keyring-paden verwijzen, omdat apt niet kan bepalen welke sleutel de repository beheert. Het systeem geeft E: Conflicting values set for option Signed-By regarding source weer, gevolgd door de repository en de suite, daarna de twee keyring-paden met != ertussen, en weigert vervolgens verder te gaan:
E: The list of sources could not be read.Dit blokkeert elk apt-commando, niet alleen de update, totdat een van de bestanden is verwijderd. Dezelfde fout treedt ook op bij de eigen repositories van Ubuntu, en de foutmelding over dubbele apt-bronnen na een deb822-migratie doorloopt het algemene scenario.
Zoek elk bestand op dat Tailscale vermeldt voordat u iets verwijdert.
grep -RIn tailscale /etc/apt/sources.list /etc/apt/sources.list.d/Behoud één bestand. Om het andere bestand uit te schakelen zonder het te verliezen, kunt u het hernoemen: apt leest alleen bestanden die eindigen op .list of .sources, dus tailscale.list.bak wordt overgeslagen en blijft als referentie op de schijf staan.
Het correct schrijven van het deb822-bronbestand
Als u de voorkeur geeft aan het nieuwere formaat, converteer dan het bestand dat u al heeft in plaats van het repository-adres opnieuw te typen; een typefout is namelijk precies hoe de bovenstaande fouten ontstaan. Recente apt-releases bevatten een converter die .list-bestanden herschrijft naar deb822-stanzas en de signed-by-optie verplaatst als Signed-By.
apt modernize-sources --help
sudo apt modernize-sourcesUbuntu 24.04 levert een versie van apt die van vóór dat subcommando dateert, dus de help-regel vertelt u direct of die van u het ondersteunt. Waar dit niet het geval is, bouwt u de stanza op basis van de regel die al op de schijf staat, zodat de basis uit het bestand van de leverancier komt in plaats van vanaf uw toetsenbord.
. /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.listDit drukt de stanza af die is geschreven, zodat u de velden kunt controleren vóór de volgende apt update. Vier daarvan zijn belangrijk om in detail te kennen, omdat ze elk op een andere manier falen:
URIsstopt bij de basis van de repository. Het plakken van hetdists/noble-gedeelte erin resulteert in een 404, omdat apt zelfdists/<suite>toevoegt en vraagt omdists/noble/dists/noble.Suitesis de codenaam, exact de waarde die in het midden van de regel in het oude formaat stond.Signed-Byaccepteert een absoluut pad naar een keyring-bestand. Het accepteert ook een armored key die eronder wordt ingevoegd, waarbij elke regel van de sleutel met één spatie is ingesprongen en elke lege regel binnen de sleutel als een enkele punt wordt geschreven.Enabled: noschakelt een bron uit zonder deze te verwijderen, wat makkelijker ongedaan te maken is dan een hernoeming en makkelijker uit te leggen aan de volgende persoon.
Houd één stanza per bestand aan voor externe repositories en plaats een lege regel tussen stanza's als u er ooit meerdere bij elkaar bewaart. De repository-index vermeldt amd64 en arm64 onder zijn architecturen, dus een ARM VPS heeft geen extra Architectures-veld nodig.
Een proxy in het midden geeft een 403-foutmelding
Omdat een pad in deze repository dat niet bestaat een 404-foutmelding geeft, betekent een 403 dat iets anders namens de server heeft geantwoord. Begin bij de configuratie van apt zelf, aangezien een proxy die daar is ingesteld alleen geldt voor apt en niet voor uw interactieve curl-sessies.
grep -RIn -i proxy /etc/apt/apt.conf.d/ /etc/apt/apt.conf
sudo apt-config dump | grep -i 'acquire::http'Controleer vervolgens wat apt daadwerkelijk verstuurt.
sudo apt -o Debug::Acquire::http=1 updateDit toont de request-regel, de headers die apt heeft verstuurd en de proxy waarmee verbinding is gemaakt, indien van toepassing. Vergelijk dit met een standaard curl-opdracht naar dezelfde URL. Als curl 200 teruggeeft en apt 403, dan verschillen de twee verzoeken op een punt waar de tussenliggende server op filtert. De meest waarschijnlijke oorzaak is de 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/InReleaseAls dit commando een 403 teruggeeft terwijl de standaard curl een 200 geeft, dan weigert een filterapparaat apt op basis van de naam. De oplossing moet op dat apparaat worden doorgevoerd, niet op uw server. Een bedrijfsmatige proxy die TLS inspecteert, gedraagt zich anders: apt rapporteert dan een fout bij de certificaatverificatie in plaats van een statuscode. Dit komt doordat het ontvangen certificaat is uitgegeven door de proxy en niet door de certificaatautoriteit van Tailscale. Een cloud-egress-firewall die alleen Ubuntu-mirrors toestaat, is een andere veelvoorkomende oorzaak; de oplossing is daar om pkgs.tailscale.com toe te staan in de firewall.
IPv6-only uitgaand verkeer en fouten die geen statuscodes zijn
Als apt geen HTTP-antwoord ontvangt, test dan elk protocol afzonderlijk.
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/InReleaseWanneer IPv4 antwoordt en IPv6 blijft hangen of Network is unreachable rapporteert, faalt apt omdat de resolver-bibliotheek de voorkeur geeft aan IPv6 en de server geen werkend IPv6-pad heeft. Forceer een run via IPv4 om deze theorie te bevestigen:
sudo apt -o Acquire::ForceIPv4=true updateAls die update slaagt, maak de wijziging dan permanent.
echo 'Acquire::ForceIPv4 "true";' | sudo tee /etc/apt/apt.conf.d/99force-ipv4Wees realistisch in het tegenovergestelde geval. Op een VPS die helemaal geen IPv4-adres heeft, lost het forceren van IPv4 niets op, omdat er geen IPv4-route is om verkeer overheen te sturen. In dat geval heeft u NAT64 met DNS64 van uw provider nodig, of een proxy die beschikt over een IPv4-adres. Het symptoom is een verbindingsfout die een IPv6-adres noemt; de regel met curl -6 geeft in dat geval de juiste informatie weer.
De fallbacks en de bijbehorende kosten
Het installatiescript van de leverancier. curl -fsSL https://tailscale.com/install.sh | sh is het commando dat Tailscale aanbeveelt. Bij het lezen van het script blijkt dat het uw distributie detecteert via /etc/os-release en vervolgens dezelfde twee paden schrijft die in deze handleiding zijn gecorrigeerd, /usr/share/keyrings/tailscale-archive-keyring.gpg en /etc/apt/sources.list.d/tailscale.list, vanaf dezelfde URL's. Dit is belangrijk voor uw verwachtingen: het omzeilt geen repository die door een proxy wordt geblokkeerd. Het faalt op dezelfde wijze met minder uitvoer. Het direct doorsluizen van een gedownload script naar een shell als root is een compromis, geen oplossing, omdat u vertrouwt op wat de server op dat moment teruggeeft en u geen kopie bewaart van wat er is uitgevoerd. Als u dit compromis aangaat, doe dit dan bewust:
curl -fsSL https://tailscale.com/install.sh -o install.sh
less install.sh
sh install.shDe statische binaries. Dezelfde server publiceert eenvoudige tarballs onder de sectie voor statische binaries op pkgs.tailscale.com/stable. Sinds augustus 2026 is de stabiele release 1.102.2 en het 64-bit x86-bestand is tailscale_1.102.2_amd64.tgz. U plaatst de tailscale-client en de tailscaled-daemon zelf, en u beheert de daemon zelf, waardoor er geen apt upgrade-pad is en elke toekomstige update een download is die u zelf moet onthouden. Dit is een geschikte methode voor een host zonder internetverbinding (air-gapped), of wanneer u één specifieke versie moet vastzetten.
Het eigen pakket van Ubuntu. Dat bestaat niet. Het uitvoeren van sudo apt install tailscale zonder dat de repository van de leverancier is geconfigureerd, eindigt bij E: Unable to locate package tailscale, en geen enkele hoeveelheid apt update verandert dat. Als u in werkelijkheid een coördinatieserver wilt die u zelf beheert in plaats van de gehoste server van Tailscale, dan is dat een afzonderlijke beslissing: Headscale draaien als uw eigen control server behandelt dit, en de vergelijking tussen Tailscale en standaard WireGuard behandelt de vraag of u al deze infrastructuur wel nodig heeft.
Het pakket is geïnstalleerd, maar tailscaled start niet
Zodra apt de installatie heeft voltooid, verplaatsen de problemen zich naar de daemon.
systemctl status tailscaled
sudo journalctl -u tailscaled -n 50Op een VPS die gebruikmaakt van container-virtualisatie waarbij de kernel van de host wordt gedeeld, zoals LXC of OpenVZ, bevat het logboek een regel over het niet bestaan van /dev/net/tun. De daemon heeft een TUN-device nodig om de tailscale0-interface aan te maken, en de container beschikt hier niet over. Vraag uw provider om TUN in te schakelen voor de container, of stap over naar een KVM-plan waarbij u over een eigen kernel beschikt. Op KVM werkt dit zonder extra configuratie.
Daarna toont sudo tailscale up een inlog-URL en zou tailscale status uw machine moeten weergeven met een adres in het 100.64.0.0/10-bereik. Een machine die daar verschijnt, is een machine waarop u kunt voortbouwen, of dat nu betekent een privaat subnet vanaf uw VPS adverteren of de VPS als exit node gebruiken.
FAQ
Waarom meldt apt dat de Tailscale-repository niet ondertekend is?
Omdat apt de repository-index heeft gedownload en de handtekening niet kon verifiëren tegen /usr/share/keyrings/tailscale-archive-keyring.gpg. De gebruikelijke oorzaak is dat de keyring nul bytes groot is: sudo tee heeft het bestand afgekapt voordat curl iets kon downloaden, en de pipeline rapporteerde succes omdat tee slaagde. Voer gpg --show-keys /usr/share/keyrings/tailscale-archive-keyring.gpg uit. Een werkende keyring toont een pub-regel en een uid-regel met de naam Tailscale, terwijl een lege of corrupte keyring gpg: no valid OpenPGP data found. toont. Download de sleutel naar een tijdelijk bestand, controleer het daar, en kopieer het vervolgens naar de juiste locatie met modus 0644 zodat de _apt-gebruiker het kan lezen.
Welke Ubuntu-codename moet ik in de Tailscale-URL's gebruiken?
Gebruik de waarde van UBUNTU_CODENAME uit /etc/os-release, wat noble is op Ubuntu 24.04 en resolute op Ubuntu 26.04. Gebruik geen lsb_release -cs op een distributie die is afgeleid van Ubuntu: op Linux Mint 22 geeft dit wilma, Tailscale publiceert niets onder die naam, en apt rapporteert een 404 op dists/wilma/InRelease. Bevestig uw keuze voordat u wijzigingen aanbrengt door de index handmatig op te halen met curl -sS -o /dev/null -w '%{http_code}\n' tegen https://pkgs.tailscale.com/stable/ubuntu/dists/<codename>/InRelease.
Is het veilig om het Tailscale-installatiescript via een pipe naar een shell uit te voeren?
Dit is een afweging die u bewust moet maken. Het script is afkomstig van Tailscale en voert de handmatige stappen uit: het leest /etc/os-release, schrijft dezelfde keyring en hetzelfde /etc/apt/sources.list.d/tailscale.list, en installeert vervolgens het pakket. Het nadeel is dat u uitvoert wat de server op dat moment teruggeeft, met root-rechten, zonder dat u hiervan een verslag bijhoudt. Download het met -o install.sh, lees het door, en voer het vervolgens uit als u het gemak wilt zonder de blinde vlek. Het biedt bovendien geen oplossing voor een geblokkeerde repository, aangezien het dezelfde URL's gebruikt die al eerder faalden.
Hoe installeer ik Tailscale op Ubuntu zonder de apt-repository?
Gebruik de statische tarballs die worden gepubliceerd op pkgs.tailscale.com, welke per augustus 2026 beschikbaar zijn in versie 1.102.2 met een amd64-bestand genaamd tailscale_1.102.2_amd64.tgz. U installeert de programma's tailscale en tailscaled zelf en voert de daemon zelf uit onder systemd. Het nadeel is het beheer van updates: er is geen apt-pakket om een nieuwe versie op te halen, dus elke update is handmatig. Het archief van Ubuntu bevat zelf geen tailscale-pakket, dus sudo apt install tailscale op een machine zonder de repository van de leverancier stopt bij E: Unable to locate package tailscale.