飞牛fnOS下DLNA服务的防火墙设置
前言
之前我在debian基础上手搓minidlna服务,只需要在ufw中显式添加一条ufw allow proto tcp from 192.168.1.0/24 to any port 8200
后,局域网内的设备(比如windows电脑文件管理器、安卓手机上的vlc软件中)都会自动出现dlna服务。
但是在fnos中,如果防火墙设置如下:
- 不勾选【局域网:默认允许访问】
- 不匹配入站规时禁止访问
- 然后新增一个DLNA默认端口8200的放行规则
理论上应该和debian + ufw + dlna这套手搓方案一样,局域网的机器就可以收到dlna服务了。
但实际上局域网内设备无法收到dlna的服务,或者严谨一点说,没有收到dlna的广播。
所以很长一段时间我都在pve上弄了一个单独的vm跑minidlna,而不是把dlna服务整合到fnos上。
不过,昨天把这个问题请教了ai以后,终于知道原因了。
问题原因
简单来讲,dlna除了用到8200/tcp,还需要用到1900/udp,所以只放行8200/tcp是不行的。
以下是ai提供的回答(其中48200
端口是我自定义的dlna端口号)
到这里,又会出现第二个问题:
那为什么用debian + ufw的时候,只需要放行8200/tcp就可以了,在fnos下却还需要显示声明1900/udp呢?
答案是ufw默认会允许局域网流量!
以下是ai提供的表格
所以,最后的解决方案,就是在fnos的防火墙入站规则中,添加一条1900/udp即可。
🎉