Der Host im Netz: Auflösung, Listener, Paketfilter
Eine Anwendung verbindet sich auf eine veraltete IP-Adresse — das DNS-Abfragewerkzeug liefert für denselben Namen die richtige. Ein Dienst ist lokal einwandfrei erreichbar und von außen unsichtbar, ohne dass eine Firewallregel im Spiel wäre. Und eine Freigabe, die gestern funktionierte, ist nach dem Neustart weg. Alle drei sind keine Netzwerkprobleme, sondern Hostprobleme. Dieses Modul behandelt genau diese Hälfte: was ein Linux-Host selbst tut, bevor ein Paket sein Kabel verlässt — Namensauflösung, Adressvergabe, Listener und der lokale Paketfilter.
Lehrtext · 12 Abschnitte · zuletzt geprüft: 2026-09-03
Vier Fragen, die ein Host selbst beantwortet
Netzwerkbetrieb ist ein eigenes Fach — Routing, VLANs, DNS-Serverbetrieb gehören dorthin. Dieses Modul behandelt die andere Hälfte: was der Host selbst tut, bevor überhaupt ein Paket sein Kabel verlässt.
- Wie wird ein Name zu einer Adresse?
- Die Auflösungskette auf diesem Host — und die ist deutlich länger als „DNS“.
- Welche Adresse hat der Host, und wer hat sie gesetzt?
- Statisch, per DHCP, von welchem Verwalter.
- Wer hört auf welchem Port?
- Der Listener und das Konto, unter dem er läuft.
- Was lässt der Host durch?
- Der lokale Paketfilter — und die Frage, wer seinen Zustand besitzt.
Fast jede „das Netz ist kaputt“-Meldung landet in einer dieser vier. Und in drei von vier Fällen ist das Netz vollkommen in Ordnung.
Namensauflösung ist nicht gleich DNS
Wenn ein Programm einen Namen auflösen will, fragt es nicht das Internet, sondern das System. Und das System hat eine Reihenfolge, die in /etc/nsswitch.conf steht: eine Datei, die festlegt, aus welchen Quellen Namensdienst-Informationen bezogen werden und in welcher Reihenfolge.
Für Rechnernamen ist die Zeile hosts: zuständig. Die Reihenfolge der dort genannten Quellen entscheidet: Sie werden der Reihe nach befragt, bis eine ein Ergebnis liefert.
files- Liest
/etc/hosts. Steht üblicherweise vorn — ein Eintrag dort gewinnt gegen jeden DNS-Server. dns- Die klassische DNS-Auflösung über die konfigurierten Server.
resolve- Fragt den lokalen Auflösungsdienst, sofern einer läuft.
myhostname- Liefert Antworten für den eigenen Rechnernamen, damit er auch ohne DNS auflösbar bleibt.
/etc/hosts schlägt jeden DNS-Server — und niemand denkt daran, weil alle Werkzeuge, die man zur DNS-Prüfung benutzt, diese Datei überspringen. Ein Abfragewerkzeug fragt den DNS-Server direkt und bekommt die richtige Antwort; die Anwendung geht über die Systemauflösung und bekommt die alte. Beide haben recht, und der Unterschied ist genau diese Datei.Kurzcheck
Eine Anwendung verbindet sich auf eine veraltete IP-Adresse. Ein DNS-Abfragewerkzeug liefert für denselben Namen die korrekte neue Adresse. Wo suchst du zuerst?
- In der Systemauflösung des Hosts — vor allem in
/etc/hostsund der Reihenfolge in/etc/nsswitch.conf. - Beim DNS-Server — er liefert dem Werkzeug offenbar aus einem anderen Zonenstand als der Anwendung.
- Im Zwischenspeicher der Anwendung — sie hat die Adresse beim Start aufgelöst und hält sie seitdem.
Treffer. Genau. Die beiden fragen unterschiedliche Dinge: Das Werkzeug fragt den DNS-Server, die Anwendung fragt das System. Ein files-Eintrag vor dns erklärt genau diese Diskrepanz.
Wer schreibt eigentlich in resolv.conf?
Die Datei /etc/resolv.conf enthält die DNS-Server, die der klassische Auflösungsweg benutzt. Sie ist auf modernen Systemen aber selten das, was sie zu sein scheint — meistens ist sie ein Verweis, und was dahinter liegt, entscheidet über das Verhalten.
Stub-Resolver — Ein lokaler Auflösungsdienst, der auf einer Adresse im Loopback-Bereich lauscht — bei systemd-resolved auf 127.0.0.53. Alle Anfragen des Hosts gehen dorthin, und er entscheidet, welchen echten DNS-Server er befragt.
Daraus folgt eine Beobachtung, die viele verwirrt: In /etc/resolv.conf steht dann als einziger Server 127.0.0.53 — also der Host selbst. Das ist kein Fehler, sondern der vorgesehene Aufbau. Welche echten Server dahinterstehen, fragt man beim Auflösungsdienst ab, nicht in der Datei.
Dasselbe Muster gilt für die Adressvergabe: Ob eine Schnittstelle statisch konfiguriert ist oder ihre Adresse per DHCP bekommt, und welcher Verwalter dafür zuständig ist, ist die erste Frage bei jeder Netzwerkänderung. Wer die Konfiguration am zuständigen Verwalter vorbei ändert, hat eine Änderung, die den nächsten Neustart nicht überlebt.
Erreichbar heißt nicht antwortend
Zwischen „der Host antwortet auf Ping“ und „der Dienst funktioniert“ liegen mehrere Stufen, und jede lässt sich einzeln belegen. Die Reihenfolge spart die meiste Zeit, wenn man sie einhält.
- Name löst auf
- Die Systemauflösung liefert eine Adresse — und zwar die erwartete.
- Adresse erreichbar
- Pakete kommen an. Sagt nichts über einen Dienst.
- Port offen
- Etwas nimmt auf diesem Port Verbindungen an.
- Dienst antwortet fachlich
- Die Anwendung liefert eine sinnvolle Antwort, nicht nur einen offenen Port.
Auf dem Host selbst beantwortet ss die dritte Frage: Welche Sockets sind offen, auf welcher Adresse und welchem Port, und welcher Prozess gehört dazu. Das ist der Unterschied zwischen „irgendwas hört da“ und „der richtige Dienst hört da“.
127.0.0.1 gebunden ist, ist lokal perfekt erreichbar und von außen unsichtbar — ohne dass eine einzige Firewallregel im Spiel wäre. Das Fehlerbild sieht aus wie ein blockierter Port und ist keiner. Vor jeder Firewall-Analyse gehört deshalb der Blick darauf, woran der Dienst überhaupt gebunden ist.Der lokale Paketfilter und die Frage nach dem Besitzer
Jeder Linux-Host filtert Pakete im Kernel. Verwaltet wird dieser Regelsatz aber praktisch nie von Hand, sondern von einem Dienst darüber — auf vielen Server-Distributionen etwa von einer zonenbasierten Verwaltung, die aus ihrer eigenen Konfiguration den Regelsatz erzeugt.
Daraus folgt die wichtigste Regel dieses Abschnitts: Es darf nur einen Besitzer des Regelzustands geben. Wer zusätzlich zur Verwaltung eigene Regeln direkt in den Kernel schreibt, erzeugt eine zweite Ebene, die niemand mehr gemeinsam liest — und die beim nächsten Neuladen der Verwaltung verschwindet oder mit ihr kollidiert.
Ein Port soll für ein Nachbarsystem geöffnet werden
Szenario
Ein Dienst auf Port 8443 soll von genau einem anderen Server erreichbar sein. Der Host wird von einer zonenbasierten Firewallverwaltung betreut.
Anforderungen
- Die Öffnung ist auf Quelle und Dienst begrenzt, nicht global
- Die Regel überlebt einen Neustart
- Der wirksame Zustand ist danach belegbar
Schritte
- Zuerst prüfen, ob der Dienst überhaupt auf einer von außen erreichbaren Adresse gebunden ist — sonst behebt keine Firewallregel etwas.
- Die Änderung im vorgesehenen Modell vornehmen, nicht daneben: also in der Verwaltung, die den Regelsatz erzeugt.
- Die Freigabe eng fassen — Quelladresse und Zielport, nicht der Port für alle.
- Laufzeit und Persistenz getrennt prüfen: Eine Regel kann jetzt wirken und nach dem Neustart weg sein, oder umgekehrt hinterlegt und noch nicht aktiv sein.
- Vom Nachbarsystem aus gegenprüfen — und von einem dritten, das es nicht dürfen soll.
Merksatz: Der letzte Schritt ist der, den fast alle auslassen. Eine Freigabe ist erst dann geprüft, wenn auch belegt ist, dass sie nicht mehr öffnet als beabsichtigt.
Zwei Zustände, die auseinanderlaufen können
Bei fast jeder Netzwerkkonfiguration auf einem Host gibt es einen laufenden und einen hinterlegten Zustand. Sie können sich unterscheiden, und beide Richtungen kommen vor.
- Wirkt jetzt, ist nicht hinterlegt
- Die klassische Notfalländerung. Funktioniert bis zum nächsten Neustart und verschwindet dann — samt der Erklärung, warum vorher alles ging.
- Hinterlegt, wirkt noch nicht
- Die Änderung ist geschrieben, aber niemand hat sie neu einlesen lassen. Sie greift beim nächsten Neustart — überraschend für den, der dann Dienst hat.
Wo dieses Modul aufhört
Alles bisher Genannte passiert auf dem Host. Sobald ein Paket ihn verlässt, beginnt ein anderes Fach: Routing zwischen Netzen, VLAN-Grenzen, der Betrieb von DNS-Servern und deren Zonen, DHCP-Bereiche, Lastverteilung.
Die Trennung ist im Alltag nützlich, weil sie die Zuständigkeit klärt. Ein Dienst, der lokal antwortet und von außen nicht erreichbar ist, ist zuerst ein Host-Problem — Bindeadresse, lokaler Filter, Auflösung. Erst wenn die vier Fragen vom Anfang alle mit Ja beantwortet sind, lohnt der Weg zum Netzwerkteam.
Wenn der Host selbst der Client ist
Bisher ging es um eingehende Verbindungen. Die andere Richtung ist im Betrieb genauso häufig und wird deutlich seltener sauber geprüft: Der Host selbst muss etwas erreichen — ein Paketrepository, einen Zeitserver, eine API.
Die Kette ist dieselbe, nur umgekehrt gelesen: Erst muss der Name auflösen, dann muss eine Route nach draußen existieren, dann muss ein möglicherweise vorhandener ausgehender Filter das erlauben — und bei manchen Umgebungen sitzt zusätzlich ein Vermittler dazwischen, den die Anwendung kennen muss.
Praktisch heißt das: Ein ausgehender Test gehört unter demselben Konto und in derselben Umgebung ausgeführt wie der Dienst, um den es geht. Alles andere beweist nur, dass dein Weg nach draußen funktioniert.
Zwei Adressfamilien nebeneinander
Fast jeder Host spricht heute IPv4 und IPv6 gleichzeitig. Im Normalfall merkt man davon nichts — und genau deshalb ist der Ausnahmefall so verwirrend.
Löst ein Name auf beide Adressfamilien auf, muss der Client sich für eine entscheiden, und moderne Systeme bevorzugen dabei üblicherweise IPv6. Ist das Ziel dort nicht erreichbar — kein Listener, keine Route, keine Regel —, entsteht ein Fehlerbild, das nach Zufall aussieht: Manche Werkzeuge funktionieren, andere nicht, und ein Wechsel des Namens auf die reine Adresse behebt es plötzlich.
- Dienst nur auf IPv4 gebunden
- Der Name löst auch auf IPv6 auf, dort hört aber niemand. Der Client versucht es zuerst dort.
- Filterregel nur für IPv4
- Die Freigabe existiert — für die andere Adressfamilie aber nicht. Zwei Regelsätze, einer gepflegt.
- Nur ein Eintrag im Namensdienst
- Kein Problem: Es gibt nichts zu wählen. Deshalb fällt der Fehler erst auf, wenn jemand den zweiten Eintrag ergänzt.
Was der Host über bestehende Verbindungen verrät
Offene Ports sind die eine Hälfte der Bestandsaufnahme. Die andere sind die bestehenden Verbindungen: wer redet gerade mit wem, in welchem Zustand, und wie viele davon gibt es.
Dasselbe Werkzeug, das Listener anzeigt, zeigt auch sie. Zwei Beobachtungen daraus tragen im Betrieb überraschend weit.
- Viele Verbindungen im Wartezustand
- Ein Gegenüber antwortet nicht mehr oder langsam. Häufig ein Hinweis auf ein Problem auf der anderen Seite, nicht auf diesem Host.
- Ausgehende Verbindungen zu unerwarteten Zielen
- Ein Dienst spricht mit etwas, das im Betriebsmodell nicht vorgesehen war. Der erste Griff bei einer Auffälligkeit — und der billigste.
- Verbindungen, die sich häufen statt abzubauen
- Ein Hinweis auf Verbindungen, die niemand schließt. Läuft irgendwann in eine Ressourcengrenze des Prozesses.
Und sie schließen den Bogen zu den vier Fragen vom Anfang: Wer auflöst, wer bindet, wer filtert und wer redet, ist zusammen das vollständige Bild eines Hosts in seinem Netz. Jede dieser Fragen ist auf dem Host selbst beantwortbar, und drei von vier ohne jede Änderung.
Der Host-Name und wo er überall steht
Ein scheinbar triviales Thema, das regelmäßig Zeit kostet: Wie ein Host heißt, steht an mehreren Stellen — und sie können auseinanderlaufen.
- Der gesetzte Rechnername
- Was das System über sich selbst sagt. Wird beim Start gesetzt und lässt sich zur Laufzeit ändern.
- Der Eintrag in `/etc/hosts`
- Sorgt dafür, dass der eigene Name auch ohne DNS auflöst. Fehlt er, warten manche Programme beim Start in ein Zeitlimit.
- Der Eintrag im Namensdienst
- Was andere sehen. Muss mit dem Rechnernamen nicht übereinstimmen — und tut es nach Umzügen oft nicht.
- Was der Verwalter setzt
- Bei Adressvergabe per DHCP kann der Name von dort kommen und eine lokale Einstellung überschreiben.
Für Zertifikate ist dieselbe Frage noch schärfer: Ein Zertifikat gilt für einen Namen, nicht für einen Host. Stimmt der Name, unter dem ein Client den Dienst anspricht, nicht mit dem im Zertifikat überein, scheitert die Verbindung — obwohl Netzwerk, Auflösung und Dienst alle einwandfrei arbeiten.
Die Reihenfolge bei einem Verbindungsproblem
Die Reihenfolge ist bewusst so gewählt, dass jeder Schritt den nächsten überflüssig machen kann. Löst der Name falsch auf, braucht niemand die Firewall anzusehen. Ist der Dienst nur an die Loopback-Adresse gebunden, erklärt das alles Weitere. Wer stattdessen mit der Firewall anfängt — dem sichtbarsten und am häufigsten verdächtigten Bestandteil —, prüft zuerst das, was am seltensten die Ursache ist, und ändert dabei oft etwas, das vorher richtig war.
nsswitch.conf entscheidet, und /etc/hosts gewinnt. `resolv.conf` ist meist ein Verweis — kläre, wer sie schreibt, bevor du sie änderst. Erreichbar ist nicht antwortend, und eine Bindeadresse auf Loopback sieht aus wie eine Firewallregel. Und der Regelzustand hat genau einen Besitzer — eine zweite Ebene daneben macht den wirksamen Zustand unlesbar.Jetzt anwenden
Diesen Stoff gibt es als Modul mit bewerteten Entscheidungs-Checks — dieselbe Einführung, danach die Übungen.
Zum Modul →Quellen & Aktualität7 Primärquellen · zuletzt geprüft:
- 01man7.org/linux/man-pages/man5/nsswitch.conf.5.html
- 02man7.org/linux/man-pages/man5/resolv.conf.5.html
- 03man7.org/linux/man-pages/man8/systemd-resolved.service.8.html
- 04man7.org/linux/man-pages/man8/ss.8.html
- 05man7.org/linux/man-pages/man5/hosts.5.html
- 06firewalld.org/documentation
- 07docs.redhat.com/en/documentation/red_hat_enter…ewall-packet-filters