飞牛 NAS 上 Damselfly 7100 端口不通?

容器 docker ps 显示 running,浏览器打开 飞牛 NAS_IP:7100 却一直转圈、连接被拒,或者打过去直接 502——Damselfly 在飞牛 NAS 上按 Docker Compose 拉起来后,最常见的卡点就是这一处。7100 是 Damselfly Web 默认监听端口,容器里是正常的,问题几乎都出在端口映射和宿主机这一侧。

先确认容器和端口状态。

docker ps
docker logs <container_name>
ss -tlnp | grep 7100   # 或 netstat -tlnp | grep 7100

第一条看 PORTS 列,没有出现 0.0.0.0:7100->7100/tcp 或 :::7100->7100/tcp,说明 Compose 文件里 ports 字段没写成宿主机+容器双端口的形式,比如漏写了宿主机侧的 7100:,Damselfly 容器内部监听 7100 但没暴露给宿主机,外面自然访问不到。常见写法是 ports: - "7100:7100",前面那个 7100 是宿主机端口,后面是容器端口。第二条翻启动日志,如果容器反复重启或者没有出现 Kestrel/ASP.NET 监听 7100 的输出,多半是 yml 里漏字段或者缩进出错,Compose 解析时直接拉不到镜像或起不来,但状态可能仍短暂显示为 running。第三条看宿主机 7100 是否被别的服务占着——飞牛 NAS 自身一些 Web 管理页可能就在相近端口,被占用时端口映射拿不到 7100,页面会直接连接被拒而不是 502。

照片目录挂载和权限。

Damselfly 跑起来后扫描不到图,或者日志里出现权限拒绝、ExifTool 相关 warning,先看 docker-compose.yml 里 volumes 怎么写的。飞牛 NAS 上照片目录常在 /vol1/1000/photos 或 /vol1/.../Pictures 这类路径,挂到容器内一般是 /pictures,这一段必须用宿主机的绝对路径,写成相对路径 ./photos:/pictures 在 NAS 上经常落到 Compose 文件所在目录,根本不是照片实际所在。UID/GID 不对齐也会让容器读不到文件——容器内进程以某个用户身份运行,宿主目录的所有者如果是普通 NAS 用户(比如 uid 1000、gid 1000),权限不一致时 Damselfly 扫到目录但进不去,UI 上照片列表就一直是空的。常见做法是在 Compose 里加 user: "1000:1000" 或者把宿主目录 chown 给容器运行用户,对齐之后用下面的命令重启容器,让它以新用户身份重新建索引:

docker compose up -d

不想被扫描的子目录里放一个空文件 .nomedia,Damselfly 会跳过整棵子树,这个机制是官方明确支持的。

局域网其他设备访问。

容器起好后,先在 NAS 本机确认 7100 端口能拿到首页:

curl localhost:7100

拿到首页之后,同网段的其他设备用 NAS 的内网 IP 加 7100 端口就可以直接打开。如果同网段都打不开,先回去查宿主机端口监听是不是真的绑在 0.0.0.0 而不是 127.0.0.1——Compose 默认 ports: "7100:7100" 写法会绑 0.0.0.0,问题不大,但要注意飞牛 NAS 自带的某些反代或防火墙开关,具体路径以当前 fnOS 版本界面为准,参考资料没有覆盖到这一层,需要读者自己核对。要从外网或固定地址访问,比较稳妥的路子是走 fnOS 自带的 DDNS 或者在 Docker 里再起一个反代,不要直接把 7100 暴露在公网。

这套配置本身门槛不高——一个 docker-compose.yml、一个照片目录、一个端口,Damselfly 就能在飞牛 NAS 上跑起来。真正卡人的就是端口映射和目录权限这两处,把宿主路径写对、UID 对齐、7100 留出来,后面就只是改 yml、重启容器的事。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容