我需要连接到VPN服务器,我不能使用Windows Connections,我的应用程序应该独立工作!
我使用RAS Api测试了一些组件,它们可以工作!但是通过使用Windows连接。
如何在不依赖Windows连接的情况下做到这一点?
答案 0 :(得分:4)
“VPN”代表“虚拟专用网”。这是一种可以以安全的方式为您的计算机提供专用网络的方法,因此您的计算机可以使用标准IP协议,就好像它是物理连接到专用网络一样。
操作系统需要了解该网络,因此所有VPN实施当然都使用“Windows连接”。 从不同的角度来看:当您连接到VPN时,您可以打开与专用网络上的IP的TCP连接,就像它在本地网络上一样。由于设置TCP连接和路由TCP / IP数据包是操作系统的工作,当然它需要了解VPN!如果没有,它只会将您对给定IP的所有请求转发到它的默认路由器,如果您的路由器不够友好,则会失败"no route to destination"
消息(或"time out"
你的系统不知道私有IP是什么。)
从理论的角度来看,当然,你可以完全绕过Windows,但是你必须“自己动手”一切。您不能使用Windows IP服务,您必须实现自己的TCP。我确信还有大约一百万件其他小东西需要重新实施。
作为一个起点,我会看一下Open VPN:它是开源的,可用于Windows。它使用UDP协议作为VPN实现的基础,与Windows VPN(使用GRE - 通用路由封装,协议47)不同。当然,开放VPN本身使用“Windows连接”来完成它的工作,因为它旨在提供有用的服务,但您可以使用源代码作为您自己实现的基础。
我个人甚至不会想到这样做,我只是向你展示并证明它是可能的。
我认为您需要某种安全通信渠道来自己的服务。查看简单的安全连接,隧道协议和代理。
如果需要在一台服务器上对一项服务进行此操作,我将研究一个简单的SSL实现。更好的是,请考虑使用HTTPS。
如果您需要访问给定专用网络上可能不同的服务器上的许多不同服务,我会查看代理。