Does NameCheap dyndns work for anyone?
-
Hi everyone,
I am trying to get namecheap dyndns working as I hear good things and great uptime about it but I am failing.
I have the following setup:
Service Type: Namecheap
Interface to monitor: WAN
Hostname: sub.domain.com
MX: <blank>Wildcards: Enabled
Username: <blank>Password: xyzsdlkfjjlk324234
Description: NameCheap DNSOn namecheap.com I have sub.domain.com set to A record with IP 127.0.0.1 now.
On pfsense error logs no updating namecheap DNS I get:
Jul 10 11:57:01 php: /services_dyndns_edit.php: DynDns: DynDns _update() starting.
Jul 10 11:57:01 php: /services_dyndns_edit.php: Namecheap: DNS update() starting.
Jul 10 11:57:01 php: /services_dyndns_edit.php: DynDns: DynDns _checkStatus() starting.
Jul 10 11:57:01 php: /services_dyndns_edit.php: DynDns: Current Service: namecheap
Jul 10 11:57:01 php: /services_dyndns_edit.php: phpDynDNS: PAYLOAD: ^M <title>Bad Request</title>^M ^MBad Request
^M
HTTP Error 400. The request is badly formed.
^M ^M</blank></blank>
-
Works fine for me on 2.1
(verbose logging enabled)
Jul 10 16:26:45 php: /services_dyndns_edit.php: DynDns (myhost.mydomain.com): 50.x.x.x extracted from local system. Jul 10 16:26:45 php: /services_dyndns_edit.php: DynDNS (myhost.mydomain.com): DynDns _update() starting. Jul 10 16:26:45 php: /services_dyndns_edit.php: Namecheap (myhost.mydomain.com): DNS update() starting. Jul 10 16:26:46 php: /services_dyndns_edit.php: DynDNS (myhost.mydomain.com): DynDns _checkStatus() starting. Jul 10 16:26:46 php: /services_dyndns_edit.php: DynDNS (myhost.mydomain.com): Current Service: namecheap Jul 10 16:26:46 php: /services_dyndns_edit.php: DynDns (myhost.mydomain.com): 50.x.x.x extracted from local system. Jul 10 16:26:46 php: /services_dyndns_edit.php: phpDynDNS: updating cache file /conf/dyndns_PreferDSLnamecheap'myhost.mydomain.com'2.cache: 50.x.x.x Jul 10 16:26:46 php: /services_dyndns_edit.php: phpDynDNS: (Success) IP Address Updated Successfully!
-
I don't use wildcard though - perhaps their URL format changed for wildcard.
-
I have unchecked wildcard and used 2.0.2 development version and still the same error. Can someone else please confirm this?
Also, what exactly am I supposed to do on namecheap portal with the domain?Thanks
-
On Namecheap you have to go into your DNS options and enable Dynamic DNS and some other bits. It's all in their FAQ. You'll get a long/random key and that is the "password" used in the GUI.
http://www.namecheap.com/support/knowledgebase/article.aspx/36/11/what-should-i-do-in-order-to-start-using-dynamic-dns
-
I have done exactly the same and I am on 2.1 Development version from April. It is still not working. Clearly, I am doing something wrong on pfSense or Namecheap side. Can you please advise how I can diagnose the issue? What else is there for me to look at other than the System logs?
Thanks
-
On 2.1, edit the Namecheap DDNS entry and check the box to enable verbose logging.
Also try manually updating it using the format they show here:
http://www.namecheap.com/support/knowledgebase/article.aspx/29/
If that doesn't work either, it's probably your account or settings on Namecheap. If it does work, then it may be something in pfsense yet.
-
Thanks again Jim. I am trying to work a version 2.0.1 one. The 2.1 Developmental works now but I can't afford to update all pfSense boxes now. It's probably an easy breezy update of the URL that should get it working for older versions too.
Per the URL you posted this update link should have been used in pFsense code but I can't see it anywhere on Github pfSense project:
https://dynamicdns.park-your-domain.com/update?host=[host_name]&domain=[domain.com]&password=[domain_password]&ip=[your_ip]
Can you please point me to the file responsible for updating NameCheap and I will try to modify it.
Thanks,
-
https://github.com/pfsense/pfsense/blob/master/etc/inc/dyndns.class
Line 483 to 499 has a block of Namecheap-specific code. -
Is the master branch same as the 2.1 developmental?
Thanks a lot
-
All right so this is a really easy fix for prior version. A variable name is wrong and can be fixed by following:
Edit the file /etc/inc/dyndns.class and change to $dnspass for password variable like this:
$server = "https://dynamicdns.park-your-domain.com/update?host={$hostname}&domain={$domain}&password={$dnspass}&ip={$this->_dnsIP}";
-
Look at this commit: https://github.com/pfsense/pfsense/commit/4178d033a22655b8494f013cf2d2e6566deef692
You will want to apply all the changes (3 lines) to the corresponding places in the 2.0.3 version.
If that change makes it work, then it seems like you have some white space before or after your password? -
Look at this commit: https://github.com/pfsense/pfsense/commit/4178d033a22655b8494f013cf2d2e6566deef692
You will want to apply all the changes (3 lines) to the corresponding places in the 2.0.3 version.
If that change makes it work, then it seems like you have some white space before or after your password?Thanks phil. All the three lines you mentioned are needed in order for the IP to update properly.
-
Then you most certainly have some unintended whitespace before or after your password in the GUI.
e.g. " mypass" or " mypass " or "mypass "
Probably copied and pasted from the Namecheap site accidentally.
-
BANG ON! darn it. What a waste of time. The pass from NameCheap portal was suffixing a white space. It seems like all the code update I did is waste now :(
Thanks a lot though everyone!
-