1.开启OpenWRT的NTP服务器

系统>系统>时间同步中勾选作为NTP服务器提供服务

2.转发局域网内的NTP请求到路由器

因为NTP使用的是UDP 123端口

可以新建一个转发,在网络>防火墙>端口转发

配置名称
协议 UDP
源区域 LAN
外部端口 123
目标区域 LAN
内部IP地址 <路由器IP>
内部端口 123

也可以试试ChatGPT给出的iptables规则

1
iptables -t nat -A PREROUTING -p udp --dport 123 -j REDIRECT --to-ports 123

3.测试

Windows上可以使用下面的命令测试NTP服务器是否可用

1
w32tm /stripchart /computer:<NTP服务器地址>

如果端口转发成功的话,任意地址都能获得NTP时间,如

1
w32tm /stripchart /computer:a.b.c

4.碎碎念

又快到新年了,一直当作摆设的电视终于又要用上几天了。自从电视家没了之后,看电视也变得更麻烦了。虽然还是可以找到一些还在维护的APP,但过年这几天看得人多,也是有必要多准备几个方案。

网上流畅的直播源需要IPv6,但是我手贱删掉了OpenWRT的IPv6还不知道怎么弄回来,无奈直接重装。最后IPv6是有了,但是电视盒子获取不到网络时间了。可能是Fake-IP出问题了,但是我也不知道怎么解决。

正巧有个朋友家里特别旧的电视盒子也出现了这个问题(可能是内置的NTP服务器没了?),正好想到了这个方法。

安卓其实可以使用adb来修改NTP服务器,不管了,先这样用着吧。

1
adb shell settings put global ntp_server <NTP服务器地址>

最后,OTT Navigator真好用。