免责声明:
这不是“我需要 VPN 才能浏览 Netflix”。在此网站上无需 VPN 即可浏览 Netflix。
问题恰恰相反:“有一台 PC 只需要通过 VPN 上网,但 Netflix 检测到它位于 VPN 后面。怎么办?”
首先要考虑的事情:
- Netflix 允许来自此 VPN 提供商的 IP。
- 我们在意大利。
- 我们使用该付费 VPN 提供商的意大利服务器。
- 我们浏览 Netflix Italia。
如果他们通过机器 C 连接到 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!!)。
我还尝试了其他与 MTU 相关的测试,例如 letmecheck.it 上的测试,它们都返回 1472 作为机器 A 和 C VPN 的最大未碎片数据包。
配置详细信息如下:
该站点有一些 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。