动态dns的配置

使用场景

配置

DDNS服务商选择

我只能说有很多,我认为dns.he.net比较朴素好用,功能很全。

添加A记录

  • IPv4 Address : 这个他会自动给你填个你的公网出口ip,先不用管
  • TTL : 由于是动态dns, ip随时会变,所以我都设置为5分钟
  • 最后打上勾【使能动态ddns】

添加动态更新IP脚本

具体文档可以参考这里

它提供的API很简单,一共2种形式:

1) 自动识别并更新ip,通过识别你的源ip

curl -4 "https://<your-sub-domain>:<api-key>@dyn.dns.he.net/nic/update?hostname=<your-sub-domain>"

2) 强制指定机器的ip, 如果你想局域网里用域名也成为现实

curl  "https://<your-sub-domain>:<api-key>@dyn.dns.he.net/nic/update?hostname=<your-sub-domain>&myip=192.168.2.3"

api-key哪里来的,看下图:

参考脚本

#!/bin/bash
ips=`/sbin/ifconfig -a | grep inet | grep -v 127.0.0.1 | grep -v inet6 | awk '{print $2}' | tr -d "addrs"` 
ip_array=($ips) #转为数组,ip可能有好几个
ip_1=${ip_array[0]} #选第一个ip, 如果要指定的就修改脚本吧
curl -4 "https://pc.mkmerich.com:<my-ip-key>@dyn.dns.he.net/nic/update?hostname=pc.mkmerich.com&myip=${ip_1}"

然后呢,做一个Linux定时任务,我懒省事就用crontab了

*/5 *    * * *   linux-user    /path/to/my/shell-script/update-ip.sh

最后我在自己内网中就可以用 ssh [email protected]来登录我的linux了,每次重启也不用担心不知道自己电脑ip是多少。

build:   __BUILD_VERSION__