• Visa IP-adress vid inloggning i Ubuntu 24.04 (textläge)

    När du loggar in i Ubuntu 24.04 i textläge kan det vara ovärderligt att se datorns IP-adress direkt på inloggningsskärmen, särskilt vid fjärradministration, användning av virtuella maskiner och felsökning. I den här guiden går vi steg för steg igenom hur du visar IP-adressen vid TTY-inloggning med en robust systemd-lösning, samt några enklare alternativ om du vill visa adressen först efter inloggning.

    Om du loggar in i Ubuntu 24.04 i textläge (TTY, alltså utan grafiskt skrivbord) kan det vara väldigt praktiskt att direkt se maskinens IP-adress på inloggningsskärmen. Det här går att fixa på flera sätt. Nedan får du en tydlig steg-för-steg-guide med tre metoder, där den första är “rätt” och robust för moderna Ubuntu (systemd), och de andra är alternativ.

    Förutsättningar

    Du behöver kunna logga in som en användare med sudo-rättigheter.

    Du kommer att redigera någon konfigurationsfil och sedan testa genom att växla till textläge eller starta om.

    Metod 1: Visa IP i “login-banner” via systemd (rekommenderad)

    Ubuntu 24.04 använder systemd och agetty för TTY-inloggning. Vi kan lägga in ett dynamiskt meddelande som körs när TTY:n startar, så IP-adressen syns innan du loggar in.

    Steg 1: Skapa ett litet skript som skriver ut IP-adressen

    Skapa filen:

    /usr/local/bin/tty-ip-banner.sh

    Innehåll:

    #!/usr/bin/env bash
    set -e
    
    # Försök hitta en "primär" IPv4-adress (ej loopback).
    IPV4=$(ip -4 -o addr show scope global up | awk '{print $4}' | cut -d/ -f1 | head -n 1)
    
    # Om ingen IPv4 hittas, visa något ändå.
    if [ -z "${IPV4:-}" ]; then
      IPV4="(ingen IPv4 hittad ännu)"
    fi
    
    echo
    echo "IP-adress: $IPV4"
    echo
    

    Spara filen.

    Steg 2: Gör skriptet körbart

    sudo chmod +x /usr/local/bin/tty-ip-banner.sh
    

    Steg 3: Skapa en systemd drop-in för getty på tty1

    Vi lägger till ett “ExecStartPre” som körs innan själva login-programmet.

    Skapa katalogen:

    sudo mkdir -p /etc/systemd/system/getty@tty1.service.d
    

    Skapa filen:

    /etc/systemd/system/getty@tty1.service.d/ip-banner.conf

    Innehåll:

    [Service]
    ExecStartPre=/usr/local/bin/tty-ip-banner.sh
    

    Steg 4: Ladda om systemd och starta om getty

    sudo systemctl daemon-reload
    sudo systemctl restart getty@tty1.service
    

    Steg 5: Testa i textläge

    Byt till tty1:

    Tryck Ctrl + Alt + F1 (ibland F3F6 beroende på maskin)

    Du ska nu se “IP-adress: …” ovanför inloggningsprompten.

    Om du vill ha detta på fler TTY, upprepa för tty2, tty3 osv genom att skapa motsvarande drop-in-mappar, till exempel getty@tty2.service.d.

    Metod 2: Visa IP via /etc/issue (enkel men mindre flexibel)

    Ubuntu visar ofta innehållet i /etc/issue före login. Problemet är att /etc/issue är statisk text om du inte bygger en uppdateringsmekanism.

    Steg 1: Skapa ett script som genererar /etc/issue dynamiskt

    Skapa:

    /usr/local/bin/update-issue-with-ip.sh

    #!/usr/bin/env bash
    set -e
    
    IPV4=$(ip -4 -o addr show scope global up | awk '{print $4}' | cut -d/ -f1 | head -n 1)
    [ -z "${IPV4:-}" ] && IPV4="(ingen IPv4 hittad ännu)"
    
    cat > /etc/issue <<EOF
    Ubuntu 24.04 LTS
    
    IP-adress: $IPV4
    
    \\n
    EOF
    

    Gör den körbar:

    sudo chmod +x /usr/local/bin/update-issue-with-ip.sh
    

    Steg 2: Kör scriptet manuellt för att testa

    sudo /usr/local/bin/update-issue-with-ip.sh
    

    Byt till en TTY och se om det visas.

    För att detta ska uppdateras automatiskt krävs att du kör scriptet vid boot och gärna när nätet kommer upp, annars kan IP saknas om nätet inte är klart.

    Metod 3: Visa IP efter inloggning (om “vid login” duger som direkt efter)

    Om du kan nöja dig med att IP visas så fort du loggat in (direkt efter att du skrivit lösenord), är detta enklast och ofta “good enough”.

    Steg 1: Lägg till en utskrift i /etc/profile.d

    Skapa filen:

    /etc/profile.d/show-ip.sh

    IPV4=$(ip -4 -o addr show scope global up | awk '{print $4}' | cut -d/ -f1 | head -n 1)
    if [ -n "$IPV4" ]; then
      echo "IP-adress: $IPV4"
    fi
    

    Klart. Nästa gång någon loggar in i terminalen syns IP direkt.

    Felsökning

    Om du får “ingen IPv4 hittad ännu” på inloggningsskärmen kan det bero på att nätverket inte hunnit upp innan getty startar.

    En snabb kontroll efter inloggning:

    ip -4 addr
    

    Om du använder Wi-Fi kan anslutningen komma senare än för kabel, särskilt om maskinen väntar på inloggning innan den kopplar upp.

    I sådana fall är Metod 3 säkrast, eller så bygger du Metod 1 vidare så att den väntar en kort stund på nätet (exempelvis loopar i 1–3 sekunder), men det är en balans så att inloggningen inte känns seg.

    Rekommendation

    Vill du se IP innan du ens loggar in i TTY: använd Metod 1.

    Vill du ha enklast möjliga: Metod 3.

    FAKTARUTA: Visa IP-adress vid TTY-inloggning i Ubuntu 24.04
    Syfte: Visa serverns IP-adress direkt på inloggningsskärmen i textläge (TTY) – praktiskt för VM, fjärradministration och felsökning.
    Rekommenderad metod (systemd): Skapa ett skript som skriver ut IP och koppla det till getty@tty1 via en systemd drop-in.
    Kontrollera IP manuellt:
    ip -4 addr
    Vanlig orsak om IP saknas: Nätverket hinner inte bli klart innan TTY startar (ofta vid Wi-Fi). Då kan “visa efter inloggning” vara säkrare.
    Tips: Vill du visa både IPv4 och IPv6, eller flera nätverkskort (t.ex. ens18, eth0) kan skriptet byggas ut.

Etikett: getty

  • Visa IP-adress vid inloggning i Ubuntu 24.04 (textläge)

    När du loggar in i Ubuntu 24.04 i textläge kan det vara ovärderligt att se datorns IP-adress direkt på inloggningsskärmen, särskilt vid fjärradministration, användning av virtuella maskiner och felsökning. I den här guiden går vi steg för steg igenom hur du visar IP-adressen vid TTY-inloggning med en robust systemd-lösning, samt några enklare alternativ om du…