数据包如何通过代理服务器到达目标



我对来自我的机器的数据包如何通过代理服务器到达目的地感到困惑。 我的机器有一个用于内联网的专用 IP,我们有一个带有公共 IP 的代理服务器来与世界通信。

所以我们这里有三个地址。

1) my private ip address
2) proxy server address
3) destination address (google.com)

现在在我发送的 tcp 数据包中,我有源端口和目标端口来区分我的机器和目标上的各种程序(如 Mozilla 、chrome 等)。

在 IP 网络层中,我有源地址和目标地址。

我不知道http是否也有地址。

因此,当我的数据包离开我的机器时,它将包含什么地址。 以便它通过中间的网关到达我的代理服务器。 ?

到达代理服务器后,可以使用NAT将其发送到目的地。但我对它如何到达代理服务器感到困惑。

编辑:我的数据包是否应该包含我的代理服务器(本地私有服务器)的地址才能到达它?我可以通过配置浏览器来更改代理服务器。我的数据包离开我的机器后如何知道它会去哪个代理服务器?

数据包根本无法到达目标。其中的数据作为代理和服务器之间新连接的一部分到达目标,以全新的数据包形式出现,其大小和数量可能与下游连接中的大小和数量不同。从服务器 TCP 的角度来看,它连接到代理,而不是下游客户端。

HTTP 位于 TCP/IP 之上(以及 FTP、SMTP 等)

在电脑上配置代理服务器,以便所有请求都通过代理发送(除非它们被识别为本地地址)。

当您从"www.google.com:80"请求页面时

  • 您的计算机在 DNS 服务器中查找主机名的 IP 地址
  • 您的计算机发现它不是本地 IP(它与默认网关位于不同的子网上)
  • 然后它说"嘿,网关/代理,从谷歌给我这个页面"(传递谷歌的IP地址和端口。 HTTP层将包含标头,例如"method=GET",带有路径和参数的完整URL等)

最新更新