300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 用自己的域名配置动态域名解析(DDNS) (二)

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

时间:2023-05-11 08:49:28

相关推荐

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

距离上次写关于 ddns 的文章已经过去快一年了。一年里这个文件修改了很多版本,因为有时候几天就改一回,导致我自己都不确定是不是可以稳定到向大家介绍它。

直到我注意到有人在等着我更新这个 ddns 脚本,我才决定先放下顾虑先公布一版再说。

脚本代码发布在了 /timeline.menu/ddns

如需要指定的查看 v1.0 版本的内容 请查看 /timeline.menu/ddns/-/tree/95d32bb6df57d5610ca6595a7347fe1ecc89aad9 这个 commit 或者 浏览 /timeline.menu/ddns/-/commits/main 在里面点击 v1.0 后面的文件夹图标

先说说这个脚本的前期准备

如前文(/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 /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) (二)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。