V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
vhus
V2EX  ›  宽带症候群

如何远程找到家里设备的 IPV6 地址?

  •  
  •   vhus · 2019-08-16 20:48:19 +08:00 · 12265 次点击
    这是一个创建于 1955 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前还没有一个路由器很方便的解决这个问题。
    ipv4 我也只是通过设置路由器的 DDNS+端口映射来区分。
    动态 ip 很烦的说。
    71 条回复    2019-09-04 20:24:58 +08:00
    Alozxy
        1
    Alozxy  
       2019-08-16 20:57:11 +08:00   ❤️ 1
    直接在终端设备上部属 ddns+路由器开启防火墙就行了
    rancent
        2
    rancent  
       2019-08-16 21:04:05 +08:00   ❤️ 1
    ipv6 ddns 呗
    vhus
        3
    vhus  
    OP
       2019-08-16 22:10:08 +08:00
    @rancent 不是所有设备都直接支持。
    还是不能直接找到。
    vhus
        4
    vhus  
    OP
       2019-08-16 22:10:58 +08:00
    @Alozxy 不是所有设备都支持 ddns
    liyvhg
        5
    liyvhg  
       2019-08-16 22:16:12 +08:00 via Android   ❤️ 1
    @vhus 那就在路由器底下的某个设备(吃灰派)上跑一个 ipv6 ddns
    vhus
        6
    vhus  
    OP
       2019-08-16 22:20:56 +08:00
    请读题
    vhus
        7
    vhus  
    OP
       2019-08-16 22:25:26 +08:00
    难道我还要用回 ipv4 的内外架设方式吗?
    路由器上启用 ddns+dhcp 分配内网 ip+防火墙+端口映射?
    locoz
        8
    locoz  
       2019-08-16 22:29:26 +08:00 via Android   ❤️ 1
    路由器支持 ipv6 ddns 的话就直接路由器上做,如果做不了的话,我看你有公网 ipv4,可以尝试写一个接口,请求的时候返回 ipv6 ip。
    Tianao
        9
    Tianao  
       2019-08-16 22:32:56 +08:00 via iPhone
    RouterOS 支持,如果要一体解决方案的话直接买 MikroTik 的路由器,买就硬件送域名和 DDNS 服务。
    liyvhg
        10
    liyvhg  
       2019-08-16 22:35:26 +08:00 via Android   ❤️ 1
    @vhus Pandorabox 自带 ddns 支持 ipv6,我用的 he.net
    liyvhg
        11
    liyvhg  
       2019-08-16 22:39:12 +08:00 via Android   ❤️ 1
    @liyvhg 还是没读懂题。。。。😂
    vhus
        12
    vhus  
    OP
       2019-08-16 22:45:02 +08:00
    @Tianao 我现在用的就是 routeros 2011 版本升级到了 6.4.5,prefix 方式获取的 ipv6 地址,每个设备都获取到了 ipv6,只是找到它们很麻烦。因为没用 dhcp 去分配,也没弄清楚 routeros 上如何看到每个设备的 IPv6 地址。
    cwek
        13
    cwek  
       2019-08-16 22:46:48 +08:00
    可以架设一台家里服务器来获得当前外网的 IPv6 地址,然后包算每个网内设备对应前缀的地址。即使开了隐私扩展也会保留一个固定的主机地址。
    vhus
        14
    vhus  
    OP
       2019-08-16 22:48:16 +08:00
    我想最好能用 mac 地址》 ipv6 地址》 ddns 域名,当然有个二级或三级域名去指向每个设备是极好的了。
    Archeb
        15
    Archeb  
       2019-08-16 22:49:12 +08:00   ❤️ 1
    之前想过造一个轮子,通过 NDP 可以获取到邻居 IPv6 地址,然后再根据 MAC 更新对应的 ddns 域名记录就好了
    vhus
        16
    vhus  
    OP
       2019-08-16 22:50:28 +08:00
    @cwek 其实我 routeros 用的不好,官方对于 ipv6 的说明也没法都看懂。
    Archeb
        17
    Archeb  
       2019-08-16 22:51:01 +08:00   ❤️ 1
    Linux 下 ip -6 neighbor show
    Windows 下 netsh interface ipv6 show neighbor
    vhus
        18
    vhus  
    OP
       2019-08-16 22:54:29 +08:00
    先对大家说抱歉啊,可能是我说的不清楚。
    不过相信 ipv6 问题你们以后也都会遇到。
    作为 IT 男家里的设备多,路由、ap、nas、电脑、盒子、开发板…… 一堆。
    vhus
        19
    vhus  
    OP
       2019-08-16 22:58:38 +08:00
    @Archeb 我试过,况且要记住每个设备的 mac 才行 ,不好用呀。
    Alozxy
        20
    Alozxy  
       2019-08-16 23:03:07 +08:00 via Android   ❤️ 1
    @vhus 那就用笨办法,先用路由器的 ddns 获取 /64 的前缀地址,然后再加上每个设备的 eui64 后缀地址,这样就跟以前差不多了,不过没有现成的轮子,可能要自己写脚本
    Archeb
        21
    Archeb  
       2019-08-16 23:04:13 +08:00
    @vhus 你可以自己设置 mac 和域名对应的表啊....
    你的设备又不会天天变 MAC
    我觉得这个办法比记 EUI64 后缀简单
    vhus
        22
    vhus  
    OP
       2019-08-16 23:05:24 +08:00
    @Archeb 也许只能基于路由器造个轮子才能解决,但愿只是时间问题。
    vhus
        23
    vhus  
    OP
       2019-08-16 23:09:25 +08:00
    @Archeb 是呢,我现在就是做了个 mac 表,记录都是什么设备。 二级域名没有好解决方案,凡是 ddns 都要从客户端发起更新 dns 请求,如果客户端本身不支持这问题很抓狂。
    Archeb
        24
    Archeb  
       2019-08-16 23:09:54 +08:00   ❤️ 1
    @vhus 不用客户端发起更新请求啊...
    你路由器也可以发起的
    huamiao
        25
    huamiao  
       2019-08-16 23:10:46 +08:00 via iPhone   ❤️ 1
    你们如何解决防火墙的问题?现在在每个设备都有了 IPv6 地址,如果启用路由器的防火墙,那么在 prefix 是动态的情况下,无法做防火墙规则。如果不用路由的防火墙,下面每个设备要启用防火墙不说,那些没法设置防火墙的设备怎么办呢?比如某些所谓的智能家居设备。
    Alozxy
        26
    Alozxy  
       2019-08-16 23:11:54 +08:00 via Android
    @huamiao ip6tables 是可以匹配后缀的,只不过官方文档上都没写 @@
    Archeb
        27
    Archeb  
       2019-08-16 23:12:12 +08:00
    @huamiao 为啥防火墙规则不能是动态 prefix...可以匹配后缀的
    https://blog.ptsang.net/match-ipv6-dynamic-addresses-in-iptables
    fairytale
        28
    fairytale  
       2019-08-16 23:15:06 +08:00 via iPhone
    登录路由器跑个脚本,arp 遍历一圈。
    huamiao
        29
    huamiao  
       2019-08-16 23:15:56 +08:00 via iPhone
    @Alozxy
    @Archeb
    感谢回复,普通路由是不是无解了?一直懒得折腾三方固件或者软路由之类的。
    vhus
        30
    vhus  
    OP
       2019-08-16 23:20:33 +08:00
    我目前裸奔呢,没设置 ipv6 的防火墙,如果设置防火墙只能回到 dhcp 分配内网 ip+防火墙。
    反正目前也没啥重要的设备,也没有存可以网红的小电影,银行卡里也没多少钱。
    你说的对啊,防火墙问题是很重要的。
    vhus
        31
    vhus  
    OP
       2019-08-16 23:27:46 +08:00
    普通路由有些获取 ipv6 都不支持,不搞搞 openwrt 什么的恐怕无解。
    vhus
        32
    vhus  
    OP
       2019-08-16 23:31:45 +08:00
    @huamiao 智能家居设备 几乎都是渣渣,我有个门铃摄像头,很轻松就可以黑掉。
    Tianao
        33
    Tianao  
       2019-08-16 23:38:50 +08:00 via iPhone   ❤️ 2
    @vhus 这个确实烦,比较优雅的解决方案应该是在 DDNS 设备(现在是路由器)上执行 6 to 6 NAT (静态本地到动态全局的一对一映射)或者使用支持固定后缀的 DHCPv6。可惜据我了解 RouterOS 目前都不支持,所以不跑脚本的话可能只能手动查看终端设备的地址了( ipv6/neighbors )。
    vhus
        34
    vhus  
    OP
       2019-08-16 23:42:03 +08:00
    家用路由器的背板带宽都很低,性能也很差,
    玩儿软路由,性能好的功耗又变高了,计算一下每年电费都够买个好路由器。
    routeros 是不错的软路由系统,用很多年了,千兆时代,我目前用的 mikrotik 2011 也感觉性能不行,300 兆带宽死活跑不满。
    vhus
        35
    vhus  
    OP
       2019-08-16 23:44:54 +08:00
    @Tianao 是的呀,是的呀,说到心坎坎上了。
    Unknowncheats
        36
    Unknowncheats  
       2019-08-16 23:53:22 +08:00 via Android   ❤️ 1
    我用的 dynv6 这个免费 ddns,支持双栈,很不错。不过官方脚本比较难用,v4 地址同步有问题。自己写个脚本舒舒服服,V4,v6 都同步。
    Alozxy
        37
    Alozxy  
       2019-08-16 23:57:48 +08:00 via Android
    @huamiao 如果不自带这个功能的话的确没办法,至少也要能进 shell 吧
    vhus
        38
    vhus  
    OP
       2019-08-17 00:06:18 +08:00
    @Archeb 兄弟,基于 ipv4 通过 ddns 找到家里路由器问题不大,routeros 官方硬件本身就带 ddns。
    内网设备的 ipv4 地址也可以通过锁定 mac 分配静态 ip 的方式很容易找到。
    想找到每个设备的 ipv6 地址就很不方便。
    Archeb
        39
    Archeb  
       2019-08-17 00:41:59 +08:00
    @vhus 那你还是没懂,你路由器上 NDP 可以发现局域网下所有 ipv6 设备的 ip 和 mac,只要你在路由器上写个脚本就可以自动获取并更新局域网内所有设备的 DDNS 记录
    feast
        40
    feast  
       2019-08-17 00:59:44 +08:00
    目前的确有这个问题,估计是一个比较大的开发需求
    yangjin3251
        41
    yangjin3251  
       2019-08-17 01:54:29 +08:00
    不用自动发现,手动设置不就可以了。
    digimoon
        42
    digimoon  
       2019-08-17 04:56:41 +08:00 via Android
    @vhus 专门搞个软路由全年开,10 多瓦功耗一年下来才 100 元左右,能买什么好路由?
    liyvhg
        43
    liyvhg  
       2019-08-17 07:41:25 +08:00 via Android
    得看核心需求是什么。换个思路,公网 openvpn@ipv6 连到路由器,路由器内网静态 DHCPv4,openvpn 向客户端(终端或路由)推送内网 ipv4 网段,就绕过了 ipv6 的问题,异地也可以用内网的 ipv4 去访问对应的设备。
    vhus
        44
    vhus  
    OP
       2019-08-17 09:16:02 +08:00   ❤️ 1
    话说,Ipv4 的解决方案已经很成熟了。
    不是得面对一下 ipv6 了吗,以前总是看书上说 ipv6 资源多,给每粒沙子都分配个公网 ip。
    现在 ipv6 来了 得玩儿一下沙子,以免变傻子。O(∩_∩)O~

    @liyvhg
    vhus
        45
    vhus  
    OP
       2019-08-17 09:32:51 +08:00
    玩儿软路由必经选硬件之路,貌似现在的网络开发板或多数路由板也都是标称千兆端口实际百兆性能。
    背板带宽高的功耗也高多了,要么就是单网口,反正各种不如意。
    我认为理想的路由功耗不应超过 30 瓦,每年约 150 元电费以内。 @digimoon
    vhus
        46
    vhus  
    OP
       2019-08-17 09:41:59 +08:00
    @Archeb 用 prefix 方式获取 ipv6 地址 在 NDP 内看不到,也许是我没搞清楚 routeros。
    vhus
        47
    vhus  
    OP
       2019-08-17 09:45:13 +08:00
    嗯,准备尝试一下 动态匹配 EUI-64 后缀的方式,分配 ipv6.
    @yangjin3251
    iwtbauh
        48
    iwtbauh  
       2019-08-17 10:50:39 +08:00 via Android
    要暴露到公网的设备关闭 slaac,使用 dhcpv6。dhcpv6 服务器配置 hostid 和 mac 绑定,这样以后设备分配的 ipv6 的 hostid 部分会固定。

    建立一条防火墙规则,准入,目的地址为 ::hostid/::ff:ff:ff:ff:ff:ff:ff:ff

    这样你的前戳再怎么变也无所谓。
    crazykylin
        49
    crazykylin  
       2019-08-17 10:58:23 +08:00 via Android   ❤️ 1
    @vhus 看来你压根没摸过软路由😂,x86 软路由了解下,功耗。。。。很多比硬路由功耗都低 n3700 3710 了解下
    vhus
        50
    vhus  
    OP
       2019-08-17 13:05:33 +08:00
    你如何这么笃定? X86、mips、 powerpc、arm 各种板子我大概有二十几块吧。
    monowall、ddwrt、openwrt 、routeros 也是一路折腾过来的……
    感觉自己有些老了,快 50 岁的人了,学习起来是有些费劲儿了。
    已经离开 it 行业有些年了,玩儿这些只是业余爱好了。
    咱们尽量别聊些没营养的话题。
    @crazykylin
    crazykylin
        51
    crazykylin  
       2019-08-17 13:58:20 +08:00 via Android   ❤️ 2
    @vhus 您说这些都不在重点,我玩的不比你少也不在乎您年龄,针对你这些说法,我发表三点,1.您说的多数标称千兆实际百兆,我见识少,这种板子我都没见过,量产的板子搞这种低级的错误等于砸自己的脚 。2,单网口一样做路由。3,家用软路由,除非跑 esxi 或者 pve 或者顺便做 nas,否则极少有人用 30 瓦以上的板子。
    vhus
        52
    vhus  
    OP
       2019-08-17 14:56:18 +08:00
    杠精,您换个地方评论吧。
    @crazykylin
    dahounet
        53
    dahounet  
       2019-08-17 15:05:00 +08:00 via Android
    确实啊,现在有了 ipv6,但是路由器上面看不见网络里面每台设备的 ipv6 地址
    vhus
        54
    vhus  
    OP
       2019-08-17 15:10:13 +08:00
    路由器 ipv6 的应用开发还没跟上,网上的这类帖子也不多。
    @dahounet
    crazykylin
        55
    crazykylin  
       2019-08-17 15:46:50 +08:00 via Android
    crazykylin
        56
    crazykylin  
       2019-08-17 15:47:37 +08:00 via Android   ❤️ 1
    @vhus 再见,这年龄有代沟
    Archeb
        57
    Archeb  
       2019-08-17 16:46:10 +08:00   ❤️ 1
    https://www.v2ex.com/t/592727
    造了个轮子,虽然可能楼主用不上( openwrt 的)
    vhus
        58
    vhus  
    OP
       2019-08-17 17:15:14 +08:00
    非常好啊,一定可以用得上,至少会对大家都有些启发。十分感谢。
    @Archeb
    baijd
        59
    baijd  
       2019-08-17 23:59:14 +08:00 via Android
    @vhus 我是 mikrotik RB750Gr3 也在发愁这问题 自带的 DDNS cloud 不支持 v6
    YamatoRyou
        60
    YamatoRyou  
       2019-08-18 03:21:20 +08:00
    基于 OPENWRT 的路由器可以在内部运行一个脚本, 脚本收集到各个局域网机器的 v6 地址后通过邮件 (亲测使用 QQ 邮箱收件较快, 也没遇到过因为发件太频繁而被限制的情况) 发送. 这样即使没有 DDNS 也能随时通过 IP 地址在外面访问家里的机器.

    供参考.
    wm5d8b
        61
    wm5d8b  
       2019-08-18 09:04:17 +08:00 via Android
    设备只有有 curl 或者 wget 就能实现 ddns 吧
    vhus
        62
    vhus  
    OP
       2019-08-18 10:10:59 +08:00 via Android
    @YamatoRyou 是个可行方案。
    vhus
        63
    vhus  
    OP
       2019-08-18 10:13:26 +08:00 via Android
    @wm5d8b curl 是的。
    hunanlonghao
        64
    hunanlonghao  
       2019-08-18 16:22:29 +08:00 via Android
    ipv6 这点很不友好,就是搞定了每个终端的 ipv6 ddns,那么在没有 ipv6 的内网比如公司电脑,又怎么访问这个 ipv6 呢?
    idclight
        65
    idclight  
       2019-08-19 13:06:59 +08:00
    写个脚本定时推送到企业微信不就好了?
    ritaswc
        66
    ritaswc  
       2019-08-20 15:29:27 +08:00   ❤️ 1
    分享一个 ipv6 的获取本机公网 ipv6 地址接口
    https://v6.yinghualuo.cn/bejson

    ipv4
    https://v4.yinghualuo.cn/bejson
    ritaswc
        67
    ritaswc  
       2019-08-20 15:30:14 +08:00
    上面的接口是自己架设的,控制一点访问就好了,每 10 分钟请求一次什么的,别一分钟请求多次就行
    vhus
        68
    vhus  
    OP
       2019-08-30 20:18:15 +08:00
    如果设备换成冰箱和洗衣机如何写脚本呢^_^@idclight
    vhus
        69
    vhus  
    OP
       2019-08-30 20:19:52 +08:00
    @ritaswc 不能访问啊,怎么用?
    ritaswc
        70
    ritaswc  
       2019-08-31 22:27:34 +08:00
    @vhus 能用的,我自己搭建的,如果不能访问,检查一下你的网络是不是没有 ipv6 互联网

    你用手机流量打开这个网址是可以打开的,我北京联通宽带 ipv6 可以访问到
    https://s2.ax1x.com/2019/08/31/mzhb7D.png
    ihipop
        71
    ihipop  
       2019-09-04 20:24:58 +08:00 via Android
    @Archeb 感谢!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1043 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:16 · PVG 02:16 · LAX 10:16 · JFK 13:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.