我一直在尝试设置 DLNA 服务,以便将我的媒体从 PC 共享到笔记本电脑,有时还共享到手机和平板电脑。经过一番折腾,我发现 mini-dlna 效果很好,但问题是,我网络上的每个人都可以看到我的共享,而我不想这样。有人有办法保护它吗?我想也许可以使用 iptables,但我对此没有任何经验,而且我不想为我在 PC 上运行的所有内容(如 ssh 和 Web 服务器等)设置一大堆防火墙例外,我只想限制 DLNA 访问。我对我的设备使用 DHCP 预留。
或者 DLNA 是错误的做法?有更好的解决方案吗?我不关心 Windows 客户端,只关心 Linux 和 Android。我想传输音频和视频。
另外,如果 DLNA 是最好的方式,有人可以推荐 Linux 客户端吗?我可以让 Android 客户端顺利播放流媒体,这只是一个安全问题,但我在 Linux 中找不到可用的客户端,VLC 不起作用,它可以看到我的服务器,但单击它、双击它、添加到播放列表都不起作用。
答案1
对于问题的第一部分,你可能需要看看服务。在付费版本中,它允许您将来源设置为“受限”(免费版本有 14 天的试用期)。更多详细信息请参阅我的回答minidlna 和三星电视文件格式不支持。
第二部分,请看UPNP/DLNA(客户端)播放器推荐吗?
答案2
简单的 iptables 规则
#by default, drop incoming requests
:INPUT DROP [0:0]
#by default, drop forwards
:FORWARD DROP [0:0]
#by default, accept any outgoing traffic
:OUTPUT ACCEPT [0:0]
#Allow traffic to port 8200 (DLNA) to specific IPs
-A INPUT -p tcp -i <interface> -s <allowed device ip> --dport 8200 -j ACCEPT
-A INPUT -p tcp -i <interface> -s <allowed device ip> --dport 8200 -j ACCEPT
-A INPUT -p tcp -i <interface> -s <allowed device ip> --dport 8200 -j ACCEPT
#Deny traffic to 8200 from all others
-A INPUT -p tcp -i <interface> --dport 8200 -j DROP
#Go back to permitting all other traffic
-A INPUT -i <interface> -j ACCEPT
-A FORWARD -i <interface> -j ACCEPT
您的问题的第二部分听起来像是权限问题。