我想了解通过 VPN 连接到我所在大学的服务器的工作原理。网络上服务器的 IP 地址是 172.27.xxx.xxx,据我所知,这是一个私有 IP 地址(即保留供内部使用,不允许在公共互联网上使用)。据我所知,如果您对该服务器执行 DNS 查找,它将返回连接到公共互联网的大学路由器之一的 IP 地址(可能是 VPN 路由器?)DNS 服务返回什么 IP 地址?,而不是私有地址。因此,当您从公共互联网上的主机发送数据包时,它们会被加密并发送到校园 VPN 路由器。一旦它们到达 VPN,它们就会被解密,但此时路由器如何知道将数据包发送到哪里,因为我们从未拥有所需服务器的私有 IP 地址?
这里有一些相关的问题,但我没有找到任何可以让我清楚这一点的东西。 如何使用私有 IP 地址访问 VPN 服务器?和VPN 如何管理本地 IP 地址和内部网络中的 DNS 查找。
答案1
大多数VPN都有两个基本概念:
概念隧道施工,这意味着封装一种类型内的另一种类型的流量。
大多数 VPN 客户端软件都会在系统上创建一个“虚拟”网络适配器。
发送到此虚拟网络适配器的流量实际上被分流到 VPN客户软件(大多数现代操作系统都支持这种类型的网络适配器,它将流量发送到应用程序或服务,而不是直接从网络适配器发送出去),它接收数据包并将其作为有效负载数据添加到加密协议(SSL 等)中,然后通过互联网将加密数据包从真实的网络适配器发送到 VPN 服务器。
整个过程称为隧道施工- 并且不必涉及加密,但在 VPN 的情况下使用。
然后 VPN 服务器将解除封装,然后获得原始流量。然后它可以正常路由等。
由于客户端使用了虚拟网络适配器,并且封装/解封装对于通过虚拟网络适配器传输的任何东西都是透明的,因此可以使用 VPN 服务器另一端的地址,就像它们是直接连接的一样。
关于 DNS,可以告诉 DNS 服务器返回您想要的任何地址 - 包括私有 IP 范围。VPN 服务器需要至少一个公共 IP 和解析到公共 IP 的 DNS,以便允许 VPN 软件创建隧道,但一旦隧道建立,VPN“后面”的主机就可以拥有私有 IP 地址,这些地址只能通过 VPN 在网络上访问。
答案2
一旦它们进入 VPN,它们就会被解密,但此时路由器如何知道将数据包发送到哪里,因为我们从来没有所需服务器的私有 IP 地址?
如果我没有弄错的话,我相信这个过程通常是将原始请求负载作为 VPN 数据包的一部分。因此,如果您请求“internal.server.edu/something-something-darkside”,则该请求包含在加密数据包中(并且 VPN 服务器将根据其配置处理此请求数据)。
您还可以确信大多数 VPN 服务器允许网络桥接并且可能知道本地 DNS 服务器。