Creating this post just to save what worked for my No-IP configuration with my office’s Router for VPN configuration with FQDN & dynamic public IP.
Source: https://github.com/mdmower/bash-no-ip-updater
A bash script to update the IP address of No-IP hostnames. Supports multiple hostname updates and log rotation (config_sample).
Prerequisites
- bash
- curl or wget
- GNU coreutils
- gzip (optional, for log rotation)
Installation & Configuration
Clone the script from Repository:
git clone https://github.com/mdmower/bash-no-ip-updater.git
Move to Bash-No-Ip-Updater Script directory:
cd bash-no-ip-updated
Rename the configuration file:
sudo cp config_sample config
Make required changes in configuration file and enter as per your settings:
sudo nano conifg
Enter following details in the configuration file:
- Username of No-IP
- Password of No-IP
- FQDM or HOST configured at No-IP

Save and exit. Now configuration is complete. We can test it now.
Usage
./noipupdater.sh [-c /path/to/config] [-i 123.123.123.123]
–c (optional): Path to config file (see config_sample). If this parameter is not specified, then the script will look for file config in the same directory as the script.
-i (optional): Manually set the IP address that should be assigned to the hostname(s). If this paremter is not specified, the IP address will be auto-detected by No-IP.
Automation
To automate this script, we need to add it to crontab with: crontable -e command.
Run script once each day at 5:30am:
30 5 * * * /path/to/noipupdater.sh
Run the script every fifteen minutes:
*/15 * * * * /path/to/noipupdater.sh
Note: This is a bash script, so you may need to specify
SHELL=/bin/bash
in crontab.

How to Enable & Check cron logs in Ubuntu
Modify rsyslog config:
open /etc/rsyslog.d/50-default.conf
remove # before cron.*
Restart rsyslog service:
sudo service rsyslog restart
Restart cron service:
service cron restart

NOW you can check cron log from file /var/log/cron.log
Another useful script, not tested yet:
Script to auto renew/confirm noip.com free hosts
https://github.com/loblab/noip-renew
Reference Link
noip.com free hosts expire every month. This script auto clicks web pages to renew the hosts, using Python/Selenium with Chrome headless mode.
