Rom*_*man 8 router ddns cloudflare
我正在尝试使用 dd-wrt (v24-sp2) 固件在我的路由器上配置动态 DNS 客户端,以便它会动态更改 DNS 记录之一中的 IP 地址。不幸的是,我遇到了一个问题……这是来自他们的ddclient 配置的示例请求:
https://www.cloudflare.com/api.html?a=DIUP&u=<my_login>&tkn=<my_token>&ip=<my_ip>&hosts=<my_record>
Run Code Online (Sandbox Code Playgroud)
如果我在浏览器中使用它,它可以工作,但在 dd-wrt 中我得到这个输出:
Tue Jan 24 00:36:47 2012: INADYN: Started 'INADYN Advanced version 1.96-ADV' - dynamic DNS updater.
Tue Jan 24 00:36:47 2012: I:INADYN: IP address for alias '<my_record>' needs update to '<my_ip>'
Tue Jan 24 00:36:48 2012: W:INADYN: Error validating DYNDNS svr answer. Check usr,pass,hostname! (HTTP/1.1 303 See Other
Server: cloudflare-nginx
Date: Mon, 23 Jan 2012 14:36:48 GMT
Content-Type: text/plain
Connection: close
Expires: Sun, 25 Jan 1981 05:00:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Location: https://www.cloudflare.com/api.html?a=DIUP&u=<my_login>&tkn=<my_token>&ip=<my_ip>&hosts=<my_record>
Vary: Accept-Encoding
Set-Cookie: __cfduid=<id>; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.cloudflare.com
Set-Cookie: __cfduid=<id>; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.www.cloudflare.com
You must include an `a' paramiter, with a value of DIUP|wl|chl|nul|ban|comm_news|devmode|sec_lvl|ipv46|ob|cache_lvl|fpurge_ts|async|pre_purge|minify|stats|direct|zone_check|zone_ips|zone_errors|zone_agg|zone_search|zone_time|zone_grab|app|rec_se
Run Code Online (Sandbox Code Playgroud)
来自“位置”的 URL 工作正常,并且包含参数“a”。有什么问题?
我认为你不能在 DD-WRT 直接调用 CloudFlare 的地方设置它。我配置它的方法是让 DD-WRT 在远程 Web 服务器上调用 PHP 脚本,然后检测客户端 IP 并通过他们的 API 将更新请求发送到 CloudFlare。
DDNS Service: Custom
DYNDNS Server: <yourserver.com>
Username: <anything>
Password: <anything>
Host Name: <your domain name to update on cloudflare>
URL: /cloudflare_update.php?key=<your secret key>&hostname=
Run Code Online (Sandbox Code Playgroud)
if(empty($_GET['key']) || ($_GET['key'] != "<your secret key>")) die;
$hostname = $_GET['hostname'];
$ip = $_SERVER['REMOTE_ADDR'];
$username = "<yourcloudflareusername@email.com>";
$api = "<your cloudflare api key>";
$curl = "https://www.cloudflare.com/api_json.html?a=DIUP&hosts=$hostname&u=$username&tkn=$api&ip=$ip";
$ch = curl_init($curl);
curl_exec($ch);
curl_close($ch);
Run Code Online (Sandbox Code Playgroud)
我只使用随机密钥,而不是使用 HTTP 基本身份验证。
确保在 CloudFlare 上为要更新的域名创建 DNS 条目;DIUP 操作参数只会更新已经存在的条目的 IP。
| 归档时间: |
|
| 查看次数: |
8697 次 |
| 最近记录: |