DDNS 服务搭建

2023-05-16

一 、简介

DDNS(动态域名服务)是将用户的动态公网ip地址映射到一个固定的域名解析服务上,用户每次连接网络的时候客户端程序就会通过信息传递把该主机的动态公网ip地址推送到服务商的域名解析上,服务商提供dns服务进行域名解析

二、环境

  • 域名(以aliyun为例)
  • linux主机

三、准备

1、购买域名

本文是基于aliyun平台做的实验

2、添加解析记录

在这里插入图片描述

3、浏览器按F12 进入开发者模式获取recordId值

在这里插入图片描述

4、4、获取accessKeyId、accesssKeySecret值

在这里插入图片描述

四、编写脚本

脚本是基于python 环境写的

1、安装python aliyun模块

pip3 install aliyun-python-sdk-core
pip3 install aliyun-python-sdk-alidns
pip3 install requests

2、脚本

脚本参考:https://blog.51cto.com/u_15060510/4373806

import json,datetime
from json import load
from urllib.request import urlopen
from aliyunsdkcore.client import AcsClient
from aliyunsdkalidns.request.v20150109.DescribeDomainRecordsRequest import DescribeDomainRecordsRequest
from aliyunsdkalidns.request.v20150109.UpdateDomainRecordRequest import UpdateDomainRecordRequest
i = str(datetime.datetime.now())
newip = load(urlopen('https://api.ipify.org/?format=json'))['ip']
AccessKey_ID = '<accessKeyId>'                                # 填入accessKeyId
Access_Key_Secret = '<accesssKeySecret>'                      # 填入accesssKeySecret
region_id = "<recordId>"                                      # 填入recordId
DomainName = '<域名>'                                          # 填入域名(如:baidu.com)
RR = '<二级域名>'                                               # 填入二级域名(如:www)
DomainType = 'A'
UpdateDomain = 'Auto_Lines'
def AliAccessKey(id,Secret,region):
        client = AcsClient(id, Secret, region)
        return client
def GetDNSRecordId(client,DomainName):
        request = DescribeDomainRecordsRequest()
        request.set_accept_format('json')
        request.set_DomainName(DomainName)
        response = client.do_action_with_exception(request)
        json_data = json.loads(str(response, encoding='utf-8'))
        for RecordId in json_data['DomainRecords']['Record']:
            if RR == RecordId['RR']:
                return RecordId['RecordId']
def UpdateDomainRecord(client,RecordId):
    try:
        request = UpdateDomainRecordRequest()
        request.set_accept_format('json')
        request.set_Value(newip)
        request.set_Type(DomainType)
        request.set_RR(RR)
        request.set_RecordId(RecordId)
        client.do_action_with_exception(request)
        print("域名:" + DomainName + " 主机:" + RR + " 记录类型:" +  DomainType + " 记录值:" +  newip)
    except Exception as e:
        print(i + '    DNS已经更新')
def main():
    client = AliAccessKey(AccessKey_ID,Access_Key_Secret,region_id)
    RecordId = GetDNSRecordId(client,DomainName)
    UpdateDomainRecord(client,RecordId)
if __name__ == "__main__" :
    main()

3、在python环境运行即可,如自动更新可以在linux写定时任务

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DDNS 服务搭建 的相关文章

  • Cloudflare DDNS梅林插件代码

    Cloudflare DDNS梅林固件插件地址 xff1a https ww lanzous com iba19cd 直接在梅林固件安装即可 主要修改了cfddns scripts cfddns update sh的Cloudflare D
  • cloudfare dns_Cloudflare配置动态dns(ddns)

    最近因为一些事情 xff0c 不敢再使用国内的dns解析商 xff0c 故转而使用国外的dns解析商 xff1b 本来想使用dns he net提供的服务 xff0c 但是对一些免费的域名 tk ml cf 不友好 xff0c 故换为Clo
  • ip.sb更新ipv6导致cloudflare的ddns无法使用

    ip sb的api更改了 xff0c 需要使用如下命令 curl 4 ip sb 因此cloudflare的ddns sh需要更改 xff0c 代码如下 xff1a bin bash dynamic ip 61 96 curl 4 ip s
  • 使用IPV6+DDNS连接内网主机

    0 前言 IPV6已经普及多年 xff0c 但是作为互联网用户好像并没有在实用性上有更多感受 xff0c 或者说IPV6并没有让普通用户感觉到改变 我作为网络从业者其实也没有过多关注 在工作中普遍遇到的还是基于IPV4的网络 xff0c 比
  • Linux简易DDNS配置教程

    Linux简易DDNS配置教程 DDNS与其在Linux系统上的应用 1 1 DDNS是什么 xff0c 其作用是什么 DDNS xff08 Dynamic Domain Name System xff0c 动态域名系统 xff09 是一种
  • 树莓派(Raspberry Pi)miniDLNA服务搭建

    树莓派 Raspberry Pi miniDLNA服务搭建 1 MiniDLNA简介2 安装前提3 安装步骤4 服务配置5 进程配置6 参考资料7 补充资料7 1 配置外置硬盘 xff08 媒体库 xff09 7 2 配置samba符号链接
  • 免费ddns f3322.net使用脚本更新公网ip小记

    话说今天服务器域名访问不了 xff0c 路由器也访问不了 xff0c 另听说停电了 xff0c 估计是ddns没有更新 下午到现场一看 xff0c c7v2的ddns显示未登陆 xff0c 因为这货刷了us固件 xff0c 能用的ddnd只
  • RouterOS(ROS)软路由阿里云动态域名解析Aliyun DDNS

    本文讲解ROS借助阿里云的 DNS API 来实现域名与动态 IP 的绑定 xff0c 用来达到外网访问内网设备的需求 一 给域名添加A记录解析 1 点击登录阿里云域名控制台 2 给域名添加一个A记录解析 xff0c 记录值可以随意填写 x
  • 群晖DDNS和端口转发等相关讲解

    文章目录 废话篇前言本文知识概要域名和IP地址的了解域名解析内网IP和外网IPDDNS是什么 xff1f 群晖如何设置DDNS端口转发后言协助改进 废话篇 本篇文章为原创文章 xff0c 转载请注明出处 xff0c 感谢 本人也有个人博客
  • Ubuntu配置阿里云ddns

    首发于yuany3721的WordPress 生成阿里云access key 注意 xff1a 不能使用ram子用户 下载并配置ddns curl https github com NewFuture DDNS releases downl
  • DDNS 服务搭建

    一 简介 DDNS xff08 动态域名服务 xff09 是将用户的动态公网ip地址映射到一个固定的域名解析服务上 xff0c 用户每次连接网络的时候客户端程序就会通过信息传递把该主机的动态公网ip地址推送到服务商的域名解析上 xff0c
  • 阿里云DDNS+iKuai 软路由+证书安装

    一 获取aliyun AccessKey 首先在阿里云买好域名 然后进入控制台打开 AccessKey 进来后会有提醒 xff1a 云账号 AccessKey 是您访问阿里云 API 的密钥 xff0c 具有该账户完全的权限 xff0c 请
  • 联通家庭宽带光猫DDNS设置

    1 目前家里宽带光猫ppoe拨号获取的IP全部都是非公网IP 打96169宽带专家转人工客服申请更换公网IP 一天内会有专人联系 更换成公网IP后 重启光猫 在公司或者其他地方ping下家里光猫获取到的公网IP看下是否能ping通 2 申请
  • Debian_DNS服务搭建

    DNS是什么 xff1f DNS xff0c Domain Name System或者Domain Name Service xff08 域名系统或者余名服务 xff09 域名系统为Internet上的主机分配域名地址和IP地址 用户使用域
  • NewFuture/DDNS的使用配置记录

    家中 网络开通了ipv6服务 xff0c 准备把闲置的域名解析到其中的一台旧pc上 xff0c 作为资料的远程备份地址 发现了一个可以定时自动更新配置 阿里云 域名解析地址的软件 xff0c 做个记录 xff0c 方便后继使用 地址url
  • VNC服务搭建

    安装vncserver和GNOME yum install span class token operator span y tigervnc tigervnc span class token operator span server y
  • python配合阿里云域名解析实现DDNS功能

    前置工作 安装阿里模块 pip span class token function install span aliyun python sdk core v3 pip span class token function install s
  • Linux下实现DNS的分离解析

    Linux下实现DNS的分离解析 一 DNS简介 什么是DNS DNS的基本概念 二 安装DNS解析Bind服务 BIND bind配置文件 安装bind bind chroot软件包 查看安装软件生成的配置文件 三 DNS分离解析案例 一
  • 使用路由器DDNS功能+动态公网IP实现外网访问(花生壳)

    找电信开通了动态公网IP 理由是为了更流畅看家里的监控 动态公网IP一直变 所以就用DDNS tp link路由器中设置花生壳的DDNS 登录成功了 域名有一个是注册花生壳后送给你的一个免费壳域名 打开花生壳客户端 首先要删掉内网穿透的全部
  • 使用rpm包搭建Glusterfs集群

    使用rpm搭建Glusterfs集群步骤 一 环境准备 1 准备搭建glusterfs所需的rpm包 centos release gluster6 1 0 1 el7 centos noarch rpm centos release st

随机推荐

  • mysql 5.7版本查询一条数据JSON字段拆分多条

    场景 xff1a 查询出来一条数据 xff0c 其中fee items字段为json数组 xff0c 现在要把json数组拆分 xff0c 如果有多条 xff0c 则展示多行数据 xff0c 列转行 表中的数据 字段 fee items 是
  • mysql 字段json行转列

    SET FOREIGN KEY CHECKS 61 0 Table structure for keyid DROP TABLE IF EXISTS 96 keyid 96 CREATE TABLE 96 keyid 96 96 id 96
  • VisualStudio2019+PyQt5

    进入VS修改 把除了默认框选之外的 34 本机开发工具 34 选上 不选的话感觉也没什么运行上的影响 但是 import sys from PyQt5 import QtWidgets 导入PyQt5部件 导入PyQt5没问题 但是却会报一
  • 【Linux】Linux文件系统管理——文件系统常用命令

    文章目录 一 df命令 du命令 fsck命令 dumpfs命令1 1 统计文件系统信息df1 2 统计目录或文件大小du1 3 df命令和du命令的区别1 3 文件系统修复明亮fsck1 4 显示磁盘状态命令dumpe2fs 二 挂载命令
  • vue3 setup lang=“ts“ defineExpose

    vue3 setup lang 61 ts defineExpose Vue 96 span class token tag span class token tag span class token punctuation lt span
  • 关于《软件设计师教程 第5版》UML构件图两类接口描述错误的问题

    如图所示 xff0c 在备考软件设计师时 xff0c 有遇到关于 构件图 的题目 xff0c 官方给的 xff08 是供接口 xff0c O 是需接口 xff0c 就像官方教程上展示的这样 但是发现有其他人说 xff08 是需接口 xff0
  • 统计字符串中每个字母的个数 C语言

    int main char str 100 int count 26 61 0 i 61 0 printf 34 请输入字符串 n 34 gets str while str i 61 39 0 39 if str i gt 61 39 a
  • 51单片机学习笔记5 -- 外部中断

    外部中断 1 外部中断概念2 引脚功能复用3 中断号和中断类型4 外部中断编程 1 外部中断概念 外部中断是单片机实时地处理外部事件的一种内部机制 当某种外部事件发生时 xff0c 单片机的中断系统将迫使CPU暂停正在执行的程序 xff0c
  • k8s部署redis集群(方案1)

    目录 一 创建configmap 二 创建redis集群 三 集群初始化 四 验证集群省略 补充 1 如果整个 redis 集群的 pod 全部都挂掉了 xff0c pod自动拉起后 xff0c 集群不可用 xff0c 需要重建集群 2 重
  • QT5 实现UDP和串口通信

    QT5实现UDP和串口通信 前言 硬件平台 xff1a X86工控机 温湿度模块 xff1b 使用QT5编程实现X86工控机 xff08 客户端 xff09 与网络调试助手UDP通信 xff0c 同时X86工控机与温湿度模块实现串口通信 通
  • STM32单片机DMA串口数据收发

    前言 本实验是在原子哥的DMA实验的基础上进行修改 xff0c 添加了DMA串口数据接收功能 接收到指定数据时LED1的状态翻转 内附源码下载链接 xff1a 添加链接描述 注意 xff1a 在编写DMA串口数据收发时 xff0c DMA发
  • RT-Thread studio 添加CAN通信功能

    前言 最近在学习rt thread xff0c 在学习到CAN通信时遇到了一些问题 xff0c 首先就是如何注册CAN设备 发现在rt thread中 xff0c CAN 与其他的设备注册不一样 xff0c rt thread不会把CAN驱
  • 教你如何一步一步制作自己的PCB个人LOGO

    做了这么多年的硬件了 xff0c 也画了好多电路板 xff0c 昨天心血来潮决定以后在绘制电路板上添加上自己的LOGO 目录 一 LOGO 设计 二 LOGO修改 三 导入AD 一 LOGO 设计 于是开始制作LOGO图案 xff0c 由于
  • Visual Studio v141 生成工具 报错

    使用Visual Studio 2019的时候 xff0c 兼容旧有版本的VS出现如下报错 xff1a 错误 MSB8020 无法找到 Visual Studio 2017 的生成工具 平台工具集 61 v141 若要使用 v141 生成工
  • 一次多线程优化读取文件的实战

    需求描述 xff1a 商户每天会定时将文件传到我们的sftp服务器 xff0c 我们需要对文件解析落库等操作 方案A xff1a 起初的设计是将文件下载到本地 xff0c 读取整个文件 xff0c 落库等一系列处理 方案A的设计本来是没问题
  • VisualStudio突然无法启动显示log文件Error解决方法

    visual studio 启动报 activityLog xml文件 错误 1 在安装目录里面找到 devenv exe 这个文件的所在位置C Program FilesMicrosoft Visual Studio 10 0Common
  • 【笔记】Java实现通过本地浏览器打开UClient访问NC服务,如果失败,则打开IE浏览器访问NC Web服务

    span class token keyword package span span class token namespace nc span class token punctuation span baseapp span class
  • 将VMware虚拟机移到其它磁盘(C盘->D盘)

    1 打开我们的VMware xff0c 然后鼠标放在你的虚拟机上 xff0c 可以看到你的虚拟机所在的路径 xff0c 图中在C盘 xff1a 2 将虚拟机移除 xff0c 鼠标放在虚拟机上 xff0c 右键选择移除 弹出确认框 xff0c
  • linux之shell的正则表达式

    一 grep 文本过滤命令 span class hljs keyword grep span 命令是一种强大的文本搜索工具 xff0c 可以根据用户指定的 模式 对目标文本进行匹配检查 xff0c 打印匹配到的行 xff1b 由正则表达式
  • DDNS 服务搭建

    一 简介 DDNS xff08 动态域名服务 xff09 是将用户的动态公网ip地址映射到一个固定的域名解析服务上 xff0c 用户每次连接网络的时候客户端程序就会通过信息传递把该主机的动态公网ip地址推送到服务商的域名解析上 xff0c