ericpaulbishop / gargoyle

Gargoyle Router Management Utility
http://www.gargoyle-router.com
468 stars 221 forks source link

Continue with the question of DDNS automatic stop #831

Closed livepu closed 5 years ago

livepu commented 5 years ago

Through its own system records, it is found that https://aruljohn.com/, the acquired IP is sometimes incorrect. I actually got the IP address 10.20.10.22.

https://github.com/ericpaulbishop/gargoyle/blob/master/package/ddns-gargoyle/src/check_local_ip_urls.c I find that here, logically, IP is always acquired through the network. Instead of local interface to get IP

lantis1008 commented 5 years ago

It is already solved by https://github.com/lantis1008/gargoyle/commit/407a3b42eaca9945518d6848c7a91a27410fac58 But has not been merged back into Master yet.

livepu commented 5 years ago

Get IP through local interface to judge whether it is reasonable or not. If not, would it be better to get it online?

lantis1008 commented 5 years ago

It supports fetching from a local interface or online, but not both. We rely on external services to have their systems working fine, if not we move away from them. I tried to contact @aruljohn on Facebook and he never replied.

Perhaps he doesn't want to allow his service to be pinged by routers on a semi regular basis, or there is something else going on.

livepu commented 5 years ago

Is it better to use local interface to judge ip? In addition, when to release 19.07

lantis1008 commented 5 years ago

That depends on your particular setup. If you have a double NAT type scenario or router that is not directly internet facing, then no.

I don't know yet, OpenWrt haven't even released it upstream. I'm just doing preparatory development works.

livepu commented 5 years ago

Can add a manual selection to the ddns to identify the ip method? I think this is closer to the actual needs.

lantis1008 commented 5 years ago

You can already set it in the config file. I don't think this is a use case for most users, so I don't want to confuse the issue by adding it to the GUI

livepu commented 5 years ago

I edit /etc/ddns_gargoyle.conf,like this

service ddns_1
        enabled 1
        service_provider        3322.org
        ip_source       INTERFACE
        force_interval  1
        force_unit      days
        check_interval  10
        check_unit      minutes

but system log show error

Mon Sep  2 13:14:21 2019 daemon.notice procd: /etc/rc.d/S90ddns_gargoyle: ERROR: No valid dynamic DNS service configurations defined
Mon Sep  2 13:14:21 2019 daemon.notice procd: /etc/rc.d/S90ddns_gargoyle: (Did you specify correct configuration file path?)
Mon Sep  2 13:14:21 2019 daemon.notice netifd: Network device 'wlan0' link is up
lantis1008 commented 5 years ago

Need ip_interface as well. I assume this could be "wan", but may need to be "eth0" etc.

livepu commented 5 years ago

I try 3 times . only like this can success! thank you!

service ddns_1
        enabled 1
        service_provider        3322.org
        ip_source       INTERFACE
        ip_interface    pppoe-wan
lantis1008 commented 5 years ago

I'm glad you are sorted.

As I was unable to reproduce your original issue, can you please close this ticket? If other users have a problem in the future, we can reopen it. Thanks.

EricFromCanada commented 3 years ago

I've also just run into this. I have a TL-WDR4300 v1.3 running Gargoyle 1.12.0 in a double NAT setup, and every so often it incorrectly updates my domain name on ChangeIP to either 10.20.10.22 or 127.0.0.1 (which may be caused by Adblock; I have v20191111-1.2.1 installed).

Screen Shot
EricFromCanada commented 3 years ago

I've found the problematic results using logread:

Thu Oct  8 14:01:40 2020 daemon.info ddns_gargoyle[2214]: Checking whether update needed:
Thu Oct  8 14:01:40 2020 daemon.info ddns_gargoyle[2214]:   service provider=changeip.com
Thu Oct  8 14:01:40 2020 daemon.info ddns_gargoyle[2214]:   domain=x.x.info
Thu Oct  8 14:01:40 2020 daemon.info ddns_gargoyle[2214]:       Could not determine local ip from url: https://api.myip.com
Thu Oct  8 14:01:40 2020 daemon.info ddns_gargoyle[2214]:       Successfully retrieved local ip from url: http://bot.whatismyipaddress.com
Thu Oct  8 14:01:40 2020 daemon.info ddns_gargoyle[2214]:   local IP  = 127.0.0.1
Thu Oct  8 14:01:40 2020 daemon.info ddns_gargoyle[2214]:   remote IP = x.x.x.147
Thu Oct  8 14:01:41 2020 daemon.info ddns_gargoyle[2214]:   Update successful
Thu Oct  8 15:16:40 2020 daemon.info ddns_gargoyle[2214]: Checking whether update needed:
Thu Oct  8 15:16:40 2020 daemon.info ddns_gargoyle[2214]:   service provider=changeip.com
Thu Oct  8 15:16:40 2020 daemon.info ddns_gargoyle[2214]:   domain=x.x.info
Thu Oct  8 15:16:40 2020 daemon.info ddns_gargoyle[2214]:       Successfully retrieved local ip from url: https://aruljohn.com
Thu Oct  8 15:16:40 2020 daemon.info ddns_gargoyle[2214]:   local IP  = 10.20.10.22
Thu Oct  8 15:16:40 2020 daemon.info ddns_gargoyle[2214]:   remote IP = x.x.x.147
Thu Oct  8 15:16:41 2020 daemon.info ddns_gargoyle[2214]:   Update successful
EricFromCanada commented 3 years ago

I was able to route around the issue by mapping the uncooperative servers to some of the IANA's non-routable addresses in the router's /etc/hosts (just below the initial localhost line, each with unique IPs so they don’t get trimmed when saving changes on the DHCP page).

203.0.113.1     aruljohn.com
203.0.113.2     bot.whatismyipaddress.com
supermarkert commented 3 years ago

FYI, I'm also having this same exact problem on latest Gargoyle release 1.12 (my IP resolves as 10.20.10.22 sometimes). But I'm somewhat of a noob here, so is there a simple suggested workaround? I've tried following several threads about this, and there doesn't seem to be a unilateral suggestion.

EricFromCanada commented 3 years ago

I wrote a simple workaround in my last comment.

lantis1008 commented 3 years ago

The aruljohn issue is solved in 1.13 and the latest version of 1.12.x. I will look into the other one, thanks for reporting it.

livepu commented 3 years ago

Access to IP through the Internet will be affected by the network environment. Later, I got the IP through the local interface, and there was no error.

https://github.com/ericpaulbishop/gargoyle/pull/917