以下是我的设置:
Raspberry Pi 3 正在运行 osmc(操作系统无关紧要)
Pi 通过 OpenVPN 连接到 VPN。Pi
使用 hostapd (wlan0) 创建接入点
Pi 使用 dnsmasq
IP 路由表为 wlan0 AP 提供 DHCP,将 wlan0 流量路由到 tun0 接口
到目前为止一切都很顺利,我的安卓手机获得了 IP 地址,可以通过 VPN 访问互联网。之前有一个 DNS 泄漏问题,但现在我已修复该问题,以便 dnsmasq 使用 VPN 提供商提供的名称服务器。访问后确认了这一点https://ipleak.net
在我的手机上,我可以访问和观看受地理限制的内容,例如 BBC iPlayer 和 Netflix。但是,当将这些应用投射到 Chromecast(也连接到同一个 AP)时,它们无法按预期工作。
读了更多内容后,我发现 Chromecast 似乎对其使用的 DNS 进行了硬编码,而不是通过 DHCP 提供的 DNS,因此我阻止了对8.8.8.8
pi 路由表的访问。这确实会导致 Chromecast 向我的 Pi 发出 DNS 调用。我还尝试使用 DNAT 将这些调用重定向到 VPN DNS 服务器。
但它有时可以工作,但从不可靠,我不知道为什么 BBC iPlayer 应用程序(这是唯一的应用程序,因为 ITV 和 Channel 4 可以完美运行)无法通过 Chromecast 正确投射,但它可以在 Android 上投射,即使它们现在在同一个网络上,并且我已经阻止了谷歌 DNS。
我认为这与 BBC 检测到我在英国境外有关,最有可能是 DNS 泄漏问题,但我已经解决了这个问题。有人知道 iPlayer 如何检测您所在的国家/地区吗?它开始以加载屏幕进行投射,然后恢复到“准备投射”屏幕。
任何帮助都将不胜感激,这件事已经让我抓狂了好几个星期,很高兴能提供所需的尽可能多的日志或信息。