Netflix 如何追踪我是否使用了 VPN?

Netflix 如何追踪我是否使用了 VPN?

免责声明

这不是“我需要 VPN 才能浏览 Netflix”。在此网站上无需 VPN 即可浏览 Netflix。

问题恰恰相反:“有一台 PC 只需要通过 VPN 上网,但 Netflix 检测到它位于 VPN 后面。怎么办?”

首先要考虑的事情:

  1. Netflix 允许来自此 VPN 提供商的 IP。
  2. 我们在意大利。
  3. 我们使用该付费 VPN 提供商的意大利服务器。
  4. 我们浏览 Netflix Italia。

仅限 VPN 的站点图

如果他们通过机器 C 连接到 Netflix,他们会收到以下消息(意大利语翻译):“出现问题。流媒体错误。看起来您正在使用解锁器或代理,请禁用这些服务并重试。错误代码:M7111-5059。”

netflix 错误 m7111-5059

请注意,这与 VPN 服务器无关。如果 C 连接到 A 使用的同一 VPN 服务器,但通过提供商的 VPN 应用本地连接,Netflix 将不会将其检测为“位于解锁器后面”。

我想知道 Netflix 在此设置中检测到什么,而如果 VPN 应用程序在机器 C 上运行则无法检测到什么?

这种检测方式是否会被其他心怀恶意的人(肯定)利用?我的设置实际上暴露了什么,以至于在运行 VPN 应用时无法检测到?如何解决此问题?

我的客户没有违反任何 Netflix 的服务条款,他们只需要通过 VPN 上网,并且他们想在午休时间使用 Netflix。

我并不担心他们午餐时无法观看电视节目:我主要担心我的设置可能存在漏洞,当用户通过机器 A 的 VPN 上网时,其他人实际上可以跟踪真实网络的详细信息。

按照第一个答案中的建议Yevhen Stasiv先生,我运行了 WITCH VPN Detector 测试,它没有显示机器 A 和机器 C 的 VPN 之间的相关差异。它只显示少了两个跳数,7 对 9。(可能确实是机器 A 和 B!!)。

通过机器 A 的 VPN 使用 WITCH vpn

通过机器 C 的本地 VPN 应用使用 WITCH vpn

我还尝试了其他与 MTU 相关的测试,例如 letmecheck.it 上的测试,它们都返回 1472 作为机器 A 和 C VPN 的最大未碎片数据包。

letmecheck.it mtu 测试

配置详细信息如下:

该站点有一些 PC(如图中的机器 C)仅通过 VPN 连接。

机器 A 是一台 Ubuntu 16.04 机器,设置为带有防火墙和 VPN 客户端的网关。

机器 B 是 IPFire 防火墙,它不进行伪装并且仅具有出站过滤规则。

A 是 B 的默认网关。B 是存在问题的 PC(机器 C)所在 LAN 的默认网关。

A的VPN客户端是openvpn,连接着一个流行的付费VPN服务。

主机:公有/私有 IP

  • 提供商路由器:xxx/192.168.100.1

  • 机器A:192.168.100.2/192.168.66.2

  • 机器B:192.168.66.1/192.168.77.1

  • 机器C:192.168.77.133

机器A的设置:

Iproute2 配置

root@scrrtr:~# cat /etc/iproute2/rt_tables
#
# reserved values
#
255     local
254     main
253     default
100     Tprovider
150     Tvpn
0       unspec

root@scrrtr:~# ip rule show
0:      from all lookup local
32757:  from 192.168.77.133 lookup Tvpn
32762:  from all to 1.0.0.1 lookup Tvpn
32763:  from all to 1.1.1.1 lookup Tvpn
32764:  from 10.8.1.16 lookup Tvpn
32765:  from 192.168.100.2 lookup Tprovider
32766:  from all lookup main
32767:  from all lookup default

root@scrrtr:~# ip route show
0.0.0.0/2 via 192.168.100.1 dev ens160
0.0.0.0/1 via 10.8.1.1 dev tun0
default via 192.168.100.1 dev ens160
10.8.1.0/24 dev tun0  proto kernel  scope link  src 10.8.1.16
64.0.0.0/2 via 192.168.1.1 dev ens160
128.0.0.0/2 via 192.168.1.1 dev ens160
128.0.0.0/1 via 10.8.1.1 dev tun0
192.0.0.0/2 via 192.168.1.1 dev ens160
192.168.100.0/24 dev ens160  proto kernel  scope link  src 192.168.100.2
192.168.77.0/24 via 192.168.66.1 dev ens192
192.168.66.0/30 dev ens192  proto kernel  scope link  src 192.168.66.2

Iptables 配置

root@scrrtr:~# cat /etc/firewall/iptables.rules
[...]
-A POSTROUTING -o ens160 -j MASQUERADE
-A POSTROUTING -o tun+ -j MASQUERADE
[...]
-A FORWARD -s 192.168.77.133/32 -i ens192 -o ens160 -j DROP
-A FORWARD -i ens192 -o ens160 -j ACCEPT
-A FORWARD -i ens160 -o ens192 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i ens192 -o tun+ -j ACCEPT
-A FORWARD -i tun+ -o ens192 -m state --state RELATED,ESTABLISHED -j ACCEPT
[...]

我想知道如何排除机器 A 和机器 C 的 VPN 之间的差异。Netflix 只是为了在该网络设置中寻找漏洞而找的一个借口。

答案1

Netflix 可以进行一些流量分析,比如“witch vpn detector”(https://github.com/ValdikSS/p0f-mtu-script

Netflix 过滤器会处理与托管服务提供商相关的阻止,如果您能够获取住宅 IP,并通过它使用 VPN,则可访问 Netflix。

TCP/IP 堆栈差异

相关内容