IPV4 时代只要家宽是公网 IP 就可以在路由防火墙上配置端口转发,配合搭建的 DDNS 服务就可以实现公网访问服务,部署一次以后就可以随便用,可以基本上说是一劳永逸。
例如:
使用动态域名 ddns.domain.com:13389 可以访问转发到内网 192.168.1.10:3389 实现 Windows RDP 远程控制;
使用动态域名 ddns.domain.com:10022 可以访问转发到内网 192.168.1.11:22 实现 SSH 的访问。
到了 IPV6 时代,家宽已经正常分配 PD,并且局域网内各个主机也有自己独立的 IPV6 地址,所以端口转发这一步就可以省掉了,实现路由器 Web 控制台访问很简单,OpenWrt 自带的 DDNS 即可方便的获取 WAN 口的 IPV6 地址。但是如何通过一个便捷的、类似于原来的动态域名的方式访问局域网主机上的服务?
目前我能想到的:
1.局域网内的需要被访问的每台主机各自运行脚本,以获取各个主机自己当前的 IPV6 地址,然后再通过 API 更新到域名上。
2.通过上面说的,进入路由器 Web 控制台查看局域网内主机设备当前的 IPV6 地址,然后再进行访问。
上面两种方式都各有优劣,并且由于家宽大部分都是动态 IP,体验上都是远不如 V4 时代 DDNS 配合端口转发来的方便,不知各位有何高见?
1
Archeb 2018-10-02 18:06:12 +08:00
> 1.局域网内的需要被访问的每台主机各自运行脚本,以获取各个主机自己当前的 IPV6 地址,然后再通过 API 更新到域名上。
这一点可以由分配地址的路由器做到呀~ 比如给 *.home.myhome.com 自动绑定主机名字和分配到的 IPv6 地址不就好了 当然,如果是使用 NDP Proxy 之类方式连接 IPv6 的话,貌似就不能简单的做到这一点了,需要魔改 relay 部分 如果是 DHCP-PD 分配前缀再分配下去的话就很简单 随着 ipv6 的发展,感觉以后会有一个进阶的 DDNS 服务,局域网主机 DDNS,不知道现在有人做了么 |
2
tia 2018-10-02 18:10:01 +08:00 via Android
ddns 目前阿里云的比较好用,不过阿里云的 openwrt 的脚本比较普遍,win 平台有个 py 版的脚本,但是不支持 v6,具体可以在 github 直接搜 aliddns
|
3
Archeb 2018-10-02 18:11:18 +08:00
简单地说就是
路由器根据 DHCPv6 分配列表,给局域网里的设备自动做 DDNS |
4
renothing 2018-10-02 18:25:14 +08:00
局域网开 stateless 模式分配地址。这样,后半部分说固定的.openwrt 上只需要获取网络前缀,就能推算子网下主机得实际地址。
|
5
innoink 2018-10-02 20:50:14 +08:00 via Android
虽然没搞过路由器,我觉得运行一个 nc 就搞定了啊,不就是端口转发么
|
7
Maskeney OP |
9
renothing 2018-10-02 21:22:04 +08:00 1
@Maskeney 你如果是 openwrt,那可以在 /etc/hotplug.d/下做脚本,前缀变更就自动执行脚本,拿前缀和局域网的地址做组合来动态更新 dns。如果设备很多,那可以看看 arp 表,iproute2 的 ip nei show 很强大,应该满足你的需求。
我目前也是用得 openwrt+cloudflare. |
11
Maskeney OP @renothing 对我来说…有点难 前缀的话应该是跟 wan 口的地址前缀相同吧…不太需要单独获取,至于 ARP 表…我歇菜了
|
12
renothing 2018-10-02 22:37:02 +08:00
@Maskeney 给你个参考,新版本可以用更加强大的 ubus 来做,老版本用 hotplug. 两者官方都有参考文档
https://wiki.openwrt.org/doc/techref/hotplug https://wiki.openwrt.org/doc/techref/ubus 另外,wan 口和 lan 口的地址前缀不一样,wan 口是单独得一个 /64,默认给设备的 /64 在 lan 口上。 比如你要获取分配到 lan 口地址前缀 ``` ubus call network.interface.lan status ``` ipv6 stateless 模式下,设备 ipv6 地址段是固定的,根据 mac 地址生成。你把网络段+地址段自己拼接,就是设备完整地址。 https://www.zhihu.com/question/20118076 |
14
Wenpo 2018-10-03 00:49:00 +08:00 via Android
没这么复杂,padavan 有现成的啦。点几下就可以了
|
15
ysc3839 2018-10-03 03:15:49 +08:00 via Android
@renothing 主流操作系统支持 SLAAC 的隐私保护功能,会在段里面随机选择一个 IP 来联网,不会通过 MAC 地址来生成地址。
|
18
ifishman 2018-10-03 10:23:40 +08:00 via Android
v6 初丁问一下具体的 ipv6 配置,我现在终端可以获取到 v6 地址,也可以访问外网,但是外网没法访问到终端,DHCPv6 服务器模式,无状态
|
22
zhouyut001 2018-10-04 23:12:15 +08:00 via Android
鑒於 ipv6 家用寬帶設置目前比 ipv4 複雜,有 ipv4 公網的還是繼續用 4 吧
|
23
liuxyon 2018-10-05 13:04:35 +08:00
我可以提供公网 IP 不就行了。
|
24
ifishman 2018-10-05 19:23:48 +08:00 via Android
ipv6 的 ddns 昨晚解决了,另外端口转发我觉得没必要,直接新添流量转发规则就好了
|
25
jim9606 2018-10-05 22:56:11 +08:00
openwrt 的防火墙默认阻止流入 LAN 的 IPV6 流量(部分 ICMPv6 可以),记得加防火墙规则或者禁用 ipv6 防火墙(不安全)。
如果不介意一些隐私问题可以关掉终端的 slaac 隐私保护,强制使用 eui-64 的接口 id,这样路由器那边可以根据路由自身的 IPV6 地址推算主机 IP |
27
BOGU 2018-10-29 14:45:39 +08:00
就等一个轮子了,给内网所有的公网 ipv6 主机分配一个自定义的 DDSN 域名。
|
28
meibu 2019-07-12 16:34:03 +08:00
www.meibu.com 提供了 IPV6 的动态域名解析服务,申请个域名绑定 IPV6 地址即可,很简单
|
29
Maskeney OP @meibu #28 好好读题 难题是在网关这里 如何获取局域网每个设备的 slaac 出来的 IPV6 而不是用什么动态域名服务 就算要用我也没理由放弃 CF 不用去选择这种看起来蛮野鸡的服务
|