Debian 13: Unexpected Port 5355 in the Daily Health Check

Debian 13: Unexpected Port 5355 in the Daily Health Check

The daily health check reports an unexpected public port 5355 - the cause is LLMNR from systemd-resolved.

Starting Point: Health check reports an unexpected public port 5355

Goal: Identify the cause of the open port, selectively disable the unneeded service, and verify the result

Tested: Debian 13 (trixie) (2026-08-18)

All examples use fictional data: server beispielserver.example.com.

Starting Point

In the morning, the daily health check of a newly configured Debian 13 server reported:

[WARN] unexpected public port 5355 listening

We had not opened port 5355 during setup and had not intended to use it on the server.

The first question was therefore not how to close the port, but: Which program opened it in the first place?

1. Identify the Listener and Process

With the appropriate options, ss shows not only the open listeners but also the associated process:

sudo ss -lntup | grep ':5355'

On the server, this produced:

udp   UNCONN 0 0 0.0.0.0:5355 0.0.0.0:* users:(("systemd-resolve",pid=384,fd=11))
udp   UNCONN 0 0 [::]:5355    [::]:*    users:(("systemd-resolve",pid=384,fd=13))
tcp   LISTEN 0 4096 0.0.0.0:5355 0.0.0.0:* users:(("systemd-resolve",pid=384,fd=12))
tcp   LISTEN 0 4096 [::]:5355    [::]:*    users:(("systemd-resolve",pid=384,fd=14))

This made the cause clear: systemd-resolved.

The service was listening on port 5355 over both TCP and UDP, on all IPv4 and IPv6 addresses.

2. Check the Cause

Port 5355 is used by LLMNR (Link-Local Multicast Name Resolution).

First, we checked whether LLMNR had been explicitly configured on the server:

grep -R '^[[:space:]]*LLMNR' \
    /etc/systemd/resolved.conf \
    /etc/systemd/resolved.conf.d/ 2>/dev/null

No output - we had not created any custom configuration for it.

The actual state of systemd-resolved could be checked with resolvectl:

resolvectl status

Excerpt:

Global
         Protocols: +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
  resolv.conf mode: stub

Link 2 (ens18)
    Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
         Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported

LLMNR was therefore active even though we had not configured it ourselves when setting up the server.

3. Selectively Disable LLMNR

systemd-resolved itself is still needed for DNS resolution. We therefore did not disable the entire service, but only the unneeded LLMNR functionality.

Create a dedicated drop-in directory:

sudo mkdir -p /etc/systemd/resolved.conf.d

Then create, for example, /etc/systemd/resolved.conf.d/10-disable-llmnr.conf:

[Resolve]
LLMNR=no

Then restart systemd-resolved:

sudo systemctl restart systemd-resolved

4. Verify the Configuration

First, check the resolver status again:

resolvectl status

The server then showed:

Global
         Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
  resolv.conf mode: stub

Link 2 (ens18)
    Current Scopes: DNS
         Protocols: +DefaultRoute -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported

LLMNR is now disabled both globally and on the network interface.

What matters, however, is the actual listener. So, one final check:

sudo ss -lntup | grep ':5355'

No more output - port 5355 is closed.

ℹ️ Info
The local DNS listeners of systemd-resolved remain active. LLMNR=no does not disable DNS resolution; it disables only LLMNR.

The Health Check Behind It

The finding did not come from a targeted scan for LLMNR. The daily health check compares public listeners with the ports expected on the server.

That is how port 5355 was noticed in the first place:

[WARN] unexpected public port 5355 listening

In the future, the check will additionally take the firewall rules into account. This will make it easier to distinguish whether an unexpected listener is already blocked by the firewall or is actually reachable through an allowed port.

The Debian Health Check used here can be found in the public Lazy Admin Tools repository. The project is also mirrored on GitHub.

Result

Health check warning → listener identified with sssystemd-resolved found as the cause → LLMNR confirmed with resolvectl → selectively disabled → port 5355 disappeared.

Not a large tutorial about systemd-resolved or LLMNR, but a small finding from day-to-day server operations - and exactly why the health check keeps an eye not only on known services, but also on unexpected public listeners.

Michael

has worked with technical systems, their dependencies, and interfaces for more than four decades – today with a particular focus on resilient systems, digital independence, and the controlled use of AI.
More about Michael →

Open Knowledge Needs People

We develop ideas, share knowledge, and create open-source software and tools. With your support, you help us continue this work for years to come.
Get involved and support our work →
Debian 13: Unexpected Port 5355 in the Daily Health Check
← Next Article OpenBSD: Pending Patches in the Daily Health Check