我需要这种行为 当从我的客户端连接到一个特殊网站时,我希望结果收到一个空白页。例如,如果我连接到 serverfault.com,我会收到一个空白页,但如果我连接到 google.com,我就会得到一个好的网站。
我目前使用以下配置:
服务器 1:客户端
服务器 2:OpenVPN
服务器 3:代理
服务器 4:网站
客户端使用代理通过 curl 连接到网站,但服务器本身配置为使用 VPN。因此它只是执行服务器 1 -> 服务器 2 -> 服务器 3 -> 网站。
我无法修改服务器 3(代理提供商)或服务器 4(可以是任何网站)。我需要在服务器 1 或服务器 2 上进行一些配置。
我考虑在请求中添加一个标头(例如:SPECIALCONNECTION: Drop),然后服务器 2 检查我是否有此标头。如果存在,它只会断开连接并返回空白页。但我看不出有什么方法可以轻松配置 OpenVPN 来做到这一点,所以欢迎提出任何想法。:)
答案1
由于您首先通过 VPN,因此您的代理实际上对请求没有任何控制权。
我认为最好的选择是通过 DNS 服务器来解决这个问题。如果您创建的 DNS 区域没有您要阻止的网站的记录,这将导致这些网站无法解析,或者解析到您选择的页面(如果您在其中输入条目)。
如果您完全控制所有客户端,那么您只需要更改他们的 DNS 服务器。
但是,请确保正确配置 VPN 设置,以便它不会通过外部隧道查找 DNS。您希望它在本地子网内搜索。