如何使用Delphi连接到VPN服务器?

如何使用Delphi连接到VPN服务器?,delphi,vpn,ras,Delphi,Vpn,Ras,我需要连接到VPN服务器,我不能使用windows连接,我的应用程序应该独立工作 我使用RASAPI测试了一些组件,它们工作正常!但是通过使用windows连接 在不依赖windows连接的情况下,我如何做到这一点?这个问题的症结所在 “VPN”代表“虚拟专用网络”。这是一种使您的计算机可以使用专用网络的方法,可能是以安全的方式,因此您的计算机可以使用标准IP协议,就好像它是物理连接到专用网络一样 操作系统需要了解该网络,因此所有VPN实现都使用“windows连接”。从另一个角度来看:当您连接

我需要连接到VPN服务器,我不能使用windows连接,我的应用程序应该独立工作

我使用RASAPI测试了一些组件,它们工作正常!但是通过使用windows连接

在不依赖windows连接的情况下,我如何做到这一点?

这个问题的症结所在 “VPN”代表“虚拟专用网络”。这是一种使您的计算机可以使用专用网络的方法,可能是以安全的方式,因此您的计算机可以使用标准IP协议,就好像它是物理连接到专用网络一样

操作系统需要了解该网络,因此所有VPN实现都使用“windows连接”。从另一个角度来看:当您连接到VPN时,您可以在专用网络上打开到IP的TCP连接,就像它在您的本地网络上一样。由于设置TCP连接和路由TCP/IP数据包是操作系统的工作,因此它当然需要了解VPN!如果没有,它会简单地将您对给定IP的所有请求转发到它的默认路由器,并以
“no route to destination”
消息失败(或者
“Timeout”
,如果您的路由器不太好地告诉您的系统它不知道私有IP是什么)

能做到吗? 当然,从理论的角度来看,你可以完全绕过Windows,但是你必须“滚动你自己的”一切。您不能使用Windows IP服务,您必须实现自己的TCP。我确信还有大约一百万件其他的小事情需要重新实施

作为一个起点,我要看一下:它是开源的,可用于Windows。它使用UDP协议作为VPN实现的基础,与Windows VPN不同(Windows VPN使用GRE通用路由封装,协议47)。当然,OpenVPN本身使用“windows连接”来完成它的工作,因为它旨在提供有用的服务,但您可以使用源代码作为自己实现的基础

我个人甚至不会考虑这样做,我只是给你指路,证明这是可能的

应该怎么做 我想你需要某种安全的通信渠道来为自己的服务。研究简单的安全连接、隧道协议和代理

如果需要对一台服务器上的一个服务执行此操作,我将研究一个简单的SSL实现。更好的是,研究使用HTTPS


如果您需要访问给定专用网络上可能不同的服务器上的许多不同服务,我会查看代理。

这个问题不完整。您使用的是哪种VPN?有IPSec、L2TP、PPTP、OpenVPN、Hamachi、PPP+L2TP、SSH隧道等等。如果没有更多的细节,就无法回答您的问题。没有广泛接受的标准来实现VPN。因此,您将为目标服务器进行开发。您可以使用Indy调色板上的组件来实现客户端。任何希望您使用VPN并同时绕过实际VPN软件来实现DIY解决方案的人都是在找麻烦。我保证。这看起来太错误了。。。假设用户必须在同一VPN中使用另一个应用程序。因此,他们启动他们的Cisco VPN客户端或任何东西,输入他们的用户ID、PIN和从硬件密钥fob生成的令牌。而且他们在里面。现在,他们必须再次执行所有这些操作,在你的应用程序中输入userid/pin/token。他们不会喜欢它,他们的安全部门也不会喜欢。它闻起来更像是一个特洛伊密码窃取者,而不是一个安全的应用程序。