移动宽带公网IPV6访问

关于软路由ipv6与外网访问的那些事(已更新)
https://koolshare.cn/thread-165156-1-1.html
(出处: KoolShare)
我是快乐的搬运工!


动态解析LEDEipv6

目前为止,三大运营商提供的ipv6地址前缀每隔几天都会变动,因为每隔几天都会网络都会重启一次,重启意味着要重新分配ipv6前缀。虽然直接访问ipv6可以连接到设备,但是一旦网络重启就无法连接了。所我们需要ipv6的ddns解析。
同样首先要申请一个域名,如果你要同时使用frp穿透和ipv6访问,那么你需要重新申请一个域名。
申请好域名后,在lede酷软中心下载koolshare动态域名解析工具.


安装后进入设置

如图设置,主域名填写你申请好的域名,如xxxxx.com,子域名可以自己随便填写,比如lede,那么你将会通过lede.xxxxx.com访问路由器.
校验码获取方式以万网为例,登录进入万网,点击个人头像,如图

点击会进入如下界面

如果你是新用户,以前没有创建过key,那这个界面应该是空的,你需要创建一个。
Accesskey id对应校验码1,access key secret对应校验码2。填到上面插件中,接口类型选择ipv6,点击应用并保存。
此时,还需要在万里面对域名进行解析。
进入万网域名解析,选择刚刚申请的域名,添加解析



Ipv6的记录类型要选择AAAA,主机记录里就是你刚刚在路由里填的子域名,下面记录值你需要随便输入一个ipv6,其它默认。点击确定。
然后在路由动态域名解析工具里点击手动更新,此时你再看看你的域名记录值你会发现他已经变成你路由的ip地址了。2409前缀是目前中国移动ipv6前4位,中国电信应该是240e,中国联通应该是2400



打开的浏览器,在地址栏输入域名lede.xxxxx.com,你会惊喜的发现你已经可以进入lede后台了。开心吗?爽吗?是不是已经觉得万事大吉了?No! No! No!
这只是在内网环境下可以通过域名访问了,我们要的结果是在外网也能访问。如果测试呢?

打开LEDE防火墙

接下来我教大家设置防火墙
依次进>网络>防火墙,点击通信规则往下拉,你需要打开路由器的80端口。


添加,保存并应用。确保如下图所示:

以上设置全部完成后,再次在手机4G环境下输入域名,你会惊奇的发现你已经可以通过ipv6进入路由器后台了。

群晖动态解析ipv6

  1. 确定你的群晖已经获取到ipv6地址.

红框里面的两个为移动分配的公网ipv6地址,其中一个临时的。

  1. 同样的由于ipv6会动态更新,此时就还是需要阿里云的ddns。Lede有ddns插件来实现,而群晖没有,我们需要一个ddns脚本,然后添加到群晖的定时任务里。该脚本来自于网络,感谢脚本原作者,向原作者致敬!保存为aliyun.sh!!!
#!/bin/sh
aliddnsipv6_ak="XXXXXXXXXXX"
aliddnsipv6_sk="XXXXXXXXXXX"
aliddnsipv6_name1='nas'
aliddnsipv6_domain='XXXX.cn'
aliddnsipv6_ttl="600"

if [ "$aliddnsipv6_name1" = "@" ]
then
  aliddnsipv6_name=$aliddnsipv6_domain
else
  aliddnsipv6_name=$aliddnsipv6_name1.$aliddnsipv6_domain
fi

now=`date`

die () {
    echo $1
}

ipv6s=`ip addr show eth0 | grep "inet6.2409" | awk '{print $2}' | awk -F"/" '{print $1}'` || die "$ipv6"

for ipv6 in $ipv6s
do
  #ipv6 = $ipv6
  break
done

echo $ipv6

current_ipv6=`nslookup -query=AAAA $aliddnsipv6_name 2>&1`
#echo $current_ipv6

current_ipv6=`echo "$current_ipv6" | grep 'Address: ' | tail -n1 | awk '{print $NF}'`
echo $current_ipv6

if [ "$?" -eq "0" ]
then
    current_ipv6=`echo "$current_ipv6" | grep 'Address: ' | tail -n1 | awk '{print $NF}'`
    echo $current_ipv6

    if [ "$ipv6" = "$current_ipv6" ]
    then
        echo "skipping"
    fi 
# fix when A record removed by manual dns is always update error
else
    unset aliddnsipv6_record_id
fi


timestamp=`date -u "+%Y-%m-%dT%H%%3A%M%%3A%SZ"`


urlencode() {
    # urlencode <string>
    out=""
    while read -n1 c
    do
        case $c in
            [a-zA-Z0-9._-]) out="$out$c" ;;
            *) out="$out`printf '%%%02X' "'$c"`" ;;
        esac
    done
    echo -n $out
}

enc() {
    echo -n "$1" | urlencode
}

send_request() {
    local args="AccessKeyId=$aliddnsipv6_ak&Action=$1&Format=json&$2&Version=2015-01-09"
    local hash=$(echo -n "GET&%2F&$(enc "$args")" | openssl dgst -sha1 -hmac "$aliddnsipv6_sk&" -binary | openssl base64)
    curl -s "http://alidns.aliyuncs.com/?$args&Signature=$(enc "$hash")"
}

get_recordid() {
    grep -Eo '"RecordId":"[0-9]+"' | cut -d':' -f2 | tr -d '"'
}

query_recordid() {
    send_request "DescribeSubDomainRecords" "SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&SubDomain=$aliddnsipv6_name&Timestamp=$timestamp&Type=AAAA"
}

update_record() {
    send_request "UpdateDomainRecord" "RR=$aliddnsipv6_name1&RecordId=$1&SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&TTL=$aliddnsipv6_ttl&Timestamp=$timestamp&Type=AAAA&Value=$(enc $ipv6)"
}

add_record() {
    send_request "AddDomainRecord&DomainName=$aliddnsipv6_domain" "RR=$aliddnsipv6_name1&SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&TTL=$aliddnsipv6_ttl&Timestamp=$timestamp&Type=AAAA&Value=$(enc $ipv6)"
}

#add support */%2A and @/%40 record

if [ "$aliddnsipv6_record_id" = "" ]
then
    aliddnsipv6_record_id=`query_recordid | get_recordid`
    #echo '-----------------' $aliddnsipv6_record_id
fi
if [ "$aliddnsipv6_record_id" = "" ]
then
    aliddnsipv6_record_id=`add_record | get_recordid`
    echo "added record $aliddnsipv6_record_id"
else
    update_record $aliddnsipv6_record_id
    echo "updated record $aliddnsipv6_record_id"
fi
  1. 该脚本需要根据实际情况来改几处地方.


用notepad++软件打开脚本,前文中提到的阿里云里的Accesskey id对应Key1,access key secret对应Key2,代替图中的XXXXXX,第4行引号内填写你的子域名,
如我的为nas,第5行domain引号内填写你的域名,如XXXX.com,这样你将来访问nas的域名就是:nas.XXXX.com
第21行 eth0为你的群晖网卡名,请确认是否为eht0,如果不是请更换为你的网卡名。
如何确认自己的群晖网卡名呢?
我们打开群晖的控制面板,左边拉到最下面,点开终端机和SNMP,启用SSH,打勾,然后应用保存。


接下来用ssh工具,如putty,xshell等工具,登入群晖后台ip,这里的ip是ipv4,如我的为192.168.2.187,端口号为22,用户名为你的群晖用户名,密码也是你的群晖密码。进入后输入命令ifconfig,回车就会看到你的网卡名称。如图:


再接下来,同样是21行的2409替换为你的ipv6前缀4位,在上图中可以看到。如果是中国移动的宽带这里就无需再变更。
这样脚本就修改完毕。
改完别忘了将你的群晖ssh关闭,这是为了安全!安全第一!安全第一!

  1. 在阿里云控制台里再添加一条域名解析,注意:还是用之前申请的域名,无需重新买域名.

记录类型 同样选择AAAA记录
主机记录 里面填写刚刚在脚本里第3行填的了域名,如nas
记录值 里面随便输入一个ipv6地址
添加好后如图所示:


  1. 以上工作完成好后,我们需要将修改好的脚本添加到群晖的计划任务里面,并且定时运行。将脚本上传至你的群晖的共享文件夹里面。

右键属性,记住(复制)该脚本路径。
打开控制面板—》计划任务—》新增—》计划的任务---》用户自定义的脚本.

任务名称根据自己喜好随便填。

计划根据需要填,我是填的每30分钟运行一次脚本.

关键是下一步,将刚刚复制的脚本路径粘贴在任务设置最下面的框里面。


点击确定,然后再点击一下顶部的运行。如无意外,你阿里云控制台里刚刚添加的域名已经指向你的群晖ipv6。可以打开控制台看看域名解析地址是否已经变更为群晖ipv6。
此时在内网环境下通过域名nas.XXXX.com已经可以访问nas。

LEDE打开群晖防火墙

外网访问还需要在lede里添加相应的防火墙规则。
依次进>网络>防火墙,点击通信规则往下拉,你需要打开5000,5001,5005等端口。

添加后,再点击该防火墙规则的编辑.

进入后里面的选项按照下图设置。端口用空格隔开.

此时,已经可以从拥有ipv6的外网访问群晖了。
拿出你的手机,在4G模式下,在浏览器输入域名nas.XXXX.com,就可以进入nas登录界面了。在手机上下载DS file APP,输入相关域名就可以登入就可以看到你群晖里的共享文件夹,那个速度比内网穿透给力太多了,你可以尽情在外网看你家里的小电影了。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容