A method of keeping a domain name linked to a changing IP address. Typically, when you connect to the Internet, your ISP assigns an unused IP address from a pool of IP addresses, and this address is used only for the duration of that specific connection. Therefore, it may change as often as every day. freemyip.com provides a method of contacting the DNS service each time the IP address provided by the ISP changes, and subsequently updating the DNS database to reflect the change in IP address. In this way, even though your IP address will change often, other users do not have to know the changed IP address in order to connect with your computer. They can always use the same dynamic DNS domain. This allows you to have your own web server, or easily connect remotely to your network using SSH, among other examples.
Every time your IP address changes, you need to connect to the following URL from inside your network:
https://freemyip.com/update?token=YOUR_TOKEN&domain=YOUR_DOMAIN.freemyip.com
The server will automatically recognize your new IP address, and point your dynamic domain to the new IP address.
When you use the above URLs to update your IP address, the server will return either "OK" or "ERROR" response. If you want to learn more details about your result, you can add "&verbose=yes" parameter at the end of your URL. For example:
https://freemyip.com/update?token=YOUR_TOKEN&domain=YOUR_DOMAIN.freemyip.com&verbose=yes
The easiest way is to simply go to the above URL in your browser. You can set it as your home page, so that every time you start your browser, your IP address will be updated. It is possible to add a "&redirectURL=www.google.com" parameter at the end of the above URL, to automatically redirect you to www.google.com once your IP is updated (you can put any website you want instead of www.google.com):
https://freemyip.com/update?token=YOUR_TOKEN&domain=YOUR_DOMAIN.freemyip.com&redirectURL=www.google.com
you can install a cron job that will automatically update your IP address every 20 minutes. Make sure you have the "curl" command installed, and then execute the following command:
(crontab -l;echo "*/20 * * * * curl \"https://freemyip.com/update?token=YOUR_TOKEN&domain=YOUR_DOMAIN.freemyip.com\">/dev/null 2>&1")|crontab -
you can configure it in Basic -> DDNS section. In Service dropdown, choose Custom URL. In the URL field, copy and paste the following, and click Save button.:
https://freemyip.com/update?token=YOUR_TOKEN&domain=YOUR_DOMAIN.freemyip.com
you can configure it on Dyndns Services page. In Service type dropdown, choose Custom. Leave Username and Password fields empty. In the Update URL field, copy and paste the following, and click Save button.:
https://freemyip.com/update?token=YOUR_TOKEN&domain=YOUR_DOMAIN.freemyip.com
you can either execute it from command line as follows:
inadyn -N freemyip.com -u YOUR_TOKEN -p YOUR_TOKEN -a YOUR_DOMAIN.freemyip.com -U /nic/update -S default@dyndns.org
this is how your /etc/inadyn.conf file should look like:
# Configuration for freemyip.com system default@dyndns.org username YOUR_TOKEN password YOUR_TOKEN alias YOUR_DOMAIN.freemyip.com server-name freemyip.com server-url /nic/update
this is how your /etc/inadyn.conf file should look like:
# Configuration for freemyip.com
custom freemyip {
password = YOUR_TOKEN
hostname = YOUR_DOMAIN.freemyip.com
ddns-server = freemyip.com
ddns-path = "/update?token=%p"
}
this is how your /etc/ddclient/ddclient.conf configuration file should look like:
# Configuration for freemyip.com custom=yes server=freemyip.com protocol=dyndns2 login=YOUR_TOKEN password=YOUR_TOKEN YOUR_DOMAIN.freemyip.com
this is how you need to configure it in your Dynamic DNS section:
DDNS Service: Custom DYNDNS Server: freemyip.com Username: nulluser Password: nullpassword Hostname: YOUR_TOKEN URL: https://freemyip.com/update?domain=YOUR_DOMAIN.freemyip.com&token= Do Not Use External IP Check: Yes Force Update Interval: 10
this is how you need to configure it in your Dynamic DNS section:
Web: leave empty Web-skip: leave empty Service: custom Hostname: YOUR_DOMAIN.freemyip.com Login: YOUR_TOKEN Password: YOUR_TOKEN Protocol: either dyndns or dyndns2 (whatever is available) Server: freemyip.com
open the Internet settings in UniFi Network and add a Dynamic DNS entry for your WAN connection:
Service: FreeMyIP Hostname: YOUR_DOMAIN.freemyip.com Username: nulluser Password: YOUR_TOKEN Server: leave emptyUsers have reported these settings working on Dream Machine and Cloud Gateway devices. Provider availability and field labels depend on your UniFi version. These settings are for the native FreeMyIP provider; EdgeOS users should use the EdgeRouter instructions above.
in System -> Software, install ddns-scripts and luci-app-ddns. For HTTPS, also install curl and ca-bundle if they are not already installed. The optional ddns-scripts-services package supplies provider definitions; the custom URL below does not need one. Refresh LuCI, then open Services -> Dynamic DNS and add an enabled IPv4 service named freemyip:
Enabled: checked Lookup Hostname: YOUR_DOMAIN.freemyip.com IP address version: IPv4-Address DDNS Service provider: custom Custom update-URL: https://freemyip.com/update?token=[PASSWORD]&domain=[DOMAIN]&myip=[IP] Domain: YOUR_DOMAIN.freemyip.com Username: nulluser Password: YOUR_TOKEN Use HTTP Secure: checked Path to CA-Certificate: /etc/ssl/certsLeave [PASSWORD], [DOMAIN] and [IP] exactly as shown in the custom URL: OpenWrt substitutes the field values. Keep certificate verification enabled. If your router's WAN has your public IPv4 address, use these Advanced Settings:
IP address source: Network Network: wan Event Network: wan Force IP Version: checkedIf the WAN address is private or behind CGNAT, this IP source is not suitable; publishing a name also does not bypass upstream NAT. In Timer Settings, use a 20-minute check interval, a 72-hour force interval and a 20-minute retry interval. The forced refresh keeps an unchanged address active. Select the matching units in LuCI, then Save & Apply and start the service. Check its status and Log File Viewer for errors and the provider's response; a successful update returns OK. This recipe covers IPv4 only. Field labels may vary by OpenWrt version.
run Home Assistant inside the network whose public IPv4 address you want to publish. Add this to configuration.yaml:
shell_command:
update_freemyip: >-
curl -4 --fail --silent --show-error --connect-timeout 10 --max-time 30
'https://freemyip.com/update?token=YOUR_TOKEN&domain=YOUR_DOMAIN.freemyip.com'
If you already have a shell_command: section, add only the update_freemyip entry under it.
The command requires curl, which is included in Home Assistant OS. Keep the quotes around the entire URL.
Add this list item to automations.yaml to update at startup and every 20 minutes:
- id: update_freemyip
alias: Update FreeMyIP
triggers:
- trigger: homeassistant
event: start
- trigger: time_pattern
minutes: "/20"
seconds: "45"
actions:
- action: shell_command.update_freemyip
mode: single
This assumes your configuration includes automation: !include automations.yaml.
If you keep automations directly in configuration.yaml, put the list item under your existing automation: section instead.
Do not add a second top-level shell_command: or automation: key.
Check the configuration, then restart Home Assistant Core for the first setup. For later changes to an already loaded shell-command integration,
reload shell commands and automations. Run shell_command.update_freemyip manually from the action tools and check that its response has
returncode: 0 and stdout: OK. A successful HTTP request alone does not guarantee the update was accepted.
If you need help configuring any other appliance, please use the contact form
Yes. Any subdomain in your domain will return your IP address. For example, if your domain is YOUR_DOMAIN.freemyip.com, you can access your IP by going to this.is.my.YOUR_DOMAIN.freemyip.com or i.really.like.my.YOUR_DOMAIN.freemyip.com, etc. You can use this to set up virtual servers in your network.
Yes. You can set a CNAME record inside your own domain to point to your subdomain at freemyip.com. For example, assuming you own example.com, in the zone file for your domain, you would need to set this record:
my.example.com. CNAME YOUR_DOMAIN.freemyip.com.
Now, if you go to my.example.com, your browser will connect to your dynamic IP address.
Similarly, you can use DNAME record to redirect your whole domain to your dynamic IP address, for example:
my.example.com. DNAME YOUR_DOMAIN.freemyip.com.
Now, if you go to www.my.example.com, ftp.my.example.com, cctv.my.example.com, or any other address within my.example.com, your browser will connect to your dynamic IP address. This way you can easily create virtual web servers in your network, without having to configure anything in your DNS.
Yes. You can use an optional "&myip" parameter to do that. For example, to set your domain to point to IP 1.2.3.4 you need to use the following URL:
https://freemyip.com/update?token=YOUR_TOKEN&domain=YOUR_DOMAIN.freemyip.com&myip=1.2.3.4
Yes. You can use an optional "&myip" parameter to do that. For example, to set your domain to point to IP 2001:db8:: you need to use the following URL:
https://freemyip.com/update?token=YOUR_TOKEN&domain=YOUR_DOMAIN.freemyip.com&myip=2001:db8::
You can keep your subdomain as long as you want, but you have to update your IP at least once a year. Even if it's the same IP, it will still count as an update. So as long as your IP updating script is running, you can keep your subdomain forever.
Yes. You can use an optional "&txt" parameter to do that. For example, to set your TXT record to "my test text" you need to use the following URL:
https://freemyip.com/update?token=YOUR_TOKEN&domain=YOUR_DOMAIN.freemyip.com&txt=my%20test%20text
This will also automagically work for any subdomain within your domain. If you want to remove your TXT record, use "&txt=null" or "&txt=". You can also add parameter "&verbose=yes" to see some more information in the output, especially if you encounter an error. Any time you change your TXT record, you will have to wait around 1 minute for DNS cache to get updated.
Yes. You can use an optional "&delete=yes" parameter to do that. But be careful: your subdomain will be permanently deleted, and it won't be possible to create the same subdomain within 12 months (this is to prevent somebody else from "stealing" your deleted subdomain).
Yes. You can use the following URL to check your current external IP address:
http://freemyip.com/checkip
If you want to use this URL in pfSense in the "Check IP Services" section, you might need to add the "?format=pfsense" parameter if your pfSense is an older version (from before 2022).