家里的电视联网主要是为了手机投屏,但电视本身会下载开机广告,能不能用路由器的 iptables 限制电视机 IP 只访问乐播投屏的网址?
想到了梯子的方法,把这些域名用iptables转到一个不在路由器里使用的端口里
log-queries=true
log-facility=/tmp/dnsmasq.log
log-queries=extra
然后用电视连接路由器,比如ip是192.168.2.200,在电视里看网络视频和操作(暂时不要用手机投屏到电视),过了一段时间后在查看路由器的dnsmasq日志,找到192.168.2.200这个ip访问过的网址。
sed -i '/from 192\.168\.2\.200/!d' /tmp/dnsmasq.log
server=/.aaa.ccc/127.0.0.1#53
ipset=/.aaa.ccc/tvlist
server=/.bb.ccc/127.0.0.1#53
ipset=/.bb.ccc/tvlist
conf-dir=/etc/storage/dnsmasq/adblock/tv.conf
blocktv.sh内容
#!/bin/sh
#加载一些模块,这个仅限我的路由器(刷的是padavan),你的路由器可能不需要。
modprobe ip_set_hash_net
modprobe xt_set
modprobe ipt_REDIRECT
# 将192.168.2.50和192.168.2.200添加到 tvlist 集合中
# 如果你有多个电视就增加相应的ip
ipset create tvlist hash:net
ipset add tvlist 192.168.2.50
ipset add tvlist 192.168.2.200
# port 1314,随便写不在路由器里使用的端口)
iptables -t nat -I PREROUTING -s 192.168.2.50 -p tcp -m set --match-set tvlist dst -j REDIRECT --to-port 1314
iptables -t nat -I OUTPUT -s 192.168.2.50 -p tcp -m set --match-set tvlist dst -j REDIRECT --to-port 1314
iptables -t nat -I PREROUTING -s 192.168.2.200 -p tcp -m set --match-set tvlist dst -j REDIRECT --to-port 1314
iptables -t nat -I OUTPUT -s 192.168.2.200 -p tcp -m set --match-set tvlist dst -j REDIRECT --to-port 1314
然后在你的路由器设置每次开机都执行这个脚本。
1
yaott2020 2023-05-07 17:31:39 +08:00 via Android
你需要劫持 dns
|
2
x86 2023-05-07 17:37:48 +08:00 via iPhone
爱快是可以写规则做白名单
|
3
AndrewHenry 2023-05-07 17:44:21 +08:00
自建 dns 然后只设置解析乐博的域名
|
4
emma3 2023-05-07 18:45:32 +08:00
看看是否能 ADB ,然后 disable 所以有关于广告的 apk ,我家的康佳就可以。
|
5
azure2023us559 2023-05-07 21:01:09 +08:00 via Android
Iptables -I FORWARD -s tvip -j REJECT
禁止 tv 的 ip 数据包转发 |
6
opengps 2023-05-07 21:02:51 +08:00
不填写 dns + hosts 设置解析乐播即可
|
7
deorth 2023-05-07 21:11:09 +08:00 via Android
能
|
8
Puteulanus 2023-05-07 21:12:43 +08:00
现在的投屏好像是传个网址过去,投的设备自己下载视频播放,禁止所有网络访问的话这种是不是也下不到了
|
9
aocif23 OP 目前这样解决,如果你有更好的方法请说一下。
|
10
aocif23 OP #6
@opengps 电视没有 root ,不能修改 hosts #8 @Puteulanus 如果你是手机看本地视频,可以完全阻挡电视访问外网,目前是手机把视频连接传到电视让它播放,手机可以关闭 app 。 |