1
Aoang 2020-05-08 23:20:53 +08:00 via Android
不支持 ddns 做域名转换是什么意思?这个链接用的不是域名吗?
关于多设备配置 ddns,弄个脚本丢在设备上跑就好了啊。 安全问题,开防火墙,不用弱口令,定期更换。 还有动态 ip 的问题,真给你一个静态的,某天被什么网站、服务 ban 了 ip,你怎么整?准备找运营商投诉? 凡事都有多面性,有利必有弊,根据个人做取舍 |
2
cwbsw 2020-05-08 23:24:13 +08:00
1. 远程地址,你 v4 也得用域名啊。本地局域网,可以用 ULA 地址,比如 fd::1 。
2. DDNS 一行 curl 命令的事,能有多复杂。 3. 我的方案,wireguard 连回家里,allowedip 为家里内网网段,在外面可以一直开着,不访问家里内网时不会占用资源。 |
3
wazon 2020-05-08 23:44:08 +08:00
不知道你用的是什么 NAS,群晖里带 IPv6 的 DDNS 配置起来应该不麻烦
如果想用一台机器自编脚本集中处理 DDNS,那么局域网内的其他设备可以用邻居发现协议( NDP )找到( https://www.v2ex.com/t/646082#r_8596830 ) SLAAC 分配的 IP 地址你会暴露给 ISP 和你主动访问的对象。如果想进一步加强安全性可以配 IPv6 的防火墙( https://www.v2ex.com/t/669225?p=1#r_8930837 ) IPv4 下因为内网的 NAT,所有的外部访问都由路由器集中转发,客观上方便了 DDNS IPv6 下不再有 NAT,为用户提供了更大的自由度(比如可以有多台 NAS 用同一套端口方案),同时配置的方式也出现了改变。在这种情况下,可以每台设备各自做 DDNS,可以选择一台中枢设备转发流量(模仿 NAT 的模式),也可以选择一台设备根据 NDP 的信息按 MAC 分别配置 DDNS |
4
wazon 2020-05-08 23:46:56 +08:00
补充:
群晖里的 DDNS 是图形界面 SLAAC 分配的 IP 地址除了 本地设备、ISP 和 该设备主动访问的对象,不容易被外人所知,且极难被暴力扫到,因此天生具有一定的安全性 |
5
wjswxp 2020-05-09 00:34:14 +08:00
你甚至可以强制使用 IPv6 NAT 以增加安全性,只要网关是公网可访问的,你就可以外部接入啊。
|
6
vhus OP |
7
locoz 2020-05-09 00:54:42 +08:00 via Android
1 、内网 dns 解决,路由器上配一下就好了
2 、ipv6 ddns 可以在路由器上做的,这个问题也不大,获取一下 dhcp 表就好了 3 、安全问题也好解决,路由器有防火墙,即使内部设备是公网 ipv6 也仍然能被路由器的防火墙阻断特定端口的通信,你仍然可以只开放特定端口 |
8
vhus OP ipv6 的好处之一就是网关透明的,不用去考虑 NAT 、端口等问题。
亟待解决的就是如何给每个设备分配个域名,而不是每次敲一长串地址,况且那地址总是在变。 |
9
AoTmmy 2020-05-09 00:55:04 +08:00 via Android
不支持脚本的可以用端口转发,在内网设备上转发指定端口
|
11
zro 2020-05-09 01:00:43 +08:00
|
12
vhus OP @locoz 如果用 ipv6 dhcp 分配地址,那就跟 ipv4 没有多大差异,也就没必要说这个问题了。
比较容易的是 ND 方式自动分配。 |
13
AoTmmy 2020-05-09 01:08:49 +08:00 via Android
@vhus 你设备连 curl 或者脚本都不支持的话用 IPv6 也没有什么意义吧,内网走 IPv4 也比 v6 方便。你这个输入的 v6 地址也不知道意义何在,ddns 到 a.ipv6-literal.net 或者 xx.ipb6-literal.net 不就行了
|
14
vhus OP @zro 常用的家用级路由器,只要获取了公网 ipv6 地址,如果没开防火墙每个设备就都暴露在公网上。
网络安全不是我目前想解决的重点,重点是 ipv6 ddns 。 |
15
Atomo 2020-05-09 01:15:35 +08:00
不能跑脚本的设备,根本就没打算让你主动访问,都是被动的,你主动访问小米电饭煲有啥用?
如果该设备有跑服务程序,并且让你主动访问,肯定有设置 ip 的方式 获取 ipv6 地址可以从互联网取得 ( https://)ipv6.ddnspod.com |
16
vhus OP @AoTmmy 我的问题是在 ipv6 的使用方面,意义还是有的,ipv6 方便的地方也就是可以 IP 到 IP 的直接连接,不用通过 NAT 、端口转发。问题主要就是----如何不写那么长的字符,转换成固定的域名。
|
17
vhus OP |
18
vhus OP 统一感谢楼上回复的兄弟们,可能做饭意义不大,我把电饭煲的例子换为打印机吧。^_^
|
19
Atomo 2020-05-09 01:37:39 +08:00 via Android
从我的角度考虑,物联网设备最好有一个云平台,设备发心跳包告知平台状态和 ip,控制终端(手机或者电脑)通过认证接入平台,进而控制相应的设备
|
20
Atomo 2020-05-09 01:43:04 +08:00 via Android
想把设备的当前 ipv6 地址和域名做绑定,还是要设备主动告知,不管是告知云平台,还是告知 ddns,否则比较难实现,因为 v6 地址是动态的,这也是 v6 的安全之处
|
22
Atomo 2020-05-09 02:00:32 +08:00 via Android
@vhus 对于没有开启 SLAAC 功能的设备来说,64 位后缀是固定的静态的,你可以通过网关或者 nas 或者电脑 ddns 获取到 64 位动态前缀,然后拼凑完整的 128 位地址到域名解析
|
23
AoTmmy 2020-05-09 02:17:57 +08:00 via Android
感觉这种小的东西弄个专门的 ddns 像脱裤子放屁🐶
找一台机器做前端机 ddns 泛解析到 xx.com ,局域网内的机器如果是网页用 nginx 反代,如果是打印机端口转发 31 。感觉只是为了一两个端口的单独 ddns 真是没必要,你也不用输一堆字母了一个域名搞定而且更安全(除了公网打印机) 这种连脚本都跑不了的功能都简单,我感觉集合到一个 ddns 就可以 功能复杂的设备都能跑脚本就直接 ddns |
24
leschans 2020-05-09 06:56:40 +08:00 via iPhone
0. 如果是家庭宽带分配动态 IP 蛮合理的啊。
1. 你写的这个就是域名啊,你不弄个这么长的不就是了。比如 nas.ipv6-literal.net 2. 一般的设备都能弄 DDNS 吧,curl -6 一下就好了,Google 一下很多免费的。要是说内网的手机这类设备 curl 不了,先看看访问手机的用处大不大。 3. 如果你不是真给内网全部设置了 IPv6,你暴露的顶多是 IPv6-PD 地址,要知道后面的得枚举了。实在有必要的可以绑定 MAC 访问。 |
25
CheekiBreeki 2020-05-09 08:01:18 +08:00 via Android
ddns,用 dynv6 這個支持 4/6 雙桟,跑個腳本 2 分鐘檢測上報就 ok 了
|
26
qingxi 2020-05-09 09:19:38 +08:00 via Android
支持 dhcpv6 可以指定分配后缀,像原生安卓只支持 slaac 后缀由网卡 mac 地址换算,这个后缀又长又难记
|
28
Michaelssss 2020-05-09 11:16:36 +08:00
nas 看电影还要手输??地址超长就无视把,买个 10 块钱的.icu 域名,挂 AAAA,跑脚本 ddns 完全满足你的需求
|
29
wslzy007 2020-05-09 13:20:23 +08:00
保持防火墙打开,使用 sg 穿透防火墙访问即可。访问 url 使用 ipv4 ( ipv4 over ipv6 )
github.com/lazy-luo/smarGate |
30
Atomo 2020-05-09 14:16:28 +08:00
@Atomo #22 我尝试完善了针对固定 ipv6 后缀并且不能跑 ddns 脚本的设备,可通过同一内网的任意设备替它跑 ddns,
1.获取自身 ipv6 外网地址 curl ( https) ipv6.ddnspod.com 返回:2001:1234:1234:1234:1:1:1:1 2.获取自身 ipv6 地址前缀 curl ( https) ipv6.ddnspod.com/prefix 返回:2001:1234:1234:1234:: 3.获取自身 ipv6 前缀+自定义后缀 curl ( https) ipv6.ddnspod.com/prefix/22 返回:2001:1234:1234:1234::22 curl ( https) ipv6.ddnspod.com/prefix/2:2:2:2 返回:2001:1234:1234:1234:2:2:2:2 |
32
vhus OP @Atomo 我目前也只能通过获取路由器获取网段 ipv6 地址,再通过记录设备 EUI-64 地址,换算为设备公网 ipv6 地址。
地址长度过长这个梗,目前绕不开,如何把它分配个 DDNS 域名,就是最头痛的问题了。 |
33
vhus OP @Atomo 用一个设备代替其他不能运行脚本的客户端去进行 DDNS 更新,是个解决方案,还需研究一下,争取能在网关上直接运行它。
|
34
Atomo 2020-05-09 15:08:45 +08:00
|
35
Atomo 2020-05-09 15:16:33 +08:00
针对 Only-ipv6
``` token="login_token=${API_ID},${API_Token}&format=json&domain=${domain}&record_type=AAAA&sub_domain=${host}" Record=$(curl -s -k -X POST https://dnsapi.cn/Record.List -d "${token}") iferr=$(echo ${Record#*code} | cut -d'"' -f3) if [ "$iferr" == "1" ];then record_ip=$(echo ${Record#*value} | cut -d'"' -f3) echo "[API IP]:$record_ip" if [ "$record_ip" == "$DEVIP" ];then echo "IP SAME IN API,SKIP UPDATE." exit fi record_id=$(echo ${Record#*\"records\"\:\[\{\"id\"} | cut -d'"' -f2) record_line_id=$(echo ${Record#*line_id} | cut -d'"' -f3) echo Start DDNS update... ddns=$(curl -s -k -X POST https://dnsapi.cn/Record.Modify -d "${token}&record_type=AAAA&record_id=${record_id}&record_line_id=${record_line_id}&value=${DEVIP}") ddns_result="$(echo ${ddns#*message\"} | cut -d'"' -f2)" echo -n "DDNS upadte result:$ddns_result " echo $ddns | grep -Eo "$IPREX" | tail -n 1 else echo -n Get $host.$domain error : echo $(echo ${Record#*message\"}) | cut -d'"' -f2 fi ``` |
37
Aoang 2020-05-09 16:50:16 +08:00 via Android
@vhus 不是我说…打印机、电饭煲这种设备是能直接暴露在公网上的吗?这和裸奔有啥区别???
至于 ddns,我就想知道你是怎么知道设备的 ip 地址的。你都有办法获取到设备的 ip 地址了,我不信脚本完成不了这个功能。 |
38
vhus OP 童鞋请给些有建设性的回复,
打印机,电饭煲只是个业务场景的例子…… 如要回答你如何获得 IP 这样盖楼楼就歪了…… |
39
flyfishcn 2020-05-09 18:06:25 +08:00
@vhus #38 那些没有提供渠道的场景,怎么获取地址和 ddns 的需求我觉得很可能只是你这样小众人群的需求,而且获取不获取对设备本身功能使用没有什么影响的吧?既然如此,开发者没有留入口给你也是很正常的。
既然是自己的需求,也就别去怪别人把楼盖歪了。那么可以提供两个思路: 1 、用有状态分配地址,这样 dhcpv6 服务器就会维护分配给设备的地址,之间去取来传给 ddns api 更新。 2 、内网用固定的 ULA 地址,网关上做 1 对 1 的 nat,按后缀匹配,前缀从内网网关上取,合成完整的地址传给 ddns api 更新。 或者 VPN 拨进内网,就干脆用 ula 地址访问。 |
40
tia 2020-05-09 18:06:59 +08:00
所以静态 ip 才买那么贵啊。ddns 搞个阿里的支持 ipv6 短小好记
|
42
wazon 2020-05-09 18:42:53 +08:00
再总结一下,对于无法配置 DDNS 的物联网设备,可以在(旁)路由集中处理。
理论可行的有以下方案: 1. 仿照 IPv4 下的现状 做端口转发(利用相对稳定的本地链路地址) 2. 后缀不变的设备,在路由器拼接动态前缀+固定后缀 做 DDNS 3. 后缀会变的设备,在 NDP 的结果里照着 MAC 地址找到新的公网 IP 做 DDNS |
43
qbqbqbqb 2020-05-10 11:49:31 +08:00
@vhus 大部分家用路由器都自带 IPv6 防火墙默认开启,有的还不提供关闭防火墙的设置(比如 NETGEAR )。但凡是路由器拨号用户基本都不用考虑这个安全问题。
有问题的反而是光猫自动拨号用户,光猫超级管理员页面有一个防火墙设置,设为高则默认阻断,设为低则默认暴露,这个设置都是运营商自动推送的,而且用户不破解超密也没法修改。 |
44
myzincx 2020-05-11 11:01:03 +08:00
对于只是想个人访问的设备的话,我倾向于是自己搭建一个 vpn,类似于 wireguard 甚至 v2ray,然后在 vpn 服务器上跑 ddns 。
这样既避免了直接暴露诸如物联网设备暴露在公网(虽然如果获取到了公网 ipv6 就是变相暴露,但是首先 ipv6 现阶段基本没可能暴力扫描出来,其次也可以配置路由器防火墙,只对外开放 vpn 服务器的对应端口),又解决了你此类设备不好跑 ddns 脚本的难题。 个人使用的就是 v2ray 架设在 n1 上,然后关闭其他所有设备的 ipv6 入网。 |
45
lentrody 2020-07-03 10:31:21 +08:00
@wazon 支持 IPv6 的设备应该都可以通过 SLACC 生成固定后缀地址吧,隐私地址才是可选项。
固定后缀也不需要在路由器里拼接,运营商一次只会给你分配一个前缀,只需要把一台设备的完整地址发给 DDNS 服务端就行,再把某个设备的固定后缀提供给服务端一次就行。 我现在就在用 dynv6,在刷了 padavan 的主路由上挂 dynv6 提供的脚本来提供外网 IPv6 地址,然后把内网一台主机的固定地址后缀在添加上去就行了。 |