KPN Interactieve TV 无需 Experia Box

Bert Hubert 工具

摘要

技术指南:在不使用 Experia Box 的情况下使用 KPN Interactieve TV,包含 VLAN、IGMP 代理和 DHCP 设置的说明。

我是 KPN 互联网的一位非常满意的客户。出于多种原因,我不使用 Experia Box,但我仍然希望通过 KPN Interactieve TV 机顶盒(“5202”)观看电视。以前这“自动就能正常工作”,但现在需要做一些设置。 2026年6月更新(五年后!):这些指令再次有效,igmpproxy.conf 文件有了一次更新。我还添加了一条提示,说明如何将接收器恢复为出厂设置——我最近就需要这样做。
查看原文
查看缓存全文

缓存时间: 2026/06/08 03:12

# KPN 互动电视无需 Experia Box - Bert Hubert 的文章 来源:https://berthub.eu/articles/posts/kpn-interactieve-tv-zelf-doen/ 我是 KPN 互联网的忠实客户。出于各种原因,我不使用 Experia Box,但我希望可以用 KPN 互动电视的机顶盒(“5202”)看电视。以前这是“自动就能用的”,但如今需要一些工作了。 > 2026年6月更新(5年后!):这些说明再次有效,igmpproxy.conf 文件已经更新。我还增加了一个将接收器恢复出厂设置的小贴士,这是我最近需要做的。 只有在你不打算使用 Experia Box 的情况下,才需要本页的说明。绝大多数情况下,使用 KPN 设备并遵循其说明会更简单。 以下说明仅在你决定不使用 Experia Box 时才需要,而且你真的需要有一个理由。要使以下内容正常工作,你还需要一个支持 VLAN 的受管交换机。但如果你决定不用 Experia Box,那么你很可能已经有这种交换机了。 > 注意:网上有些页面仍然提到“桥接”,但这已经不再有效。此外,还有各种页面把事情搞得太复杂,或者只描述特定路由器的解决方案(https://venxir.tweakblogs.net/blog/12507/kpn)。 在本页中,我试图解释需要做什么,并记录一个脚本,让你能让任何 Linux 计算机(甚至是最小的 Pi Zero)来完成这项工作。 在你看这篇文章之前,你需要先让正常的互联网正常工作。KPN 在这里有很好的解释(https://www.kpn.com/service/internet/wifi-en-modems/eigen-modem-instellen-en-gebruiken.htm)。这个页面(https://netwerkje.com/eigen-router)也可能有帮助。 ## KPN 互动电视机顶盒 黑色盒子,即 STB。这个盒子需要三样东西: - 多播的 KPN 电视服务(KPN VLAN 4) - 正常的互联网(如通过 PPPoE 进入 KPN VLAN 6 的那样) - 用于多播的 IGMP 代理 为了实现这一点,你需要让盒子能够访问正常的互联网。但特定的子网需要路由到 VLAN 4。此外,STB 还需要加入多播组,这需要一些帮助。下面逐步说明。 如果机顶盒在按照本页操作后仍然出现 DBL-307 错误,请尝试将其重置为出厂设置(https://www.kpn.com/service/televisie/problemen/reset#frisse-start)(页面最底部,他们提到“拔掉电视接收器的电源”)。这对我有帮助。 ## KPN VLAN 4 这是一个有点神奇的 VLAN。你可以向它发送 DHCP 请求,但如果没有特殊技巧,就不会得到任何回应。如果你发送一个带有 option60(供应商类别标识符)值为 `IPTV_RG` 的 DHCP 请求,就会得到回复。而且如果你还请求:`subnet-mask, broadcast-address, routers, rfc3442-classless-static-routes`,那么该服务器还会向你返回特殊的 KPN 电视子网信息。 在 VLAN4 上,KPN 会为你分配一个私有空间地址。你需要为 STB 做 NAT,否则无法正常工作。 ## 正常互联网 与某些地方的说法相反,STB 不需要特殊的 DHCP 处理。你可以把它连接到任何 DHCP 服务器上,只要它能获得 DNS 和默认路由即可。 ## IGMP 代理 / 多播 KPN STB 通过多播接收普通电视信号。这是一个复杂的系统,可以将数据包同时发送到多个目的地。而且它真的有效——如果你有两个 KPN STB,并且它们都调到了同一个频道,那么实际上只会收到一个流。非常棒的技术。 为了接收某个频道,STB 通过互联网组管理协议(IGMP)“订阅”相应的流。这个请求需要从本地局域网转发出去,因此必须运行一个 IGMP 代理来完成这件事。 ## 多播放在单独的网络里? 多播是一项脆弱的技术。例如,如果交换机不理解发生了什么,它就会将多播流量发送到所有端口,可能还包括你的 Wi-Fi,然后 Wi-Fi 瞬间就会被 8Mbit/s 的电视流量塞满(每个 STB 都会这样!)。 既然你已经在用 VLAN,那么将 KPN 机顶盒放在它们自己的 VLAN 里是个好主意——这个 VLAN 永远不会连接到你的 Wi-Fi。 下面的脚本中,我选择了这种方案。如果你想把所有东西放在一个网络里,那么你需要在你的互联网路由器上完成下面的操作,这可能并不容易。 ## 电视小路由器 在我的情况下,我已经有一个功能完善的互联网路由器,它做的事情比 KPN 单独提供的要多。电视很重要,但我不想让已经很复杂的路由器变得更复杂。 幸运的是,这也不是必需的,你可以让 VLAN 4 完全独立运行。 > 注意,KPN 机顶盒不会理解 VLAN,它希望所有东西都是没有标签的。 我们将要构建的这个小盒子叫做“Linux”。 在下面的两个脚本中,我假设以下情况: - Linux 小盒子在 eth0 上看到无标签的“正常互联网”(即没有 PPPoE,这部分你的互联网路由器应该已经处理了) - KPN 的 VLAN 4 以带标签的方式进入 eth0 - 你家里的 VLAN 44(机顶盒所在之处)以带标签的方式进入 eth0 安装一个较新的 Debian / Raspberry Pi OS,并连接到你的普通 KPN 互联网。 然后你可以手动执行下面的描述,或者**如果你用的是 Debian Buster 或 Raspberry Pi OS Buster**(更新的版本也可能可以),解压这个 tar 文件(https://berthub.eu/articles/kpn-tv-config.tar),操作如下: `` cd wget https://berthub.eu/articles/kpn-tv-config.tar cd / sudo apt-get install udhcpd igmpproxy sudo tar xf ~/kpn-tv-config.tar sudo systemctl enable kpn-tv.service sudo systemctl daemon-reload sudo reboot # 大约一分钟后,打开机顶盒 `` 这跟下面的手动描述做的事情一样,但我还是建议你手动操作,这样你就知道实际发生了什么。 ## 手动操作 > 这个描述可能也适用于更新的 Debian 版本。上面的 tar 文件*替换*了多个文件,而不是修改它们。 在 `/etc/dhcpcd.conf` 中添加: `` denyinterfaces eth0.4,eth0.44 `` 这可以防止常规 DHCP 客户端干扰 KPN 电视 VLAN 和你的 STB VLAN。 将以下内容添加到 `/etc/dhcp/dhclient.conf`: `` interface "eth0.4" { request subnet-mask, broadcast-address, routers, rfc3442-classless-static-routes; send vendor-class-identifier "IPTV_RG"; } `` 这可以确保向 KPN 电视 VLAN 发出正确的请求。 接下来,我们需要为 eth0.44(KPN 机顶盒所在的地方)安装一个 DHCP 服务器: `` apt-get install udhcpd `` 将 `/etc/udhcpd.conf` 的内容替换为以下内容: `` start 192.168.2.21 end 192.168.2.254 interface eth0.44 max_leases 234 opt dns 195.121.1.66 195.121.1.34 option subnet 255.255.255.0 opt router 192.168.2.1 option lease 864000 `` 注意 DNS 服务器必须正确。我在这里输入了两个 KPN 名称服务器 IP 地址,但它们将来可能会改变。也许更简单的方法是填写你常规互联网局域网(eth0)上也能正常工作的 DNS 服务器。 然后(快完成了): `` apt-get install igmpproxy `` 将 `/etc/igmpproxy.conf` 的内容替换为: `` quickleave phyint eth0.4 upstream ratelimit 0 threshold 1 altnet 0.0.0.0/1 altnet 128.0.0.0/1 phyint eth0.44 downstream ratelimit 0 threshold 1 altnet 192.168.2.0/24 `` > 如果 KPN 的人看到这个:你们的“自有调制解调器页面(https://www.kpn.com/service/internet/wifi-en-modems/eigen-modem-instellen-en-gebruiken.htm)”上缺少这些“altnet”信息。此外,那里写的是“Ven**c**or Class Identifier”而不是“Vendor Class Identifier”。 现在所有软件都已正确安装。接下来需要确保在启动时执行正确的操作。 将以下内容放入 `/home/pi/kpn-tv.sh`(如果你不是用 Raspberry Pi,则放在其他地方): `` #!/bin/sh # 每次启动时执行 sysctl net.ipv4.ip_forward=1 sysctl kernel.panic=10 sleep 5 ip link add link eth0 name eth0.44 type vlan id 44 ip link add link eth0 name eth0.4 type vlan id 4 ip link set up dev eth0.44 ip link set up dev eth0.4 ip addr add 192.168.2.1 dev eth0.44 ip ro add 192.168.2.0/24 dev eth0.44 iptables -A POSTROUTING -t nat -s 192.168.2.0/24 -o eth0 -j MASQUERADE iptables -A POSTROUTING -t nat -s 192.168.2.0/24 -o eth0.4 -j MASQUERADE iptables -A INPUT -i eth0.4 -p tcp -j DROP dhclient igmpproxy /etc/igmpproxy.conf udhcpd -S `` 现在创建 systemd 文件。创建 `/etc/systemd/system/kpn-tv.service`,内容如下: `` [Unit] Description=KPN TV [Service] Type=oneshot ExecStart=/home/pi/kpn-tv.sh RemainAfterExit=true StandardOutput=journal [Install] WantedBy=multi-user.target `` 为了确保这一切自动启动: `` chmod 644 /etc/systemd/system/kpn-tv.service chmod a+x /home/pi/kpn-tv.sh sudo systemctl enable kpn-tv.service sudo systemctl daemon-reload `` 现在重启,一切应该都能工作了! ## 补充说明 为什么用这么丑陋的启动脚本?为什么不用 `/etc/network/interfaces`?这个页面的早期版本试图用规范的方式做所有事情,结果非常痛苦。VLAN 出现得太晚,或者 DHCP 客户端启动得太早等等。最终发现这样简单得多。 最后一点提示,经验表明 Raspberry Pi 上的 microSD 卡过一段时间后可能会损坏。由于你的家人可能对看电视有铁一般的服务水平协议要求,所以最好同时做两张卡。或者干脆来两台 Raspberry Pi Zero。

相似文章

数字联盟计划:真的会实现吗?

Bert Hubert

本文分析了荷兰联盟协议中的数字计划,包括中央ICT管理、数字主权和网络安全,并讨论了其中的挑战和相关官员。

这款应用让 Google TV 真正好用起来

Wired

AT4K 是一款免费的 Google TV 替代启动器应用,它用简洁、类似 Apple TV 风格的界面取代了杂乱、广告泛滥的默认主屏幕,只显示你实际使用的流媒体服务。该应用可在 Google Play 上下载,并提供一次性 5 美元的高级版升级选项,解锁更多功能。

尼普科夫盘机械电视模拟器

Hacker News Top

一个基于网络的尼普科夫盘机械电视交互式模拟器,用户可通过真实物理控制与Analog TV Simulator应用的实时预览,体验完整的信号链路。