以下是主要背景信息:
- 我有一个华硕 RT-N56U 路由器。
- 路由器上连接着一个 USB 硬盘,里面存有大量音乐。
- 通过 uPnP/DLNA,我的 LAN 上的设备可以访问音乐;效果很好。
- 我的 WAN 连接配置为下行速度为 100 Mbps/上行速度为 40 Mbps。
- 我想利用一些上行带宽来随时随地播放我的音乐。
- 我可以但不想让服务器全天候运行在我的网络上来实现这一点,因为路由器已经能够在本地共享内容。
因此,我希望找到一种方法,让路由器已经能够通过 LAN 分发的内容也可以通过 Internet 访问。我四处寻找,但没有找到任何不涉及在服务器上托管内容的预构建解决方案在后面路由器,我想避免这种情况。
路由器确实内置了通过 FTP 提供内容的支持,但我试过后发现它确实无法与媒体播放器很好地播放。它虽然能用,但切换曲目时的寻道时间太长了,有些曲目根本就无法播放。
我曾经有过一个想法,即通过在路由器上安装 Apache 实例来通过 HTTP 提供内容(和/或编辑提供配置门户的内置实例的配置,如果可能的话?)。路由器似乎运行的是精简版 Linux(我可以通过 telnet/ssh 进入它,它有一个文件系统、包管理器和类似的东西)。
以前有人设置过类似的东西吗?如果有,您是如何做到的?如果没有,您建议我尝试什么?
答案1
好的,我想我明白了。
首先,我按照此处的说明在路由器上安装了 Lighttpd、php5 和 mysql: http://wpte.kicks-ass.net/forum/showthread.php?tid=1
然后我四处寻找可以与路由器配合使用的基于 PHP 的媒体服务器,并找到了吉娜嗯,实际上,我找到的第一个是精简,但是它需要 php-iconv,而我无法将其安装到路由器上。
安装 Zina 非常简单,我所要做的就是设置 DB 选项并修复默认 URL 路径/文档根目录,以便图像/样式表/类似内容能够正确加载。
但是,我注意到 Zina 服务器无法从外部主机访问,因此我iptables
在路由器上添加了以下规则:
iptables -I INPUT 1 -p tcp --dport 33333 -j ACCEPT
...33333 是我配置 Lighttpd 监听的端口。另外,完全禁用路由器的防火墙也会导致媒体服务器可从外部 IP 访问,但我不推荐这种方法。
目前剩下的问题仅剩以下几点:
- Zina 似乎允许未经身份验证访问音频文件。
- 我需要确保我的自定义
iptables
规则将在路由器重启时自动应用。
第一个问题有点大。也许我可以通过启用mod_auth
Lighttpd 来解决这个问题。
编辑:mod_auth 起了作用。
修改 2:我还修改了部分 zina 源代码,将<user>:<password>@
其写入生成的播放列表 URL。这样媒体播放器就不会在每次播放新歌曲时提示输入用户名/密码,因为这些播放器不知道如何记住帐户详细信息。