部署旁路由 Clash 代理后,家里所有设备都能够通过浏览器或者 iOS/iPad OS app 访问 Netflix 非自制剧,唯独电视(包括 Android TV 和 Apple TV )会提示「检测到使用代理」而拒绝加载。
看了下 Clash 日志,似乎电视上的 Netflix app 会直接通过 IP 加载内容:
23.246.56.138:443 match IPCIDR(23.246.0.0/18) using Netflix[🇸🇬 IEPL-SS 新加坡 1]
而 23.246.56.138 的归属地为香港,可能由此触发了代理检测。怀疑是 Netflix app 使用某种内置的 DNS 服务,直接在国内解析域名到最近的香港节点了。现在的问题是如何截获这个 DNS 请求并把它转发到我的新加坡节点上?旁路由已经配置了 iptables 把所有 UDP 53 转发到 Clash ,但这似乎对 Netflix app 无效。
(作为对照,网页版 Netflix 的所有请求均被截获转发,Clash 日志能直接看到内容域名:)
ipv6-c014-hkg001-ix.1.oca.nflxvideo.net:443 match DomainSuffix(nflxvideo.net) using Netflix[🇸🇬 IEPL-SS 新加坡 1]
1
Maskeney 2021-12-26 14:37:05 +08:00
你规则不全
|
2
knightdf 2021-12-26 14:41:16 +08:00
|
3
CrazyRundong OP @Maskeney #1 试过根据 src-ip 把来自电视的所有流量都转发到新加坡节点,还是有这个问题。所以怀疑是 DNS 相关的请求根本没被转发到 Clash 上。
|
4
CrazyRundong OP @knightdf #2 把这些域名都加到了旁路由规则里,还是不行
|
5
CrazyRundong OP 临时解决方案:在电视上装了 Clash for Android 后开启全局模式,总算能正常访问了
|
6
quzard 2021-12-26 16:14:10 +08:00 via Android 1
openclash 可以预解析 Netflix 。可以试试
|
7
Ives 2021-12-26 22:34:25 +08:00 via iPhone
😂听到最多的 都是说软路由有问题
|
8
TimothyT 2021-12-26 23:12:38 +08:00 via iPhone 1
换节点 现在大多数解锁都是用 ipv6 解锁的,而 uwp 和 tv 端的 nf 是强行用 ipv4 ,看下机场是否支持 v4 解锁
|
9
knightdf 2021-12-27 09:18:55 +08:00
@CrazyRundong 我就是用的这个规则,全屋设备包括 android tv 都可以正常看
|
10
Kinnice 2021-12-27 17:44:10 +08:00
需要劫持 8.8.8.8/8.8.4.4
|
11
hikiss 2021-12-29 11:30:39 +08:00
翻了国外的,也是一样的问题,提供的方案就是劫持或者阻断 Netflix 的 hard coding 的 dns
https://vpnreviewer.com/androidtv-streaming-unblocking |
12
RealKela 2022-01-12 08:44:40 +08:00
我最近 Apple TV 也遇到这个问题,服务器 IPv4 解锁的,web 也解锁就 TV app 没有解锁。有人知道怎么解决吗?
|
13
mailshuxin 2022-01-22 15:13:31 +08:00
我在是路由器上面,添加了两个静态路由黑洞:8.8.8.8/32 ,和 8.8.4.4/32
目前正在观察效果 |
14
mailshuxin 2022-01-23 02:56:36 +08:00
路由黑洞也不行.能看,但是第二天 VPS 的 IP 就被封了
|
15
vtoex0000000002 2022-01-23 21:12:54 +08:00
在路由器上做,
# fix dns, redirect all other dns server to 192.168.1.1#53, such as 114.. or 8.. iptables -t nat -N DNS iptables -t nat -A DNS -p udp -j REDIRECT --to-ports 53 iptables -t nat -I PREROUTING -p udp --dport 53 -j DNS 然后在电脑上用 nslookup 测试,server 2.2.2.2 ,都能正常返回 dns |
16
vtoex0000000002 2022-01-23 21:14:35 +08:00
|
17
vtoex0000000002 2022-01-23 21:18:04 +08:00
没看你的内容,这个就是 tv 版的限制,我之前也遇到了
|
18
semglassiebaba 2022-01-26 15:51:32 +08:00
TV 版貌似有远程获取 cdn ip 的机制,拦截 dns 不起作用的,只能加 ip 规则
|
19
qinyq 2022-02-09 18:16:49 +08:00
@semglassiebaba iPhone 版也是,看一次封一次。。。难道也是因为获取 cdn ip 导致的?
|
20
qjk201203ddd 2022-03-19 20:00:08 +08:00 via iPhone
我也是这个问题,新版本里面都是直接 ip ,但之前老机器上用的 shellclash 都能正常。奈飞能用,迪士尼倒是不能用了
|
21
cloudsigma 2022-05-02 11:12:40 +08:00
在路由器里截取
# fix dns, redirect all other dns server to 192.168.1.1#53, such as 114.. or 8.. iptables -t nat -N DNS iptables -t nat -A DNS -p udp -j REDIRECT --to-ports 53 iptables -t nat -I PREROUTING -p udp --dport 53 -j DNS |
22
CrazyRundong OP @cloudsigma #21 UDP 53 已经截取了的,连 TCP 53 都用 clash tun hijack 了。但现在除了直接在电视上开 clash for android 全局模式,其他方法都好像有概率触发代理检测或者限播非自制剧
|
23
me221 2022-05-03 23:48:17 +08:00
@CrazyRundong 我发现在 IOS 的 APP 更容易封 IP... 在隔壁找到 https://host.loc.com/thread-973557-1-1.html 这个帖子
|
24
keyfunc 2022-06-21 17:26:27 +08:00 3
payload:
- "23.246.0.0/18" - "37.77.184.0/21" - "45.57.0.0/17" - "64.120.128.0/17" - "66.197.128.0/17" - "108.175.32.0/20" - "192.173.64.0/18" - "198.38.96.0/19" - "198.45.48.0/20" |
25
Holmes96 2022-08-08 21:32:12 +08:00
有大佬解决了么?
|
26
Holmes96 2022-08-08 21:32:33 +08:00
有大佬解决 Apple TV 上 DNS 解锁了么?
|
27
ysn2233 2022-12-07 09:06:19 +08:00
同样问题有解决的么?
|
30
Eastlee 2023-08-16 14:49:56 +08:00
我和楼主遇到一样的问题,我是梅林环境,tv 版应该有单独的检测机制,最后关闭了路由器的 ipv6 好了。
|
31
HuLaTown 358 天前
@caiyuyu 我是在 `rules` 部分加了以下这些:
``` - IP-CIDR,23.246.0.0/18,netflix - IP-CIDR,37.77.184.0/21,netflix - IP-CIDR,45.57.0.0/17,netflix - IP-CIDR,64.120.128.0/17,netflix - IP-CIDR,66.197.128.0/17,netflix - IP-CIDR,108.175.32.0/20,netflix - IP-CIDR,192.173.64.0/18,netflix - IP-CIDR,198.38.96.0/19,netflix - IP-CIDR,198.45.48.0/20,netflix ``` 上面的 `netflix` 是我建的 proxy-group |
32
Reficul 256 天前 1
折腾了半天,终于搞清楚了。
TV App 存在 DNS pin ,回向写死的 DNS 服务器发起 DOH 和 DOT 查询,DNS 服务器我看到的就有 8.8.8.8 / 8.8.4.4 / 1.1.1.1 / 1.0.0.1 ,不排除有别的,屏蔽不过来也没有前途。 目前所谓的 DNS 解锁本质就是一个 SNI proxy ,DNS 返回的结果不是 SNI proxy 的地址的情况下,解锁就失效了。所以解决方案也很简单,用 iptables 把 Netflix 的网段都劫持到 SNI Proxy 的地址上就行了。 脚本大致如下: https://gist.github.com/xuzhenglun/d35e6534e24291dec0009248924f9c85 |
33
CrazyRundong OP @Reficul #32
>TV App 存在 DNS pin ,回向写死的 DNS 服务器发起 DOH 和 DOT 查询 多谢!这个信息太有用了!我目前在 sing-box 上通过阻断 853 、443/UDP 和 STUN 流量来防止 TV App 的 DNS pin 泄漏,然后把剩余的流量分流到解锁了 Netflix 的节点。这样也能 work ,就是每次加载时间会长一些: https://github.com/lirundong/homelab-infra/blob/93352db/conf-gen/source.yaml#L600-L607 |
34
terrancesiu 248 天前
@Reficul 是的,就是你的搞法,我直接把目的地址为 NF 的所属的 cidr 且目的端口为 443 的请求,通过 dnat 到了 sniproxy 的服务器地址,然后一切 ok 。RouterOS 的做法,我贴出来。
把 nf 的地址段都加入这个 list ,但是实际上亚洲解锁都是 23.246 段的,台湾比较特殊,本地 ISP 也有 CDN /ip firewall address-list add address=23.246.0.0/18 list=netflix add address=37.77.184.0/21 list=netflix add address=45.57.0.0/17 list=netflix add address=64.120.128.0/17 list=netflix add address=66.197.128.0/17 list=netflix add address=108.175.32.0/20 list=netflix add address=192.173.64.0/18 list=netflix add address=198.38.96.0/19 list=netflix add address=198.45.48.0/20 list=netflix add address=210.201.93.0/24 comment="Asia Pacific Telecom" list=netflix add address=203.75.0.0/16 comment="HiNet (Chunghwa Telecom)" list=netflix #创建一个 DNAT /ip/firewall/nat add action=dst-nat chain=dstnat comment=netflix dst-address-list=netflix dst-port=443 protocol=tcp to-addresses="你的 DNS 解锁解析出来的 SNI 代理服务器地址" to-ports=443 最后做个定时任务,如果解析地址变化,自动更新 /system/scheduler add comment=netflix interval=2m name=schedule99 on-event=":local NAME \"www.netflix.com\"\r\ \n:local CURRENT [:resolve \$NAME]\r\ \n:local CONTENT [/ip/firewall/nat/get value-name=to-addresses [find comment=\"netflix\"]]\r\ \n:if (\$CURRENT != \$CONTENT) do={\r\ \n/ip/firewall/nat/set to-addresses=\$CURRENT [find comment=\"netflix\"];\r\ \n:log/info \"DOMAIN: \$NAME ,SNIPROXY: \$CURRENT updated\"\r\ \n};" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=2021-01-01 start-time=08:00:00 |
35
meitao19950 209 天前 via Android
@Reficul 太专业了看不懂
|
36
AnotherWorld 109 天前
@Reficul 大佬能简单通俗的讲讲 openwrt 或 openclash 该怎么配置吗
|