Who is sending my public ip to freedns?

Hello Experts,

My freedns ddns is working very well. But I have a question. Who is supplying my public ip to the freedns server? Here is my setup :

Router : WRT1900ACv1
OW version : OpenWrt 24.10.3 r28872-daca7c049b 
LuCI openwrt-24.10 branch 25.250.61039~923f8d9
DDNS Advanced Settings –> IP Address Source –> Network
DDNS Advanced Settings –> Network –> wan

My ISP Vergin Media gave me Superhub 5 which I am using in DMZ mode.

SH5 public ip : 86.25.*.*
SH5 private ip : 192.168.0.1
wan ip : 192.168.0.252

Ideally when I choose wan as ip source, the ddns should show unintended address 192.168.0.252, isn’t it? But somehow freedns is picking up right address 86.25.*.*. Who is ‘correcting the mistake’?

Thank you!

-Gamma

No, because it's not your public IP, that's the 86.25.x.x IP, it sits on your Superhub's WAN port.

Your DDNS client makes a call to an external "what's my IP" service, the IP it gets back is what's used to update the DDNS IP entry.

2 Likes

OK, excellent.

Perhaps, you. It is your intention to have working DDNS, correct?

Absolutely not. That IP won't help you for the Internet DDNS service.

This also means your OpenWrt doesn't have a Public IP addresses.

1 Like

FreeDNS is installed on your OpenWrt device. Traffic is OpenWrt > ISP router > internet > FreeDNS. FreeDNS is asked by the ISP router, so it is normal that it gets its public IP. Everything behind the ISP router is routed and considered as private LAN.
Furthermore the 192.168.x.x IP range is a private range is not routable, so it will never be reached from the internet.
Conclusion 86.25.x.x is the correct answer.

1 Like

Correct, however that will be useless. Note that OpenWrt DDNS client will not send such update until "Allow non-public IPs" is enabled in DDNS Global Settings.

I do not see any "correction" in my test. Freedns happily accepts private IP sent in the update.
If you want to investigate further, show the recent DDNS client log.

1 Like

No. As stated in the very first post, "IP Address Source" is "Network" where "Network" is "wan". In this case DDNS client takes the address from the corresponding interface, the whole procedure is completely local to the device.

1 Like

Then there wouldn't be public IP mapped to the DDNS ?

I mean I understand how it's supposed to work, but thats not the case here...

OT, but what's the point of having a DDNS entry mapped to your local router IP ?
Why not simply use dnsmasq to achieve the same thing?

1 Like

Perhaps we should ask to see the configuration and inquire if the user saved and applied it.

The log I asked for will also reveal the configuration.

1 Like

Mine says press the read button, but for the last few versions, no button exists (and when it did, another package was required to be installed).

Here's the CLI:

cat /var/log/ddns/<foo>.log

1 Like

There is no point in real life, but the main question OP raised is "who is interfering the process".
If I drop a glass, I expect to see shards on the floor. Maybe not the best analogy, but still. :wink:

1 Like

Hi, @AndrewZ ,

Got it. My log says private ips not allowed.

143434 ERROR : No or private or invalid IP '192.168.0.252' given! Please check your configuration143434 ERROR : No update send to DDNS Provider143434 : Waiting 300 seconds (Check Interval)

I think I need to pick up the public ip from a script.

Thank you.

-Gamma

1 Like

Or the result of contacting a URL, which is another option configurable in the web GUI.

You have at least two options:

  • use a custom configuration and use the update URL offered by the provider (I suggest using their v2 option); they will take your address from the source of your request
  • keep what you have now but change the source to URL and provide the detection URL

Hi @AndrewZ ,

Thank you for offering the solutions. I took the first option. It’s working well. But there is an error in log :

logread -e afraid
Mon Nov 10 20:49:33 2025 user.warn ddns-scripts[20383]: afraid: Updating IP at DDNS provider failed - starting retry 1/0

followed by retry message :

Mon Nov 10 20:49:36 2025 user.info ddns-scripts[20383]: afraid: Update successful - IP '86.p.q.r' send

I wonderd what is the error. A quick look says :

cat /var/run/ddns/afraid.dat
ERROR: Address 86.p.q.r has not changed.

Though the ddns record is updated successfully, still there are conflicting messages. Any idea why?

Thank you.

I commonly receive an "error" with other providers that the IP remains the same - no update needed, but YMMV with Afraid.

Thank you for the assurance. I appreciate your help.

-Gamma

Retries with DDNS and DNS are common here. Usually it's OK to ignore them until you start seeing huge retry counters.
I recommend installing curl and checking DDNS client log instead of the System log.
The DDNS client log will clearly show you where exactly the failure occurred.
"Address 86.p.q.r has not changed" is technically not an error. In such a case they actually respond with a friendly text "No IP change detected for ..., skipping update".
With Option#2 you would probably get a better error handling.

Thank you for the suggesting option2. With my limited knowledge, I feel a known monster is better than unknown! :slight_smile: So I am going to ignore the ‘error’ messages.

-Gamma

I chose first option. That is using a direct url update. I am marking it as a solution. Thanks.

-Gamma