当对等体是我的软体时,如何检测点对点VPN?

问题描述 投票:0回答:1

我正试图开发一个实用程序,在一个网络中的两个对等体上运行。其工作是识别网络是否真的是一个VPN。需要注意的一个重要属性是--对等体大多属于不同地域不同办公室的不同网络。这种设置的一个重要属性是假设对等体在同一个子网中。如果他们不在,则不允许通信。

对等体之间使用TCP连接进行连接。建立连接后,对等体交换两台机器的连接IP地址。然后两台软件将其网络部分(从适配器获得网络掩码)与自身网络部分进行比较。如果两个网络不匹配,则宣布为VPN。

但是,这种机制不能用于点对点的VPN。

I check if the adapter is a software adapter.
I could also exchange public IPs to know if our public IPs are different.
I could exchange MAC addresses/description of the connected adapters and compare them.

但在我看来,这些似乎都是对症下药的测试,而不是一个明确的测试。

需要大家出出主意。

networking network-programming vpn openvpn
1个回答
0
投票

每一个你能够使用的基于网络的测试都会 "对症下药"。点对点的VPN软件被设计成和以太网上面的IP一样的第3层接口呈现给你,所以一般的 "VPN软件 "你是检测不出来的。这里有几个你可以使用的想法。

  • 你能不能测试一下延迟(也许计算一边的往返时间)?如果大于几毫秒,你很可能要跨WAN网络。这将表明你正在使用某种VPN、互联网或MPLS式的 "城域以太网 "链接。
  • 你知道什么VPN软件可能正在运行吗?检查正在运行的进程,看看是否有任何进程看起来像你知道的VPN软件。
  • 如果这是为你的雇主服务的,那么是否可以在你的软件中设置一个标志(或在它运行的机器上的文件等)与它运行的办公地点?如果可以的话,只要交换一下位置,检查一下是否不同就可以了。

另外,你原来检查网络前缀是否不同的测试并不能准确地检测到VPN--当一个局域网上有多个子网在使用时,它会遇到假阳性(即使在小型企业网络中也很常见)。

根据你的实际使用情况,这些方法中的一种很可能就足够了。

© www.soinside.com 2019 - 2024. All rights reserved.