距离上次写关于 ddns 的文章已经过去快一年了。一年里这个文件修改了很多版本,因为有时候几天就改一回,导致我自己都不确定是不是可以稳定到向大家介绍它。
直到我注意到有人在等着我更新这个 ddns 脚本,我才决定先放下顾虑先公布一版再说。
脚本代码发布在了 https://gitlab.com/timeline.menu/ddns
如需要指定的查看 v1.0 版本的内容 请查看 https://gitlab.com/timeline.menu/ddns/-/tree/95d32bb6df57d5610ca6595a7347fe1ecc89aad9 这个 commit 或者 浏览 https://gitlab.com/timeline.menu/ddns/-/commits/main 在里面点击 v1.0 后面的文件夹图标

先说说这个脚本的前期准备
如前文(https://blog.csdn.net/connect_/article/details/109529545)所说,使用这个脚本是需要有自己的域名的,并且自己要有完全的解析权限。配套的准备一下阿里云账户用作解析,它的域名解析是免费的,不像amazon会对每个域名收取每月一刀的费用。 同时还得注意拨号得到的ip地址要是公网ip地址,如果你拨号得到的不是公网ip地址的话就得找你的运营商交涉来获得公网ip地址,通常这不是一个简单的过程,他们会利用装傻,装瞎等一系列手段推脱(尽管它们并没有因为分配给你一个内网地址而少收你钱)。只要你按上前文的方式验证过一次后(记得记下此时的拨号设置)那么以后再拨号得到的就肯定是公网ip地址,不需要纠结下一次拨号得到的会不会是内网地址。如果有一天你发现变成内网ip了,请检查一下你的拨号设置,如果都正确的话就是运营商又捣鬼了,这时就是又一鸭轮的交涉过程了。再就是需要有一台linux主机,在硬件层面并不一定是台式机或者笔记本,只要能装的上相应的工具链就行。最后的一个需求就是这个linux主机的网络要是通的。
总结一下要准备的吧:
1. 自己有解析权的域名
2. 域名解析 本文用阿里去DNS解析
3. 拨号得到的是公网ip地址
4. 一台linux主机
5. 这台linux主机的网络是通的

当前期准备工作都完成了后,就去把代码拉回来,
为了方便用介绍 我用一个例子来说明这个脚本的使用方式,

假设,我现在需要的是要动态修改 so-u.info 这个域名的 web 二级域名的 ipv4 的地址解析,
     为了方便区分我以 web_v4 为文件名,即:服务文件名为 web_v4.service , 定时器文件名为 web_v4.timer
     (当然简单的起名为 ddns 也是一个不错的选择(如果你只需要一个ddns服务的话))

将本程序代码拉回本地后 放在了 /mnt/ddns/ 下
git clone https://gitlab.com/timeline.menu/ddns.git
sudo cp -dfprv ddns /mnt/
接着执行:
cd /mnt/ddns/
chmod +x *.sh
然后根据自己的实际情况做一些修改,比如

这里需要修改的是服务文件中的 ExecStart= 部份

ExecStart=/mnt/ddns/update.sh 4 ppp0 so-u.info web 0 001 /mnt/ddns/logs/'web_v4.''domain_record.txt' /mnt/ddns/logs/'web_v4.''delete_record.txt' /mnt/ddns/logs/'web_v4.''add_record.txt' /mnt/ddns/logs/'web_v4.''mod_record.txt'

/mnt/ddns/update.sh 是脚本文件的绝结路径, 在 systemd 中需要使用绝对路径。
后面跟着的是它的参数
1 ip版本
2 网卡名称
3 域名
4 要写入的二级域名
5 MX记录优先级
6 阿里云配置序号
7 域名解析列表记录文件
8 域名解析删除记录文件
9 域名解析添加记录文件
10 域名解析修改记录文件

这一行根据你自己的实际需要修改就可以了,它后面有10个参数,顺序不能错喔~~ 因为我懒,没有写参数规则,哈哈。
需要注意的是不要照抄我的喔,很大的概率是不会工作的喔。

可能有朋友注意到了 我的文件里写的网卡名称是 ppp0 ,那是因为我现在已经用这么linux主机完全替换掉了路由器,拨号功能也是由它来完成的,所以我直接读取ppp0的网卡地址就是我现在的外网ip地址了。

至于如何将一台linux配置成路由器将是另外一个大工程,如果有需要的朋友可以留言或者私信给我。

现在服务文件和定时器文件都有了,再检查一遍它们的前缀是否是一样的? 因为不如果前缀不一样的话它就不会工作啊。

现在我们要去布置 aliyun 的运行环境了:
这个脚本文件需要用到两个软件包 aliyun-cli 和 jq 我们先来安装它,执行命令
sudo pacman -S aliyun-cli jq
接下来要编辑 /mnt/ddns/profile_set.sh 文件
在这两行中填入你的阿里云 accesskey
ak_id='' #AccessKeyId
ak_se='' #AccessKeySecret
保存后 运行它
/mnt/ddns/profile_set.sh

当你看到輸出形如:(下面的显示是否能对齐并不能确定,取决于浏览器此时所采用的字体。尽管本文已配置了等宽字体,但在一些浏览器中并未支持,如不能正确排布的话请手动修改浏览器的字体为一种等宽字体 或者尝试访问我自己网站上的副本)
Profile   | Credential         | Valid   | Region           | Language
--------- | ------------------ | ------- | ---------------- | --------
default   | AK:***             | Invalid |                  | en
001 *     | AK:***Yrq          | Valid   | cn-hangzhou      | en
的样子时 注意 第二行里的 001 就是我们刚才配置进去的,这就说明配置成功了,
如果没有 001 那一样 只是
Profile   | Credential         | Valid   | Region           | Language
--------- | ------------------ | ------- | ---------------- | --------
default * | AK:***             | Invalid |                  | en
就说明没有成功,你需要重新检查你的 /mnt/ddns/profile_set.sh 文件。

好了,所有准备工作都完成了,接下来让它成为一个系统服务吧:
sudo cp -v /mnt/ddns/web_v4.service /usr/lib/systemd/system/
sudo cp -v /mnt/ddns/web_v4.timer /usr/lib/systemd/system/
sudo systemctl enable web_v4.timer --now

此时系统服务就生效了,如果不放心要查看定时器是否生效可以执行:
systemctl list-timers --all
如果看到了 web_v4.timer 就是成功了

如果是再次修改 /mnt/ddns/web_v4.service 后复制到 /usr/lib/systemd/system/ 为了让新版的 .service 生效需要执行
sudo systemctl daemon-reload

我自己网站上的副本: 用自己的域名配置动态域名解析(DDNS) (二)

用自己的域名配置动态域名解析(DDNS) (二)相关推荐

  1. DNS部署之动态域名解析DDNS

    DNS部署之动态域名解析DDNS dns+dhcp=ddns=动态域名解析=花生壳 DDNS: DDNS:之前的远程更新是基于静态网络做的,但是如果我们用动态网络获取ip,dns就不能及时更新到ip的 ...

  2. 给Godaddy名下的域名弄个动态域名解析DDNS

    突然发现能提供DDNS的是越来越少了,要么现在收费了,要么已经没这个服务了.好不容易找到的一个国外的DDNS服务,今天发现ping了几次,每次IP都不一样,导致自己的网站一会能打开,一会不能打开.最后 ...

  3. vue 获取动态域名_通过阿里云实现动态域名解析DDNS

    前言 该脚本的代码大部分是参考自阿里云的官方帮助文档. 1, 脚本语言使用的是python, 我个人只是了解python,没有太深入的知识功底 2, 脚本代码我会尽量详细地添加注释说明,有问题欢迎留言 ...

  4. linux实现动态域名解析DDNS

    功能 实现外网访问家里电脑 使用自带的lynx 安装 ubuntu下 sudo apt-get install lynx centos下 yum install lynx 使用 lynx -mime_ ...

  5. openwrt/LEDE 动态域名解析DDNS

    1.域名的申请不再介绍,到域名控制台里先加一条A记录,指向路由器现公网IP 2.进路由设置 3.更换到需要用服务商协议 3.查询主机名与域名一致, 4用户名和密码到服务商那获取 5密码复制

  6. 一文搞懂常用的网络概念:域名、动态IP、DNS、DDNS

    人呐,眼光放得长远一些,看到的东西也会多一些,生活也就会过得更有意义一点. 本文已被https://yourbatman.cn收录:女娲Knife-Initializr工程可公开访问啦:程序员专用网盘 ...

  7. Python+阿里云DNS 搭建DDNS动态域名解析

    家用的动态公网IP在断电以及一段时间后会变化,现在家宽公网IP开网盘以及代理管得越来越严格,已经有检测到被封的案例 上海检测web封停 这让我这种挂种子的PT党(迫真)感到害怕 以前我把国外的免费域名 ...

  8. DNS抗压集群服务器部署、远程加密更新DNS、花生壳(DDNS)--动态域名解析功能实现

    简介 DNS服务器一般在使用时,当访问量太大时,为了缓解服务器的压力,可以使用一个主DNS服务器,多个辅助DNS服务器,这些DNS服务器就组成一个DNS集群.DNS集群部署当服务器迁移或者IP变更时, ...

  9. 指南:内网穿透与DDNS动态域名解析区别,一篇看懂

    外网访问的两种方式 目前局域网环境中主流的外网访问内网分DDNS和内网穿透两种方式,以下将分别介绍: 一.DDNS服务(动态域名解析) 外网访问内网设备的基础是通过IP来通讯,而且运营商提供的公网IP ...

  10. 阿里云DDNS(动态域名解析)获取解析并对比

    一.问题由来 昨天家里停电了,来电后IP地址改变了.但是并没有更新到域名解析数据上.所以感觉之前写的代码有一丝丝的不稳定. 今天重新写一个直接点的.直接查询域名服务器的解析地址,与本地公网IP地址比对 ...

最新文章

  1. BOM—浏览器对象模型(Browser Object Model)
  2. 机器学习实战-第12章Fpgrowth代码勘误+递归打印效果分析
  3. 副业刚需? 恐怕并不靠谱!
  4. router vue 页签文字_vue-router实现tab标签页(单页面)详解
  5. iOS 图形编程总结
  6. Swift - RunTime(动态性) 问题 浅析
  7. java -UDP通信
  8. 降维系列之 LE 拉普拉斯特征映射
  9. 揭秘720°三维全景3D实景地图制作技术
  10. iMX8MM启动流程
  11. 学李炎恢老师的PHP第一季 笔记 多用户留言系统-TestGuest0.2
  12. PyQt5中的下拉框控件(QComboBox)文本居中
  13. wincap linux部署
  14. 2018华为软件精英挑战赛经验(一)
  15. NOIP2003 侦探推理 详解
  16. (附源码)ssm高校学生档案信息管理系统 毕业设计 010936
  17. nobody用户介绍
  18. Linux小白想成为007,先会用“John the Ripper工具”
  19. 深度优先搜索(c++)
  20. spyder crashed during last session

热门文章

  1. php给图片添加水印图片,PHP实现给图片添加文字水印
  2. 重庆大学和北京交通大学计算机学院,北京交通大学录取分为何比一些985高?真是能上985就不上211吗?...
  3. visio 画箭头_visio2013中画箭头的具体操作步骤
  4. FragmentActivity_左右滑动的碎片
  5. 相对url和相对路径
  6. Linux下压缩某个文件夹(文件夹打包)
  7. DirectX12(D3D12)基础教程(一)——基础教程
  8. 应用实例 | 手把手教你用OpenCV实现餐盘水果识别计价程序(附代码)
  9. “区块链+”教育的发展现状及其应用价值研究
  10. 中国移动盘古搜索开创全新服务模式