【发布时间】:2020-03-29 09:06:34
【问题描述】:
我想知道我是否可以完全加密通过第 3 方代理服务器发送的请求。
HTTPS 请求内容对代理应该是不可见的,但是请求到达的域是可见的。
有什么办法可以隐藏域名,让代理看不到正在发送到https://example.com的数据?
我已经阅读了一些关于 DNScrypt 的内容,但听起来这在您通过代理路由请求时不适用。
一些旁注:
- 我正在通过 PHP 使用带有 cURL 的代理。
- 它在 Ubuntu 服务器上运行。
【问题讨论】:
-
"这样代理就看不到数据被发送到example.com" ...嗯,代理工作的很大一部分是将请求转发到目标服务器,所以如果你尝试隐藏目的地,您希望它如何正确路由请求?你为什么要这样做呢?您是否尝试访问代理禁止的站点?如果允许的话,可能还有其他方法可以实现这一点(例如 VPN)......但是您使用 VPN 的事实将对代理可见。
-
嗯,我希望会有某种加密技术。是的,我的代理禁止对特定域列表的请求。我可以为此设置一个 VPN,但我需要一些关于它如何工作的概述。
-
使用 VPN,代理只能看到与 VPN 服务器的连接。然后 VPN 服务器(有效地)充当另一个代理并将您的请求转发到最终目的地。但是,如果您的网络通过策略阻止某些站点,那么他们很可能也不是 VPN 服务的粉丝,因为它允许人们绕过他们的阻止策略,从而使其无效。所以你可能会发现大部分知名的VPN服务也被屏蔽了。
-
"我希望会有某种加密技术" ...再次不清楚您希望它实现什么或它是如何工作的?让我们打个比方——在这个例子中,代理服务器被当地分拣办公室的一位优秀的老式邮递员所取代。想象一下,您正在寄一封信,但您不想让邮递员知道它是寄给谁的,因为您不允许给那个人寄信。因此,您将地址写在密码中。太好了……邮递员看不到你在写信给谁。但是……他们也不知道还能把信寄到哪里。
-
(与真正的VPN略有不同的是(因为使用HTTPS)邮递员无法打开信封,因此看到您实际上是在尝试访问不同的地址,他们只能看到VPN 服务器的外部允许地址。这与任何 HTTPs 请求相同(当然,除非您的代理服务器在那里终止您的 HTTPs 请求并用另一个出站 HTTPs 连接替换它,有些人这样做 - 实际上是一个人在- 中间攻击,但官方认可的攻击。)