Namecheap dynamic dns Not Updating



  • My Name cheap dyn dns is not working it was working earlier but has just stopped.


  • Rebel Alliance Developer Netgate

    Anything in the system log?

    Mine still appears to be working but it may just be that my IP hasn't changed in a couple days.

    EDIT: You can also attempt to update it manually by following the directions here:
    http://www.namecheap.com/support/knowledgebase/article.aspx/29/11/how-to-use-the-browser-to-dynamically-update-hosts-ip



  • I found a bug for this I believe for dyndns.  Mine wasn't updating as well. The cache file name is being called incorrectly according to a bug report. I guess it supposed to be fixed in 2.1.



  • @newbieuser1234:

    I found a bug for this I believe for dyndns.  Mine wasn't updating as well. The cache file name is being called incorrectly according to a bug report. I guess it supposed to be fixed in 2.1.

    It works fine in every stable version, any such bugs fixed in 2.1 were only in 2.1 to begin with.


  • Rebel Alliance Developer Netgate

    My Namecheap DynDNS entry on my edge firewall is still working as far as I can tell.

    It's also possible that at the time the OP started the thread, Namecheap had a temporary server-side problem.



  • the dyndns always up .but the namecheap one is my problem.this is my log
    php: /services_dyndns_edit.php: DynDns: updatedns() starting
    Apr 7 17:46:29 check_reload_status: Syncing firewall
    Apr 7 17:46:29 php: /services_dyndns_edit.php: DynDns debug information: 197.251.163.186 extracted from checkip.dyndns.org
    Apr 7 17:46:29 php: /services_dyndns_edit.php: DynDns: Current WAN IP: 197.251.163.186 Cached IP: 0.0.0.0
    Apr 7 17:46:29 php: /services_dyndns_edit.php: DynDns debug information: DynDns: cacheIP != wan_ip. Updating. Cached IP: 0.0.0.0 WAN IP: 197.251.163.186
    Apr 7 17:46:29 php: /services_dyndns_edit.php: DynDns: DynDns _update() starting.
    Apr 7 17:46:29 php: /services_dyndns_edit.php: Namecheap: DNS update() starting.
    Apr 7 17:46:30 php: /services_dyndns_edit.php: DynDns: DynDns _checkStatus() starting.
    Apr 7 17:46:30 php: /services_dyndns_edit.php: DynDns: Current Service: namecheap
    Apr 7 17:46:30 php: /services_dyndns_edit.php: phpDynDNS: PAYLOAD: ^M <title>Bad Request</title>^M ^M

    Bad Request

    ^M


    HTTP Error 400. The request is badly formed.



  • @pola090:

    the dyndns always up .but the namecheap one is my problem.this is my log
    php: /services_dyndns_edit.php: DynDns: updatedns() starting
    Apr 7 17:46:29 check_reload_status: Syncing firewall
    Apr 7 17:46:29 php: /services_dyndns_edit.php: DynDns debug information: 197.251.163.186 extracted from checkip.dyndns.org
    Apr 7 17:46:29 php: /services_dyndns_edit.php: DynDns: Current WAN IP: 197.251.163.186 Cached IP: 0.0.0.0
    Apr 7 17:46:29 php: /services_dyndns_edit.php: DynDns debug information: DynDns: cacheIP != wan_ip. Updating. Cached IP: 0.0.0.0 WAN IP: 197.251.163.186
    Apr 7 17:46:29 php: /services_dyndns_edit.php: DynDns: DynDns _update() starting.
    Apr 7 17:46:29 php: /services_dyndns_edit.php: Namecheap: DNS update() starting.
    Apr 7 17:46:30 php: /services_dyndns_edit.php: DynDns: DynDns _checkStatus() starting.
    Apr 7 17:46:30 php: /services_dyndns_edit.php: DynDns: Current Service: namecheap
    Apr 7 17:46:30 php: /services_dyndns_edit.php: phpDynDNS: PAYLOAD: ^M <title>Bad Request</title>^M ^M

    Bad Request

    ^M


    HTTP Error 400. The request is badly formed.

    I'm getting this same error (though with my IP of course) with hostname "@.sub.domain.com" (but actually mine), and 2.0.3-RELEASE.


  • Rebel Alliance Developer Netgate

    How exactly do you have the Namecheap host setup in the DynDNS settings?



  • @jimp:

    How exactly do you have the Namecheap host setup in the DynDNS settings?

    Disable: unchecked
    Service: Namecheap
    Hostname: @.my.domain.co
    MX: <blank>Wildcard: unchecked
    Username: <blank>Password:</blank></blank>



  • @jimp:

    How exactly do you have the Namecheap host setup in the DynDNS settings?

    (I'm not seeing an edit button to add this to my last post)
    I tried on Sunday to change it to having the "wildcard" box checked.
    There doesn't seem to be any change.



  • @Trel:

    (I'm not seeing an edit button to add this to my last post)

    If your post is not "too old" there should be a "Modify" link on it.



  • @wallabybob:

    @Trel:

    (I'm not seeing an edit button to add this to my last post)

    If your post is not "too old" there should be a "Modify" link on it.

    It was too old then.  I see a modify link on my newer one.  I hate double posting >.>



  • I also have this issue. So what I did as a workaround is SCP ddclient (http://sourceforge.net/apps/trac/ddclient/) onto my pfsense box. It is a perl script, so no need to have a specific version compiled for freebsd/x86. I then updated the config for namecheap, and it works great :)

    Its a hack, but it works.



  • I cannot do that sadly.  I need to use the built in function for this.


  • Rebel Alliance Developer Netgate

    It may be due to how the update URL gets formed when using the "@" record.

    Can you try this with an actual hostname under the domain rather than the @ record?



  • @jimp:

    It may be due to how the update URL gets formed when using the "@" record.

    Can you try this with an actual hostname under the domain rather than the @ record?

    That's not possible with the domain in question.  I could try adding one, but I can't until tonight.
    (and ultimately it IS the @ record that needs to be updated, so even if this is the issue, I need it to work for the @ records.)


  • Rebel Alliance Developer Netgate

    Yes, I understand that, I'm just trying to make sure it's not a problem with your account in general, but one specific to the @ record handling.

    I don't have a free @ record handy that I can tinker with at the moment, but I can try to free one up. All my Namecheap dyndns entries are traditional host.domain.tld format, no @ records.



  • @jimp:

    Yes, I understand that, I'm just trying to make sure it's not a problem with your account in general, but one specific to the @ record handling.

    I don't have a free @ record handy that I can tinker with at the moment, but I can try to free one up. All my Namecheap dyndns entries are traditional host.domain.tld format, no @ records.

    I'll see if I can make an additional one during my lunch.


  • Rebel Alliance Developer Netgate

    I was able to free up an @ on one of my domains for testing, and it worked for me. No errors, and the @ record updated as expected.

    I used the @.domain.tld format and it updated as expected using the dyndns access key for the domain.

    Maybe try to re-enable DynDNS for your domain and then use the new auth token they generate when it resets.


  • Rebel Alliance Developer Netgate

    Oh, and that was on a 2.1 snapshot from Thursday.



  • @jimp:

    Oh, and that was on a 2.1 snapshot from Thursday.

    I'm not on a snapshot.  I'm using the latest stable.


  • Rebel Alliance Developer Netgate

    I pulled up a 2.0.3 VM and tried it there, worked the same, no problems. I even edited the IP in Namecheap's control panel to something bogus, then removed the cached IP from the pfSense VM and made it update again, worked fine.



  • @jimp:

    I pulled up a 2.0.3 VM and tried it there, worked the same, no problems. I even edited the IP in Namecheap's control panel to something bogus, then removed the cached IP from the pfSense VM and made it update again, worked fine.

    Does it work if the domain is one deeper, @.sub.domain.com?
    (Also, how can I force it to update for testing)
    (And you're leaving the username blank, right?)


  • Rebel Alliance Developer Netgate

    Username blank, yes.

    You can force an update by removing the cache file from /conf and then saving on the page.

    A subdomain is not considered an @ record in their DNS that I'm aware of. It would just be sub.domain.com where sub is just a hostname in that context.

    IIRC their DNS does not split that into separate "true" zones that would contain an @ record.



  • @jimp:

    Username blank, yes.

    You can force an update by removing the cache file from /conf and then saving on the page.

    A subdomain is not considered an @ record in their DNS that I'm aware of. It would just be sub.domain.com where sub is just a hostname in that context.

    IIRC their DNS does not split that into separate "true" zones that would contain an @ record.

    sub.domain.com is what is pointed to namecheap.  domain.com is pointed elsewhere.
    I need to update @.sub.domain.com for it to accept it.

    (I know this setup works as I came from a WRT54GL with Tomato firmware that had no issue updating)


  • Rebel Alliance Developer Netgate

    OK. It's possible that their dyndns API has a problem with that particular setup then. I don't have anything even close to that setup to test.

    I'd need to see the exact update URL used by tomato to know what might fix it.



  • @jimp:

    OK. It's possible that their dyndns API has a problem with that particular setup then. I don't have anything even close to that setup to test.

    I'd need to see the exact update URL used by tomato to know what might fix it.

    
    	// +opt +opt +opt
    	sprintf(query, "/update?host=%s&domain=%s&password=%s",
    		get_option_required("host"), get_option("user") ? : get_option_required("domain"), get_option_required("pass"));
    
    	// +opt
    	append_addr_option(query, "&ip=%s");
    
    

    I took this from Tomato's source.
    I'm not well versed in coding, but I'm pretty sure that's where it updates to.
    so in my case, it would look like:

    update?host=@&domain=sub.domain.com&password=somethingcomplicated
    

  • Rebel Alliance Developer Netgate

    I think I see where the problem might be, in our code, it assumes for .com (and most others) that the domain part is only domain.tld, so it's probably splitting that into @.sub for the host and domain.com for the domain.

    Not sure if there will be any easy way around that, I'll have to dig at it a little.



  • @jimp:

    I think I see where the problem might be, in our code, it assumes for .com (and most others) that the domain part is only domain.tld, so it's probably splitting that into @.sub for the host and domain.com for the domain.

    Not sure if there will be any easy way around that, I'll have to dig at it a little.

    That implementation looks like it could cause problems with many country tlds such as ".co.uk" or similar as "@.sub.domain.com" has the same separations as "@.domain.co.uk"


  • Rebel Alliance Developer Netgate

    No, there is code specifically to handle domain.co.uk, there is a list in the client that knows how many levels deep TLDs go and sets exceptions based on the TLDs offered by Namecheap.

    Might have to hack it so if you put in @ for the username and the actual sub.domain.com for the hostname then it would do the right thing… might be a bit before I'd have a chance to take a crack at it, I haven't touched the dyndns code in a while, it's not terribly complex though.



  • @jimp:

    No, there is code specifically to handle domain.co.uk, there is a list in the client that knows how many levels deep TLDs go and sets exceptions based on the TLDs offered by Namecheap.

    Might have to hack it so if you put in @ for the username and the actual sub.domain.com for the hostname then it would do the right thing… might be a bit before I'd have a chance to take a crack at it, I haven't touched the dyndns code in a while, it's not terribly complex though.

    Since the "@" and the no username part only exists for namecheap, I can't imagine it being too difficult to do that with an if statement in general.
    Other than the program the other person linked earlier, is there any interim solution I can do in the mean time?

    Is curl or wget installed by default?  If so I imagine I could temporarily install the cron package and do it that way.


  • Rebel Alliance Developer Netgate

    "fetch" is there, curl may or may not be there depending on the packages you have installed.

    fetch is capable of grabbing/hitting a page, e.g.:

    fetch -o /dev/null http://blah.blah/blah
    

    That would make a page request and ignore the result.



  • @jimp:

    "fetch" is there, curl may or may not be there depending on the packages you have installed.

    fetch is capable of grabbing/hitting a page, e.g.:

    fetch -o /dev/null http://blah.blah/blah
    

    That would make a page request and ignore the result.

    This look good (as I'm not quite familiar with fetch)

    /usr/bin/nice -n20 fetch -o /dev/null https://dynamicdns.park-your-domain.com/update?host=@&domain=sub.domain.com&password=<password></password>
    

  • Rebel Alliance Developer Netgate

    Be sure to enclose the URL in quotes, but otherwise, yeah I think it looks OK.



  • I have same issue. At one point I was able to update domain.net with @.domain.net under hostname but not subdomain.domain.net
    Now nothing's updating. IP ADDRESS never updates and stays at 127.0.0.1 . I deleted multiple times everything. Chatted with support but their response is to use different client or manually update ip, how will I know if it will work once IP changes??

    My goal was to have unused domain for dynamic DNS.

    My register is still godaddy.
    If someone has it working with other service please share. I would be willing to transfer my domain there for about 10-15 per year.

    Here's some screenshots:

    http://i.imgur.com/3mcVlNw.png

    http://i.imgur.com/72hO7Li.png

    http://i.imgur.com/KjLJeyh.png

    http://i.imgur.com/Hwtf55P.png



  • I have been using Namecheap ddns for years, had a problem once when their servers went down, but since then all is well.

    I use a single subdomain.domainname.com with the subdomain record type set to A (address)

    I haven't tried it with the @ hostname setting yet.

    I also use the free dyndns service as a backup. I wished the pfsense service would force a connection to their server every few weeks.



  • Was this ever fixed for Namecheap, or do I still need to use the cron job and fetch?