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.