『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 12516|回复: 9

[经验分享] 利用duckdns和caddy实现docker +ha外网https访问

[复制链接]

9

主题

69

帖子

460

积分

论坛分享达人

积分
460
金钱
391
HASS币
0
发表于 2018-10-21 03:31:20 | 显示全部楼层 |阅读模式
本帖最后由 avrilclc 于 2018-10-21 03:49 编辑

前提:有公网ip,路由端口映射

今天研究怎么样实现外网访问,发现用add-on里面的duckdns按照推荐配置可以实现ha的外网+https;不用买域名即可申请Let's Encrypt的免费SSL证书。但是Docker的UI界面即常用的:9000端口是没办法用https访问的。走了很多弯路,终于配置成功。
1,先安装 DuckDNS,然后去duckdns.org申请一个免费的ddns,会得到一个token

2,DuckDNS配置文件
{
  "lets_encrypt": {
    "accept_terms": true,
    "certfile": "fullchain.pem",
    "keyfile": "privkey.pem"
  },
  "token": "你的token",
  "domains": [
    "你的域名.duckdns.org"
  ],
  "seconds": 300
}

启动DuckDNS

3,安装Caddy,hassio里添加repository地址后直接安装:https://github.com/korylprince/hassio-caddy
在/share/目录下新建目录 caddy,在/share/caddy/目录下新建文件 Caddyfile(无后缀),Caddyfile的内容如下:

https://你的域名.duckdns.org:9999 {      
    tls /ssl/fullchain.pem /ssl/privkey.pem {                            
        alpn http/1.1                                                    
    }                                                                    
    proxy / 192.168.0.2:9000 {                                            
        transparent                                                      
        websocket                                                        
    }                                                                    
    log stdout                                                         
    errors stderr                                                      
}

https:// 你的域名 .duckdns.org:8888 {      
    tls /ssl/fullchain.pem /ssl/privkey.pem {                            
        alpn http/1.1                                                    
    }                                                                    
    proxy / 192.168.0.2:8123 {                                            
        transparent                                                      
        websocket                                                        
    }                                                                    
    log stdout                                                         
    errors stderr                                                      
}

解释一下,https的端口跟内网的端口不能一样,一样的话caddy会报错,我这里用了9999和8888,你们自己改,只要没用的都行,当然80端口肯定运营商x了

最后一步,路由器里面映射(或者叫转发)端口,上面四个端口(8888,9999,8123,9000)全部都要!比如9999就转发9999到你的ha所在ip上(这是关键)。然后现在就能愉快的https+外网了,以此类推,docker里面的服务,也可以这样https了

评分

参与人数 2金钱 +32 收起 理由
+ 16 我来瀚思就为看你!
neroxps + 16 厉害了word楼主!

查看全部评分

回复

使用道具 举报

40

主题

3056

帖子

1万

积分

超级版主

Nero

Rank: 8Rank: 8

积分
11149
金钱
8042
HASS币
182
发表于 2018-10-21 06:29:36 | 显示全部楼层
不错,谢谢分享。
Nero
回复

使用道具 举报

9

主题

69

帖子

460

积分

论坛分享达人

积分
460
金钱
391
HASS币
0
 楼主| 发表于 2018-10-21 15:16:00 | 显示全部楼层
哈哈 第一次分享就高亮,thanks
回复

使用道具 举报

34

主题

335

帖子

1848

积分

金牌会员

Rank: 6Rank: 6

积分
1848
金钱
1513
HASS币
0
发表于 2018-10-25 12:08:04 | 显示全部楼层
感谢分享,我用frp实现的
回复

使用道具 举报

6

主题

104

帖子

487

积分

中级会员

Rank: 3Rank: 3

积分
487
金钱
383
HASS币
0
发表于 2018-10-25 13:14:18 | 显示全部楼层
感谢分享!
回复

使用道具 举报

9

主题

69

帖子

460

积分

论坛分享达人

积分
460
金钱
391
HASS币
0
 楼主| 发表于 2018-10-25 22:46:35 | 显示全部楼层
aaa 发表于 2018-10-25 12:08
感谢分享,我用frp实现的

我这边电信打个电话,可以改公网
回复

使用道具 举报

20

主题

700

帖子

3106

积分

论坛元老

Rank: 8Rank: 8

积分
3106
金钱
2406
HASS币
0
发表于 2018-12-13 18:09:15 | 显示全部楼层
duckdns老是开不起来
# INFO: Using main config file /data/workdir/configERROR: Problem connecting to server (get for https://acme-v02.api.letsencrypt.org/directory; curl returned with 6)
回复

使用道具 举报

13

主题

333

帖子

1418

积分

金牌会员

Rank: 6Rank: 6

积分
1418
金钱
1085
HASS币
0
发表于 2019-1-28 20:47:10 | 显示全部楼层
楼主,是不是还有哪里需要设置的,我这边可以访问网址,输入密码后但总是显示
Unable to connect to Home Assistant.
回复

使用道具 举报

3

主题

150

帖子

892

积分

高级会员

Rank: 4

积分
892
金钱
742
HASS币
0
发表于 2019-3-4 14:54:54 | 显示全部楼层
aaa 发表于 2018-10-25 12:08
感谢分享,我用frp实现的

请问frp怎么配置Caddyfile文件?我也是frp,但是外网文章都打不开网页
回复

使用道具 举报

1

主题

18

帖子

70

积分

注册会员

Rank: 2

积分
70
金钱
52
HASS币
0
发表于 2022-6-5 13:26:40 | 显示全部楼层
我設定完後
LOG看起來也沒問題
可是外網就無法連線
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-28 18:54 , Processed in 0.113443 second(s), 33 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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