目前几大营运商,基本都提供IPV6公网地址了,传统的内网穿透等方法相对比较麻烦。

本文针对移动大内网,分享DDNS最简单方法。
第一步:meibu.com注册账号,获得二级域名一个及密码备用。
第二步:新建 ddns.sh 脚本,复制以下代码,然后注意修改 xxxxxx.msns.cn为申请的二级域名,pwd=密码,保存。

#!/bin/sh
# 获取当前文件目录
dir=$(cd $(dirname $0); pwd)
# ip.txt用来保存IP地址,如果IP地址没有发生变化,则不进行地址更新,重复提交地址更新官方会封号。
iptxt="$dir""/ip.txt"
# 获取IPv6地址
ip=$(ip -6 addr list scope global $device | grep -v " fd" | sed -n 's/.*inet6 \([0-9a-f:]\+\).*/\1/p' | head -n 1)
if [ "${ip:-none}" == "none" ]
then
  echo "[ddns] 获取IP错误!"
  exit 12
fi
if [ -f $iptxt ]
then
  oldip=$(tail -n 1 $iptxt)
else
  oldip="::"
fi
# 与ip.txt中的IP地址对比,如果一致,则退出;如果不一致,则将新IP写入ip.txt文件中,并提交动态域名更新。
if [ "$ip" == "$oldip" ]
then
  echo "[ddns] IP无变化!"
  exit 0
fi
# 将变化的ip地址写入ip.txt
echo $ip > $iptxt
# 更新动态域名IP地址,xxxxxx.msns.cn为申请的域名,“pwd=”后面为密码
url="http://www.meibu.com/ipv6zdz.asp?ipv6=${ip}&name=xxxxxx.msns.cn&pwd=xxxxxx"
re=`curl -s $url`
echo "[ddns] 更新域名成功!"

第三步:SecureFX下在/root/下直接新建文件夹ddns,然后把ddns.sh复制进去。当然路径也可以自己设定。
第四步:openwrt后台计划任务添加定时执行,设定为每1分钟获取一次IPV6地址,并在文件夹生成IP.txt,以后每次获取IP对比该txt,如未发生变化则结束。如发生变化则更新。

* * * * * /root/ddns/ddns.sh

到这来基本就完事了,初次添加计划任务后,可能需要等待数分钟才可以通过二级域名访问。也可以直接在ssh执行一次脚本,手动更新一次。

转自科技玩家时间煮雨我煮屎

分类: 经验教程 标签: ddnsopenwrt
公众号图片

评论

暂无评论数据

暂无评论数据

目录