How to Export a DNS Zone File from Plesk (for Migrations, Backups, and Audits)

Need a clean DNS zone file out of Plesk for a migration or backup? In this guide, we walk through exporting zone files via the Plesk UI with the Transfer of DNS Records extension and directly from the server’s BIND configuration, with notes on common pitfalls and how to use the exported file.

Table of Contents

If you manage DNS on a Plesk server, there will eventually come a day when you need a plain old BIND zone file:

  • You’re migrating DNS to Cloudflare, Route 53, or another provider.
  • You want a real backup of your zone, not just “trust the control panel.”
  • You need to diff what Plesk thinks is in DNS vs. what’s live elsewhere.

In this article we’ll walk through two practical ways to export DNS zones from Plesk:

  1. Using the Plesk UI with the official Transfer of DNS Records extension.
  2. Exporting directly from the server (Linux, BIND) for those comfortable on the shell.

The examples here assume Plesk Obsidian on Linux with BIND as the DNS server, which is a very common setup.


Before You Start: A Few Gotchas

  • You’ll need Plesk admin (or equivalent) to install extensions and see server-wide DNS.
  • If DNS for the domain is disabled in Plesk, you’ll need to enable the local DNS zone first.
  • Exported files are BIND-style zone files (.bind or just the zone name), which most DNS providers can import.

Method 1 – Export via Plesk UI (Transfer of DNS Records)

The cleanest way to export a DNS zone from Plesk is with the Transfer of DNS Records extension. It’s an official Plesk extension built specifically to import and export DNS records as zone files.

Step 1: Install “Transfer of DNS Records”

  1. Log in to Plesk as admin.
  2. Go to Extensions in the left-hand menu.
  3. In the search box, type “Transfer of DNS Records”.
  4. Click Install on the extension by Plesk.

Once installed, the extension hooks into the DNS Settings page for each domain.

If you don’t see the extension or the “Transfer DNS” button later, check that you’re looking at a subscription owned by the admin; it can be hidden for customer-owned subscriptions.

Step 2: Open DNS Settings for Your Domain

  1. Go to Websites & Domains.
  2. Click into the subscription that contains the domain you care about.
  3. Click DNS Settings under that domain.

You should now see the familiar list of DNS records managed by Plesk.

Step 3: Export the DNS Zone

With the extension installed, you’ll see a Transfer DNS button in the DNS Settings view.

  1. Click Transfer DNS (or Transfer of DNS Records, depending on your skin).
  2. Choose Export.
  3. Plesk will generate a zone file in BIND format and download it to your browser – typically with a .bind extension.

You now have a file like:

This file contains all the standard records (SOA, NS, A, AAAA, CNAME, MX, TXT, SRV, etc.) in a format your new DNS provider can usually import directly.


Method 2 – Export the Zone File Directly from the Server (Linux/BIND)

If you’re comfortable with SSH and want more control, you can pull the zone file straight from BIND on the server.

On Plesk for Linux, BIND/named stores its configuration and zone files in a run-root directory. A typical layout looks like this:

  • /var/named/run-root/etc/named.conf – BIND configuration, lists all zones.
  • /var/named/run-root/var/ – individual zone files (one file per domain).

Paths can vary a bit by distro, but this pattern is very common on modern Plesk systems.

Step 1: SSH into the Server

From your workstation:

(Use your usual SSH user if you don’t log in directly as root.)

Step 2: Find the Zone File for Your Domain

Search named.conf for your domain:

You should see a block like:

This tells you that BIND is using a file named example.com (relative to the zone directory) for that domain.

Step 3: Copy the Zone File Somewhere Safe

Zone files typically live under /var/named/run-root/var by default:

Now you have /root/example.com.zone – your exported DNS zone file.

You can then:

  • View it:
  • Download it via scp:
  • Commit it to git or hand it to your DNS provider.

Tip: If you’re doing a bulk migration, you can script over all zone entries in named.conf and copy each referenced file into a tarball.


How the Exported Zone File is Used

Once you’ve got a .bind or .zone file, you can:

  • Import into a new DNS provider – Many providers (including some cloud DNS services) accept BIND-style imports directly.
  • Audit what Plesk thinks is in DNS – Compare Plesk’s zone to a Cloudflare export, for example, and spot missing CNAMEs, stale records, or mismatched SOA/NS.
  • Version control your DNS – Store zone files in git so you can diff changes over time and roll back if something breaks.

Common Pitfalls to Watch For

1. SOA and NS Differences

When migrating FROM Plesk TO an external DNS service, you’ll almost always need to:

  • Replace Plesk’s SOA MNAME with the new provider’s primary nameserver.
  • Replace NS records (ns1/ns2.yourserver) with the provider’s NS set.

Most providers will handle this automatically when you import, but it’s worth verifying.

2. Relative vs Fully Qualified Names

Plesk’s BIND zones often rely on an $ORIGIN line ($ORIGIN example.com.), so records like:

are really www.example.com..

If you manually edit or re-import these, be sure your provider interprets them correctly or convert them to fully qualified names.

3. TTL and Default TTL

Plesk uses $TTL at the top of the file and may omit TTL on individual records. Some DNS import tools expect an explicit TTL on each line; others understand $TTL. If an import fails, check the error message – sometimes you just need to add or normalize TTL values.

4. DNSSEC / Special Records

If DNSSEC or provider-specific features are enabled:

  • DS or DNSKEY records may need to be re-created at the new provider.
  • Provider-specific metadata (Cloudflare tags, ALIAS/ANAME, etc.) will not round-trip through a plain BIND file.

When to Use Which Method

Use the Plesk UI + extension when:

  • You’re doing a one-off export for a single domain or a small handful.
  • You want a simple, supported path with minimal shell access.

Use the direct zone file method when:

  • You’re doing a big migration (many zones at once).
  • You’re automating backups or storing DNS in version control.
  • You want the zone file exactly as BIND sees it, no extra tooling involved.

Have a project or a problem?

Talk with a senior engineer for practical recommendations—no obligation.

Leave a comment

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Posts

Categories

Get a free consultation from Reliable Penguin

Submit the form—or for immediate service call 866-649-7984.