设置通过 HTTP POST 请求更新的 DDNS 服务器
Setting up a DDNS server that updates through HTTP POST requests
下午好!
我需要设置一个远程动态 DNS (DDNS) 服务器,以便我可以远程 add/remove/update 记录。
我认为这可行的方法是设置一个服务器,让它 运行 DDNS 守护进程,还有 运行 一个基本的 Web 服务器来处理 http POST 请求。
POST 请求会告诉网络服务器如何更改 DNS 记录。
我有以下问题:
- 是否有满足上述规格的现成(免费!)服务?
- 如果不是,我的上述计划可行吗?这是最好的出行方式吗?
- 在实施之前,您有什么tips/hints/advice我应该注意的吗?
提前致谢!
如果您需要 public唯一可见的地址,您必须有一个 public DNS 服务器作为 'authoritative'(即主服务器)。 (1)
您将需要一个 DNS 服务器(BIND 或类似的)和一个基本的 Web 服务 运行 在同一个盒子上,然后您可以 post 到一个特制的页面。在那里,从页面请求中,您可以获得远程 IP 地址 'domain'(如果该页面被多个域使用),解析查询字符串中的任何其他参数,然后更新您的 DNS 服务器记录。
为了发布,我使用 'wget' 并为(基本)安全添加了一个 'secret' 密钥和远程(唯一)mac 地址:
mac=`(/sbin/ifconfig eth0| /bin/grep HWaddr | /usr/bin/awk -F'HWaddr' '{ print }' )`
wget -o /dev/null -O reply.txt "server.mydomain.com/page?key=aF6tw3&mac=$mac&host=$(hostname)&data=data...."
我有这个设置,使用 'cron' 和 'if-up' 运行 几年都没有问题。
(1)您可以购买便宜的域名,然后将'ns'记录指向您自己的服务器。
下午好!
我需要设置一个远程动态 DNS (DDNS) 服务器,以便我可以远程 add/remove/update 记录。
我认为这可行的方法是设置一个服务器,让它 运行 DDNS 守护进程,还有 运行 一个基本的 Web 服务器来处理 http POST 请求。
POST 请求会告诉网络服务器如何更改 DNS 记录。
我有以下问题:
- 是否有满足上述规格的现成(免费!)服务?
- 如果不是,我的上述计划可行吗?这是最好的出行方式吗?
- 在实施之前,您有什么tips/hints/advice我应该注意的吗?
提前致谢!
如果您需要 public唯一可见的地址,您必须有一个 public DNS 服务器作为 'authoritative'(即主服务器)。 (1)
您将需要一个 DNS 服务器(BIND 或类似的)和一个基本的 Web 服务 运行 在同一个盒子上,然后您可以 post 到一个特制的页面。在那里,从页面请求中,您可以获得远程 IP 地址 'domain'(如果该页面被多个域使用),解析查询字符串中的任何其他参数,然后更新您的 DNS 服务器记录。
为了发布,我使用 'wget' 并为(基本)安全添加了一个 'secret' 密钥和远程(唯一)mac 地址:
mac=`(/sbin/ifconfig eth0| /bin/grep HWaddr | /usr/bin/awk -F'HWaddr' '{ print }' )`
wget -o /dev/null -O reply.txt "server.mydomain.com/page?key=aF6tw3&mac=$mac&host=$(hostname)&data=data...."
我有这个设置,使用 'cron' 和 'if-up' 运行 几年都没有问题。
(1)您可以购买便宜的域名,然后将'ns'记录指向您自己的服务器。