如何设置动态DNS

什么是动态DNS?

让我们以DNS设置的常见示例为例。您的域是example.com,并且具有和的A记录。Server1托管在Vultr中,但是server2托管在本地网络中,例如您的公司内部或作为家庭中的开发计算机。通常,这些类型的本地环境具有从Internet服务提供商(ISP)动态分配的公共IP地址,并且它们可能会意外更改。这将导致server2突然指向错误的IP地址,这可能会严重影响服务。本文将向您展示如何设置自己的动态DNS服务,该服务在本地计算机上运行,​​并可以在公共IP更改后自动更新Vultr DNS中server2的记录。server1.example.comserver2.example.com

尽管客户端喜欢某些DNS服务提供商ddclient并且inadyn可以为之工作,但Vultr当前不支持这些服务,而是使用其自己的自定义API。该服务将在您的计算机上本地运行,并使用GET和POST请求以及您的访问密钥。

先决条件

  • 访问您的Vultr帐户以设置DNS和管理访问密钥。
  • 能够连接到具有动态IP地址的本地计算机(或访问同一网络上的另一台计算机)。

安装与设定

设置您的域以使用Vultr的DNS服务

  • 如果您的域未使用Vultr的DNS服务,请按照本文进行修改,以将名称服务器与Vultr一起使用。
  • 设置Vultr DNS后,转到“服务器-> DNS-> [您的域名]”下的DNS管理页面。
  • 在这里,您会找到为您的域设置的所有记录。写下您要更改的记录,因为以后需要。
    • A该实用程序仅支持“ ”记录。如果您有多个A要更新为相同IP地址的记录,请将它们更改为CNAME记录,然后将它们指向一个A记录。从长远来看,这将为您简化事情,并且被认为是配置DNS的正确方法。

安装所需的工具

  • 连接到本地服务器。可以直接或通过SSH。
  • 该工具需要Python3。大多数Linux发行版都包含预安装的Python。如果您的环境中未安装它,则可在以下官方Python Wiki上获得说明:
  • 此过程还需要Git,您可以按照以下说明进行安装:

下载动态DNS客户端

使用Git克隆包含python DDNS客户端的存储库。您应该在一个具有完全访问权限的安全目录中执行此操作。您的主文件夹应该足够了。运行以下命令:

git clone https://github.com/andyjsmith/Vultr-Dynamic-DNS.git vultrddns && cd vultrddns

生成个人访问令牌

在Vultr中生成个人访问令牌。这可以在“帐户-> API->个人访问令牌”下完成。在同一页面上,您将需要转到“访问控制”下,然后单击“允许所有IPv4”按钮,因为您将不会每次都知道本地服务器的IP,因此不知道动态DNS。

为您的服务器配置工具

  • 通读该config.json.example文件,以获取配置文件外观的示例。
  • config.json使用您喜欢的文本编辑器打开文件,然后根据您的特定服务器设置填写值。
  • 该文件应包含以下内容:

    {
        "api_key": "",
        "domain": "",
        "dynamic_records": [
        ""
        ]
    }
    
  • 在字段中输入访问令牌api_key

  • domain字段中输入您的基本域。例如,example.com
  • 现在A,在该dynamic_records字段下输入要更改的记录。使用上一个示例,您将输入server2以自动更改server2的IP地址。您可以输入多个子域。如果您想更改A域的基本记录(通常称为@,当您直接导航到时会响应的记录example.com),只需将引号留空。
  • 一个适当的配置文件看起来是这样的,要动态地更改IP的example.comserver2.example.com

    {
        "api_key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
        "domain": "example.com",
        "dynamic_records": [
        "",
        "server2"
        ]
    }
    
  • 现在保存这些更改,您的文件应该就可以了!

测试您的配置

  • 通过运行测试脚本和配置python3 ddns.py。如果这没有返回任何错误,则说明您的配置是名义上的,您可以启动自动化过程。

自动化

完成基本设置后,重要的是要设置一个周期性任务,因为脚本默认情况下不会执行此任务。连接到本地计算机,然后根据您的操作系统执行以下步骤。

Linux和Mac OSX

Linux和Mac cron已经安装了该实用程序,可让您指定脚本以按设定的时间表运行。

  • ddns.py使用realpath ddns.py仍在vultrddns目录中的文件来查找文件的完整路径。
  • 运行crontab -e以编辑您的crontab。
  • 将以下行添加到文件末尾,并添加文件的真实路径ddns.py

    */30 * * * * python3 [full path to ddns.py] > /dev/null 2>&1
    
  • 这将每30分钟运行一次脚本,并将其所有输出重定向到/dev/null

  • 保存并退出文本编辑器。crontab文件将自动安装,并且您的IP现在将自动更新。

视窗

在任务计划程序中创建一个任务,每30分钟运行一次。按照Microsoft指南进行基本任务创建。

  • 打开任务计划程序,然后单击“创建任务...”。
  • 给它命名并创建一个新触发器。
  • 点击“每日”。在“高级设置”下,单击以每30分钟重复一次任务,并将“持续时间”更改为“无限期”。
  • 添加新操作以启动程序并浏览到您的Python可执行文件。将ddns.py脚本添加为参数。


Leave a Comment

使用OpenBSD在Vultr上配置BGP

使用OpenBSD在Vultr上配置BGP

Vultrs BGP功能使您可以拥有自己的IP空间并在我们的任何位置使用它,而OpenBSD实例则不需要其他软件!

如何在CentOS 7上使用Mosh进行远程服务器管理

如何在CentOS 7上使用Mosh进行远程服务器管理

使用其他系统?Mosh是Mobile Shell的缩写,是一种新兴的远程终端应用程序,旨在提供更好的连接和使用

配置专用网络

配置专用网络

如果您将专用网络分配给现有计算机(或部署自己的操作系统),则需要在专用计算机上配置IP地址。

如何在Linux上设置TCP优化

如何在Linux上设置TCP优化

简介当来自其他国家的访问者访问您的网站时,连接出现问题吗?想知道为什么从您的预言下载速度

BGP公告的授权书示例

BGP公告的授权书示例

请求BGP公告的授权时,请使用以下模板。授权信[日期]可能涉及的人Thi

在Debian / Ubuntu上设置您自己的DNS服务器

在Debian / Ubuntu上设置您自己的DNS服务器

本教程说明了如何在Debian或Ubuntu上使用Bind9设置DNS服务器。在整篇文章中,请相应地替换your-domain-name.com。在

在Windows上通过PuTTY使用SSH连接到服务器

在Windows上通过PuTTY使用SSH连接到服务器

首次连接到Linux服务器可能会造成混乱,特别是如果您具有强大的Windows背景。连接到Linux(或UNIX)时

如何在Ubuntu 16.04 LTS上安装OpenNMS

如何在Ubuntu 16.04 LTS上安装OpenNMS

使用其他系统?OpenNMS是企业级开源网络管理平台,可用于监视和管理众多设备。

如何在CentOS 7上部署Google BBR

如何在CentOS 7上部署Google BBR

BBR(Bottleneck带宽和RTT)是一种新的拥塞控制算法,由Google贡献给Linux内核TCP堆栈。有了BBR,

使用OpenVPN设置自己的专用网络

使用OpenVPN设置自己的专用网络

Vultr为在同一位置运行的服务器提供了绝佳的专用网络连接。但是有时您想要在不同国家/地区使用两台服务器

在Ubuntu 14.04 x64上为Cisco AnyConnect设置OpenConnect VPN服务器

在Ubuntu 14.04 x64上为Cisco AnyConnect设置OpenConnect VPN服务器

OpenConnect服务器,也称为ocserv,是通过SSL进行通信的VPN服务器。通过设计,其目标是成为安全,轻便和快速的VP

如何在CentOS 6上使用WonderShaper限制流量

如何在CentOS 6上使用WonderShaper限制流量

简介在本教程中,最好安装WonderShaper,该实用程序用于限制传入/传出流量。这可以用于多种

在CentOS 6上设置PPTP VPN服务器

在CentOS 6上设置PPTP VPN服务器

本指南说明了如何使用yum存储库中可用的pptpd守护程序在CentOS 6上设置自己的PPTP VPN。请注意,证券

为Windows远程桌面设置动态DNS

为Windows远程桌面设置动态DNS

本文将向您展示如何为远程桌面设置动态DNS,以便避免一次又一次设置远程协助的麻烦。w ^

在Debian上使用Samba创建网络共享

在Debian上使用Samba创建网络共享

有时我们需要共享Windows客户端必须可见的文件。由于基于Fuse的系统只能在Linux上运行,因此不妨介绍一下

在Windows Server 2012上使用远程访问设置VPN服务器

在Windows Server 2012上使用远程访问设置VPN服务器

本指南说明了如何使用Windows Server 2012设置PPTP VPN。我们将使用远程访问角色来设置VPN并为单个用户

反向SSH隧道

反向SSH隧道

在Internet服务提供商中,通常的做法是阻塞其归属用户的大部分(即使不是全部)入站端口,这使它成为不可能

在Debian 7上具有Postfix,Dovecot和筛子的简单Mailserver

在Debian 7上具有Postfix,Dovecot和筛子的简单Mailserver

下面的教程描述了如何使用Postfix作为MTA,Dovecot作为MDA以及出色的Sieve来设置简单的邮件服务器来对邮件进行排序。起始

RPKI

RPKI

RPKI(资源公钥基础结构)是一种有助于防止BGP劫持的方法。它使用加密签名来验证是否允许ASN

在Windows Server 2012上设置DNS服务器

在Windows Server 2012上设置DNS服务器

Windows Server 2012可以配置为DNS服务器。DNS用于将域名解析为IP地址。通过托管自己的DNS服务器,您可以

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

什麼是日誌文件系統,它是如何工作的?

什麼是日誌文件系統,它是如何工作的?

我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true

技術奇點:人類文明的遙遠未來?

技術奇點:人類文明的遙遠未來?

隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

2021 年人工智能對醫療保健的影響

2021 年人工智能對醫療保健的影響

過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。