NAS 的 Docker 上部署了多个服务,如何通过 DDNS 将 IPv6 解析到子域名中?

55 天前
 BOGU
条件:
1 、外网可以访问到内网的 IPv6 地址,防火墙已开启;
2 、每个 Docker 的容器可以获取到 ipv6 公网地址;



问题:
如何自动获取每一个容器的 IPv6 公网地址,并将其正确解析到对应的子域名中?


示例:
容器名:emby ,240e::1 ,emby.XXX.XXX > 240e::1
容器名:immich ,240e::2 ,immich.XXX.XXX > 240e::2
1906 次点击
所在节点    NAS
26 条回复
vicv
54 天前
你的网络连接方案和我的是一样的。我的做法是另外起一个容器运行 ddns ,这个 ddns 容器直接使用 emby 容器的网络命名空间就可以了,这样 ddns 容中的网络就是 emby 容器中的网络,其实这就是 K8s 里面的 Sidecar 容器模式。在 docker-compose 中可通过 network_mode 配置 ddns 容器连接到 emby 容器。贴上我的 docker-compose 文件作为参考:
services:
emby:
container_name: emby
image: lovechen/embyserver:latest
cap_add:
- NET_ADMIN
- SYS_ADMIN
- SYS_MODULE
networks:
dmacvlan:
ipv4_address: 192.168.2.2
priority: 1000
dbridge:
ipv4_address: 172.16.2.2
priority: 100
volumes:
- ./emby/config:/config
- ./acme/ssl:/ssl
- /volume/media:/Media
devices:
- /dev/dri:/dev/dri
environment:
- TZ=Asia/Shanghai
- UID=0
- GID=0
- GIDLIST=0
- NVIDIA_VISIBLE_DEVICES=all
restart: always

emby-ddns:
container_name: emby-ddns
image: jeessy/ddns-go:latest
network_mode: "service:emby"
volumes:
- ./emby/.ddns_go_config.yaml:/root/.ddns_go_config.yaml
environment:
- TZ=Asia/Shanghai
depends_on:
emby:
condition: service_started
restart: always

networks:
dmacvlan:
name: dmacvlan
enable_ipv6: true
driver: macvlan
driver_opts:
parent: ovs_eth0
ipam:
config:
- subnet: 192.168.2.0/24
gateway: 192.168.2.1
- subnet: fc00:21:2::/64
gateway: fc00:21:2::1

dbridge:
name: dbridge
ipam:
driver: default
config:
- subnet: 172.16.2.0/24
gateway: 172.16.2.1
tsvico
54 天前
建议最外边是 NAS 的 ipv6 ,指向 nginx

然后泛域名解析 *.XXX.XXX 到 nginx

在 nginx 中添加 emby.XXX.XXX 指向 emby 的 docker 内部地址,例如 http://emby:9063

添加 immich.XXX.XXX 指向 immich 的内部地址 http://immich:3000
tsvico
54 天前
@tsvico #22 全 docker 环境可以将 nginx 换成 traefik
Biiddd
54 天前
直接对外一个 v6, 全部用反代
epiloguess
54 天前
traefik 是正解,根据容器标签自动代理
TossPig
53 天前
我的方案,一台叫 tsnet 的 debian 虚拟机,上部署 caddy ,反代内网的所有 web 服务
tsnet 上跑 ddns-go,读取网卡的第一个 ipv6 地址

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1087827

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX