找回密码
 立即注册

微信扫码登录

搜索
查看: 4518|回复: 8

[基础教程] 一个用IPV6与DUCKDNS实现公网访问的笨方法

[复制链接]

2

主题

10

回帖

70

积分

注册会员

积分
70
金钱
58
HASS币
0
发表于 2022-5-3 08:14:32 | 显示全部楼层 |阅读模式
本帖最后由 chuanlbs 于 2022-5-3 08:17 编辑

使用内置的DUCKDNS Add-ons可以轻松的实现ipv4ddns,但是ipv6官方是不支持的
未命名图片.png

未命名图片1.png
虽然DUCKDNS支持使用URL配置IPV6地址,但是直接配置为URL就会出现以下问题
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] done.
[services.d] starting services
[services.d] done.
[cmd] /run.sh exited 7
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] waiting for services.
[s6-finish] sending all processes the TERM signal.
原因可能是duckdns所在的容器获取不到公网IPv6?(这个我概念不太清楚,菜鸟一个~)在GitHub上找到一个取巧的方法,用脚本定期刷新本机的ipv6地址到一个url里,然后在把这个url作为addon的配置就行啦
https://github.com/home-assistant/addons/issues/1715#issuecomment-859165416
在terminal里,把下面代码段的代码存在/etc/periodic/15min/update-ipv6 文件里,设置下权限chmod +x update-ipv6

#!/usr/bin/env bashio
bashio::network.ipv6_address eth0 | grep ^24 | sed 'sx/64xx' > /config/www/ipv6.txt
sed -i -e "2d" /config/www/ipv6.txt

重启HA,然后像下图这样配置DUCKDNS就行啦,配置的位置在HACS--加载项--duckdns--configuration里再重启add-ons就好啦
未命名图片2.png



评分

参与人数 1金钱 +10 收起 理由
relliky + 10 纳尼,还有这种操作?

查看全部评分

回复

使用道具 举报

9

主题

382

回帖

4415

积分

论坛元老

积分
4415
金钱
4024
HASS币
10
发表于 2022-5-3 14:46:48 | 显示全部楼层
一条docker ru更方便,楼主方法精神大赞!
回复

使用道具 举报

wfx 手机认证

16

主题

227

回帖

3152

积分

论坛元老

积分
3152
金钱
2909
HASS币
0
发表于 2022-7-31 09:24:10 | 显示全部楼层
duckdns官网注册账号之后,不是有5个自定义的免费域名吗?这个域名需要填写吗?
回复

使用道具 举报

1

主题

41

回帖

122

积分

禁止访问

积分
122
金钱
80
HASS币
0
发表于 2022-11-6 17:25:20 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

0

主题

3

回帖

20

积分

新手上路

积分
20
金钱
17
HASS币
0
发表于 2024-9-21 02:23:56 | 显示全部楼层
学习
学习
回复

使用道具 举报

4

主题

83

回帖

349

积分

中级会员

积分
349
金钱
262
HASS币
0
发表于 2025-9-23 16:38:56 | 显示全部楼层
HAOS里配置:
# 创建目录(如果不存在)
mkdir -p /config/custom_scripts
# 创建文件
nano /config/custom_scripts/update-ipv6

#!/usr/bin/env bashio
bashio::network.ipv6_address end0 | grep ^24 | sed 'sx/64xx' > /config/www/ipv6.txt
sed -i -e "1d" /config/www/ipv6.txt

chmod +x  /config/custom_scripts/update-ipv6

创建完成后,可以验证一下:

bash
# 检查文件内容
cat /config/custom_scripts/update-ipv6

# 检查权限
ls -la /config/custom_scripts/update-ipv6

# 测试脚本执行
/config/custom_scripts/update-ipv6
注意事项
确保 /config/www/ 目录存在,如果不存在需要先创建:

bash
mkdir -p /config/www
脚本中的 end0 可能需要根据您的实际网络接口名称进行调整


推荐使用(Terminal & SSH插件),这是最直接和可靠的方式。

configuration.yaml配置{


# Shell Command 定义
shell_command:
  update_ipv6: /config/custom_scripts/update-ipv6

# 自动化 - 每15分钟执行
automation:
  - alias: "Update IPv6 every 15 minutes"
    trigger:
      - platform: time_pattern
        minutes: "/15"
    action:
      - service: shell_command.update_ipv6
      - service: persistent_notification.create
        data:
          title: "IPv6 Updated"
          message: "IPv6 address has been updated at {{ now().strftime('%H:%M') }}"

# 启动时执行一次
  - alias: "Update IPv6 on startup"
    trigger:
      - platform: homeassistant
        event: start
    action:
      - service: shell_command.update_ipv6
      
sensor:
  - platform: file
    name: IPv6 Address
    file_path: /config/www/ipv6.txt
    scan_interval: 300  # 5分钟检查一次


}
回复

使用道具 举报

4

主题

83

回帖

349

积分

中级会员

积分
349
金钱
262
HASS币
0
发表于 2025-9-24 18:58:00 | 显示全部楼层
楼主在吗,我获取到ipv6和系统里的不一样,是不是刷新频率太大了
回复

使用道具 举报

4

主题

83

回帖

349

积分

中级会员

积分
349
金钱
262
HASS币
0
发表于 2025-9-24 19:00:42 | 显示全部楼层
本帖最后由 ific1003 于 2025-9-24 19:05 编辑

image.png 第二条ipv6和系统不一样,现在用第三条了,第一条ipv6也用不了
image.png
回复

使用道具 举报

4

主题

83

回帖

349

积分

中级会员

积分
349
金钱
262
HASS币
0
发表于 2025-9-24 21:07:53 | 显示全部楼层
不带接口居然可以输出正确的ipv6
image.png

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-10-12 00:04 , Processed in 0.056537 second(s), 10 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表