稳定可用科学上网VPN原理介绍

请看这里

VPN 介绍:

VPN(Virtual Private Network) 的功能是通过公共网络建立一个专用的、加密的连接,使得用户在不可信的网络环境中也能安全地进行通信。VPN 可以广泛应用于企业网络、家庭和个人网络,提供远程访问、数据传输加密、身份验证和匿名上网等服务。

远程访问:VPN允许远程用户、分支机构、合作伙伴及供应商通过公共网络安全地与企业内部网络建立连接。
数据传输加密:VPN 使用隧道技术、加解密技术、密钥管理技术和使用者与设备身份认证技术,确保数据在传输过程中的安全性。
身份验证:在进行远程访问之前,用户需要进行身份验证,之后会获得一个虚拟IP地址和一个默认路由,从而能够访问企业的内网资源。
匿名上网:VPN还能隐藏用户的真实IP地址,使用户能够在不暴露身份的情况下访问网页和服务。
VPN的类型包括SSLVPN和IPSecVPN,它们各有特点适用于不同的需求。例如,SSLVPN适合个人使用,而IPSecVPN更适合企业级应用,支持广泛的设备和应用程序。

VPN的设计初衷是为了在不可信网络之上建立一个加密隧道,将远端终端接入到企业内网中,扩展可信网络的范围。它的工作原理包括加密通信、数据隧道和IP地址隐藏,这些都是为了在不安全的网络上创建一个私密的网络环境,保护用户的数据免受黑客和窃听者的侵扰,确保数据的机密性和完整性。

工作流程:

在外网的用户可以使用 client 连接组织搭建的 server 以建立通信隧道,随后便建立了虚拟的私人网络,处于外网的 worker 和内网中的 server 可以相互通信。

那么我们可以简单理解 VPN,由 VPN client 捕获用户发出的报文,封装报文后通过物理网络通信链路将报文发给 VPN server,VPN server 接收到报文后进行解包,再将其转发给实际的目标,反之同理; VPN 在逻辑层面构建了虚拟网络。

TUN/TAP
那么在代码层面 VPN 是如何实现的呢?我们可以先来看看 TUN/TAP。

TUN/TAP 是操作系统内核中的虚拟网络设备,由软件进行实现,向操作系统和应用程序提供与硬件网络设备完全相同的功能。其中 TAP 是以太网设备(二层设备),操作和封装以太网数据帧,TUN 则是网络层设备(三层设备),操作和封装网络层数据帧。

当应用程序发出报文后,报文将通过操作系统协议栈处理,到达网络设备,硬件网络设备将收到的报文转化为电信号发出,而虚拟网络设备(TUN/TAP)不具备实际的物理功能,报文需要上层应用进行处理,如下:

稳定可用科学上网VPN原理介绍_第1张图片

你可能感兴趣的:(网络,git)