resolvectl
Overview
resolvectl manages and queries systemd-resolved: DNS servers, domains, LLMNR/mDNS, and per-link DNS. Replaces older systemd-resolve naming on modern systems.
Syntax
resolvectl [options] command [argument...]Common Options
| Option | Description |
|---|---|
status |
Global and per-link resolver status |
query NAME |
Resolve a name |
flush-caches |
Drop DNS cache |
dns [LINK [SERVER...]] |
Show/set DNS servers for a link |
domain [LINK [DOMAIN...]] |
Search/route domains |
statistics |
Cache stats |
Key Use Cases
- Debug DNS on systemd systems
- See which servers a link uses
- Flush bad cache entries
- Query records without dig
Examples with Explanations
Resolver status
resolvectl statusShows default route DNS and link-specific config.
Query
resolvectl query example.com
resolvectl query -t MX example.comQuick lookups via resolved.
Flush cache
sudo resolvectl flush-cachesAfter DNS changes or poisoning suspicion.
Per-interface DNS
resolvectl dns
resolvectl dns eth0Confirm VPN vs LAN DNS split.
Notes & Pitfalls
- If resolved is disabled, use
digagainst/etc/resolv.confnameservers directly. - On some Ubuntu netplan setups, resolved is the default stub listener on
127.0.0.53.