赞
踩
笔者使用的DDNS服务商为dnspod.cn,其他网站设置类似,只需要在/usr/syno/bin/ddns/目录下找到对应服务商的php文件进行修改即可。
本文针对没有公网IPV4地址,网络环境支持IPV6的群晖用户,修改后的文件在文章顶部,可直接下载替换
1.群晖在控制面板-终端机和SNMP中启用SSH功能
2.putty等软件
3.dnspod.cn顶级域名1个(笔者使用的.asia一年4块钱)
4.dnspod.cn id及token(请自行百度相关教程)
5.在dnspod.cn的管理控制台中随便添加一条记录类型为AAAA,指向任意IPV6地址的解析记录
1.使用putty连接黑群晖,首先输入用户名后回车,然后输入密码再次回车,成功进入群晖的linux系统
2.输入命令:cd /usr/syno/bin/ddns/
3.输入命令:ls,可以看到目录下有多个DDNS服务商的php脚本
4.输入命令:sudo cp dnspod_cn.php dnspod_cn.php.bak,对原始文件进行备份
5.输入命令:sudo vi dnspod_cn.php
第一部分修改
源文件如下:
- if ($argc !== 5) {
- echo 'badparam';
- exit();
- }
-
- $account = (string)$argv[1];
- $pwd = (string)$argv[2];
- $hostname = (string)$argv[3];
- $ip = (string)$argv[4];
-
删除$ip = (string)$argv[4];这一行,并在}下方添加如下代码:
- //利用网络上的api获取本机ipv6地址
- $url = 'https://api6.ipify.org/';
- $ch = curl_init();
- $options = array(
- CURLOPT_URL=>$url,
- CURLOPT_RETURNTRANSFER=>true,
- );
- curl_setopt_array($ch, $options);
- $ip = curl_exec($ch);
结果如下:
- if ($argc !== 5) {
- echo 'badparam';
- exit();
- }
-
- //利用网络上的api获取本机ipv6地址
- $url = 'https://api6.ipify.org/';
- $ch = curl_init();
- $options = array(
- CURLOPT_URL=>$url,
- CURLOPT_RETURNTRANSFER=>true,
- );
- curl_setopt_array($ch, $options);
- $ip = curl_exec($ch);
-
- $account = (string)$argv[1];
- $pwd = (string)$argv[2];
- $hostname = (string)$argv[3];
第二部分修改
源文件如下:
- // only for IPv4 format
- if (!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) {
- echo "badparam";
- exit();
把IPV4修改为IPV6,结果如下:
- // only for IPv6 format
- if (!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {
- echo "badparam";
- exit();
第三部分修改
源文件如下:
- $recordID = -1;
- $record_total = $json['info']['record_total'];
- for ($i = 0; $i < $record_total; $i++) {
- if (($json['records'][$i]['name'] === $subDomain) and ($json['records'][$i]['type'] === 'A')) {
- $recordID = $json['records'][$i]['id'];
- break;
- }
- }
-
- if ($recordID === -1) {
- echo 'nohost';
- curl_close($req);
- exit();
- }
-
- $url = 'https://dnsapi.cn/Record.Modify';
- $post = array(
- 'login_token'=>$account.','.$pwd,
- 'domain_id'=>$domainID,
- 'record_id'=>$recordID,
- 'sub_domain'=>$subDomain,
- 'value'=>$ip,
- 'record_type'=>'A',
- 'record_line'=>'默认',
- 'format'=>'json'
- );
把正数第四行和倒数第四行两个'A'修改为'AAAA',如下:
- $recordID = -1;
- $record_total = $json['info']['record_total'];
- for ($i = 0; $i < $record_total; $i++) {
- if (($json['records'][$i]['name'] === $subDomain) and ($json['records'][$i]['type'] === 'AAAA')) {
- $recordID = $json['records'][$i]['id'];
- break;
- }
- }
-
- if ($recordID === -1) {
- echo 'nohost';
- curl_close($req);
- exit();
- }
-
- $url = 'https://dnsapi.cn/Record.Modify';
- $post = array(
- 'login_token'=>$account.','.$pwd,
- 'domain_id'=>$domainID,
- 'record_id'=>$recordID,
- 'sub_domain'=>$subDomain,
- 'value'=>$ip,
- 'record_type'=>'AAAA',
- 'record_line'=>'默认',
- 'format'=>'json'
- );
:wq退出保存,至此文件修改完成
回到群晖的控制面板中,依次点击外部访问-DDNS-新增,选择服务商为DNSPod.cn,主机名称填写你申请的顶级域名如xxxx.asia,用户名和密码填写准备工作4中获取的ID和token,点击确定即可。
等待1分钟,在浏览器中输入你的域名xxxx.asia,你就可以在远程网络环境中访问你的群晖nas了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。