no-ip provides free hostname for their ddns clients. For example, you can get a xxx.ddns.net domain name in their website.

Then you may want to setup a ddns client for this hostname. Otherwise no-ip will disable your domain name due to inactivity.

For example, I have a VPS whose system is Debian 12. So I installed no-ip's official ddns client 'noip-duc' on this VPS.

 # Download and install the linux DUC in terminal.
$ wget --content-disposition https://www.noip.com/download/linux/latest
$ tar zxf noip-duc_3.3.0.tar.gz
$ sudo apt install ./noip-duc_3.3.0_amd64.deb

# To login and send updates using DDNS Keys enter the following:
$ noip-duc -g all.ddnskey.com --username <DDNS Key Username> --password <DDNS Key Password>

You can get <DDNS Key Username> and <DDNS Key Password> on their website as well.

The command noip-duc run at front-end. If you want to run it as a system service, then take the following steps.

 $ sudo mkdir -p /etc/noip-duc
$ sudo vi /etc/noip-duc/noip-duc.env
DDNS_USER="your_ddns_username"
DDNS_PASS="your_ddns_password"

$ sudo vi /etc/systemd/system/noip-duc.service
[Unit]
Description=No-IP Dynamic DNS Update Client
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/noip-duc -g all.ddnskey.com --username ${DDNS_USER} --password ${DDNS_PASS}
EnvironmentFile=/etc/noip-duc/noip-duc.env
Restart=on-failure
RestartSec=30s
User=your_user
Group=your_user

[Install]
WantedBy=multi-user.target

Enable it as systemd service.

 $ sudo systemctl daemon-reload
$ sudo systemctl enable noip-duc.service
$ sudo systemctl start noip-duc.service
$ sudo systemctl status noip-duc.service

Run the command to check logs.

 $ journalctl -u noip-duc.service -f

As long as you keep noip-duc running on the system, you can keep the domain name for free.