↗DyDNSDYNAMIC DNS
YOUR DOMAIN. YOUR CONNECTION. FREE DYNAMIC DNS.

A steady address.
A changing IP.

Reach your home server, studio, or network with a hostname you already own. A small client keeps DNS up to date when your public IP changes, so you can keep using the same familiar name.

See what you can connect
01

Bring your hostnameAdd a CNAME at your existing DNS provider.

02

Connect your deviceRun the readable Python client or download a native client.

03

Let it stay in syncThe client detects public IP changes and updates DNS.

Download Python client ↓

Readable source · Python 3.9+ · No extra packages.
Create an account and verify your hostname to download its configuration.

Free to use · Bring your own domain
Works with IPv4 and IPv6 · Windows, macOS & Linux

Welcome back.

Sign in to manage your hostnames.

Use a unique password and keep it in your password manager. Email-based password recovery is not available yet.

BUILT FOR YOUR OWN CORNER OF THE INTERNET

Less remembering IPs.
More using what you built.

When your internet provider changes your address, your bookmarks and connection settings can stay familiar.

01 / HOME & NAS

A familiar name for home.

Use home.example.com for a service on your home server or NAS. Keep the same name after a router reconnect changes your public IP.

02 / HOMELAB & DEVELOPMENT

Keep your projects within reach.

Give a reachable lab server or development service a memorable hostname. Let the client handle address changes while you focus on your project.

03 / YOUR VPN SERVER

A steady name for your way in.

Point your VPN endpoint hostname at your current public IP. Your VPN software controls the secure connection and may need to reconnect to resolve a changed address.

Have these three things? You’re ready to start.

A domain you control, access to its DNS settings, and a device that can run a client.

For remote access, you also need a reachable public IP and a service configured for access through your router and firewall. Keep that service authenticated and up to date.

A NAME THAT KEEPS UP

Your IP changes.
Your hostname stays.

Connect a hostname once. Let a small client keep its address current, wherever your connection takes you.

  1. 01
    Connect your hostname

    Add the assigned CNAME at your DNS provider and verify it here.

  2. 02
    Run a client

    Download a client and its private configuration. It checks your public IP every 60 seconds.

  3. 03
    Keep using the same name

    When your IP changes, the client updates the managed DNS record automatically.

HOW YOUR HOSTNAME RESOLVESInteractive example
YOUR HOSTNAMEhome.example.com

At your existing DNS provider

Stays the same
MANAGED BY DyDNSabc123.dyname.bots.im

A unique target assigned to you

Stays the same
YOUR PUBLIC IP203.0.113.24

Your home or office connection

Current address

Your client keeps the last step current. It sends an authenticated HTTPS update to dns.bots.im when it detects a new IP.

Try it: only the public IP needs to change.

Illustration only—no live DNS changes. Real updates also depend on DNS cache expiry. Both IPv4 and IPv6 are supported.

DNS gives your device a name.

Visitors connect directly to your public IP; their traffic does not pass through DyDNS. Your service must already be reachable through your router and firewall. Dynamic DNS does not bypass CGNAT or provide a tunnel.

BEFORE YOU GET STARTED

A few good questions.

How much does DyDNS cost?

DyDNS is free to use. Create an account, connect a hostname you own, and download a client to keep its IP address updated. You supply your own domain and internet connection; any charges for those remain with your providers.

What is dynamic DNS, and when do I need it?

Dynamic DNS keeps a hostname pointing to an IP address that can change. It is useful when you run a service on a home or office connection without a fixed public IP. DyDNS updates the address behind your hostname when its client detects a change.

Do I need to move my domain or change nameservers?

No. Keep your domain and DNS provider. Add a CNAME for a subdomain such as home.example.com, pointing to the unique target DyDNS assigns to you. Your other DNS records stay in place. You need your own domain; DyDNS does not register one for you.

Will it work behind CGNAT?

Dynamic DNS does not bypass CGNAT, open router ports, or create a tunnel. If your provider does not give you a reachable public IPv4 address, ask about a public IP or consider reachable IPv6 if both ends support it. A tunnel or relay is a separate service.

How quickly does a changed IP take effect?

The client checks every 60 seconds by default and sends an update when it detects a change. DNS caches can keep an older address until its TTL expires, so an update is not immediately visible everywhere.

Which devices can run the client?

Native clients are available for Windows, macOS, and Linux on Intel/AMD and ARM64. The readable Python client needs Python 3.9 or later and no extra packages. Run a client on a device on the connection you want to keep updated.

Does my traffic pass through DyDNS?

No. DyDNS maintains DNS records. Connections to your service go directly to your public IP. You manage access controls, encryption, and firewall rules for that service. Keep your downloaded client configuration private: it contains the token used to update your hostname.

Why does my hostname need verification?

Verification confirms that you control the hostname by checking its assigned CNAME. Use a subdomain and DNS-only mode; proxied or flattened records cannot be verified. Once verified, download a client configuration from your dashboard.

CHOOSE YOUR CLIENT

One hostname. Every platform.

Download any client without signing in. Each client checks your public IP every 60 seconds by default and updates your hostname when it changes.

Before you run a client

  1. Create an account or sign in above.
  2. Add a hostname you own, create the supplied CNAME at your DNS provider, then verify it.
  3. Select Connect client, choose IPv4 or IPv6, and download your configuration. Save it as dydns-client.json beside the client.

Keep this configuration private. Generating a replacement revokes the previous client token for that hostname. IPv6 requires an IPv6 connection.

Python · All platforms

Readable source. Python 3.9+; no extra packages.

Download Python source ↓
Run & startup instructions

Place the client and dydns-client.json together. Open a terminal in that folder and run:

python3 dydns-client.py --config dydns-client.json

Add --once for a single check. On Windows, replace python3 with py -3. Schedule that command with your operating system scheduler, or leave it running.

macOS · Apple silicon

For Macs with an Apple M-series chip.

Download client ↓
Run & startup instructions

Place the client and dydns-client.json together. Open a terminal in that folder and run:

chmod +x dydns-client-darwin-arm64
./dydns-client-darwin-arm64 -config dydns-client.json

Start automatically for your user account:

./dydns-client-darwin-arm64 -config dydns-client.json -install

To remove automatic startup, run the same command with -uninstall instead.

Uses a launch agent and starts when you sign in. Developer ID signed; not yet notarized. macOS may still block the download.

macOS · Intel

For Macs with an Intel processor.

Download client ↓
Run & startup instructions

Place the client and dydns-client.json together. Open a terminal in that folder and run:

chmod +x dydns-client-darwin-amd64
./dydns-client-darwin-amd64 -config dydns-client.json

Start automatically for your user account:

./dydns-client-darwin-amd64 -config dydns-client.json -install

To remove automatic startup, run the same command with -uninstall instead.

Uses a launch agent and starts when you sign in. Developer ID signed; not yet notarized. macOS may still block the download.

Windows · Intel / AMD

For most Windows PCs with a 64-bit Intel or AMD processor.

Download client ↓
Run & startup instructions

Place the client and dydns-client.json together. Open PowerShell in that folder and run:

.\dydns-client-windows-amd64.exe -config dydns-client.json

Start automatically for your user account:

.\dydns-client-windows-amd64.exe -config dydns-client.json -install

To remove automatic startup, run the same command with -uninstall instead.

Runs at sign-in using Task Scheduler. Installation may require an elevated PowerShell window. Unsigned; Windows may show a publisher warning.

Windows · ARM64

For Windows on ARM devices.

Download client ↓
Run & startup instructions

Place the client and dydns-client.json together. Open PowerShell in that folder and run:

.\dydns-client-windows-arm64.exe -config dydns-client.json

Start automatically for your user account:

.\dydns-client-windows-arm64.exe -config dydns-client.json -install

To remove automatic startup, run the same command with -uninstall instead.

Runs at sign-in using Task Scheduler. Installation may require an elevated PowerShell window. Unsigned; Windows may show a publisher warning.

Linux · x86-64

For 64-bit Intel / AMD Linux systems.

Download client ↓
Run & startup instructions

Place the client and dydns-client.json together. Open a terminal in that folder and run:

chmod +x dydns-client-linux-amd64
./dydns-client-linux-amd64 -config dydns-client.json

Start automatically for your user account:

./dydns-client-linux-amd64 -config dydns-client.json -install

To remove automatic startup, run the same command with -uninstall instead.

Uses a systemd user service. To run before sign-in, ask your administrator to enable lingering for your account.

Linux · ARM64

For 64-bit ARM Linux systems, including compatible Raspberry Pi installations.

Download client ↓
Run & startup instructions

Place the client and dydns-client.json together. Open a terminal in that folder and run:

chmod +x dydns-client-linux-arm64
./dydns-client-linux-arm64 -config dydns-client.json

Start automatically for your user account:

./dydns-client-linux-arm64 -config dydns-client.json -install

To remove automatic startup, run the same command with -uninstall instead.

Uses a systemd user service. To run before sign-in, ask your administrator to enable lingering for your account.

Use Ctrl+C to stop a client running in your terminal. Download SHA-256 checksums to verify the files you downloaded.

Choose a hostname from a domain you control. You’ll verify it with a CNAME.

1

Download the client

Download client ↓
2

Create a device configuration

Creating a new configuration revokes the previous token for this hostname. Keep the file private.

3

Start the client

Place both downloads in the same folder, open a terminal there, and run:

It checks every 60 seconds. Leave it running. For automatic startup:

macOS clients are signed with Developer ID but are not yet notarized, so macOS may still block them. Windows clients are unsigned and may show a publisher warning.