当前位置: 首页 > news >正文

[计算机网络] VPN技术

VPN技术

1. 概述

虚拟专用网络(VPN)技术利用互联网服务提供商(ISP)和网络服务提供商(NSP)的网络基础设备,在公用网络中建立专用的数据通信通道。VPN的主要优点包括节约成本和提供安全保障。

在这里插入图片描述

优点:

  • ​ VPN可以节约成本
  • ​ 为安全提供保障

2. VPN类型

VPN主要有三种应用方式:远程接入VPN、内联网VPN、外联网VPN。

  1. 远程接入VPN(Access VPN)

    远程接入VPN允许移动用户在外部网络上访问内部网络。例如,一些学校和企业的门户平台只有在内网环境下才能访问,通过远程接入VPN,用户可以在任何地方安全地连接到这些内部资源。

    在这里插入图片描述

  2. 内联网VPN

    内联网VPN将两个内部网络通过公用网络连接起来,形成一个逻辑上的局域网。这种方式可以用于连接不同办公室、分支机构,使其共享内部资源,提升整体协作效率。

  3. 外联网VPN

    外联网VPN使得不同的用户在逻辑上的局域网中不平等。通常用于合作伙伴或客户之间的安全通信,在保护公司内部资源的同时,提供必要的访问权限。

3. 使用的技术

3.1 隧道技术

隧道技术主要是利用隧道协议来传输另外一种协议。隧道由隧道开通器(TI)、有路由能力的公用网络和隧道终止器(TT)组成。隧道可以将数据流量强制传输到特定的目的地,隐藏私有的网络地址、在IP网络上传输非IP协议的数据包,简单的来说,隧道技术就像现实生活中的隧道,它可以从一地到一地,而它穿过的“大山”在这里就是外网。

3.1.1 实现方式

隧道的实现主要分为两个过程:封装、解封装。

在这里插入图片描述

  • 封装:由隧道开通器(TI)完成,将数据包封装在隧道协议的外壳内。
  • 解封装:由隧道终止器(TT)完成,将数据包从隧道协议的外壳中解封。
3.1.2 基本类型

隧道有两种基本类型:主动式隧道和被动式隧道

主动式隧道(Access VPN):

​ 客户端主动与目标隧道服务器建立连接。这种方式,客户端需要安装所需要的隧道协议

被动式隧道(Intranet VPN、Extranet VPN):

​ 被动式隧道主要用于两个内部网络之间的固定连接,所以需要先交给隧道服务器A,在接收到数据后,将其强制通过已建立的隧道传输到对端的隧道服务器。

4. VPN相关协议

在VPN技术中,隧道协议用于在公用网络上建立安全的通信通道。根据工作在OSI模型中的层次,可以将隧道协议分为第二层隧道协议和第三层隧道协议。

4.1 第二层隧道协议

第二层隧道协议工作在OSI模型的第二层,即数据链路层。常见的第二层隧道协议包括PPTP和L2TP。

4.1.1. PPTP(Point-to-Point Tunneling Protocol)

PPTP是由微软和其他厂商开发的早期VPN协议。它在PPP(Point-to-Point Protocol)基础上进行封装,通过互联网传输PPP帧。

在这里插入图片描述

特点

  • 简单易用:PPTP配置相对简单,广泛支持于Windows操作系统。
  • 性能较好:由于其较轻的协议开销,PPTP具有良好的传输性能。
  • 安全性较低:PPTP的加密机制(通常是MPPE)相对较弱,容易受到攻击。
4.1.2. L2TP(Layer 2 Tunneling Protocol)

L2TP是由思科和微软共同开发的协议,结合了PPTP和L2F(Layer 2 Forwarding)的特点。L2TP本身不提供加密功能,通常与IPSec一起使用,以提供强大的加密和认证机制。

特点

  • 灵活性高:L2TP可以通过多种网络(如ATM、帧中继等)传输数据。
  • 安全性好:当与IPSec结合使用时,L2TP/IPSec提供了强大的加密和认证功能。
  • 性能较差:由于双重封装(L2TP和IPSec),L2TP/IPSec的性能可能不如其他协议。

L2TP主要是由LAC(L2TP接入集中器)和LNS(L2TP网络服务器)构成。

  • LAC:用于客户端的L2TP来接发呼叫、建立隧道,为客户端提供通过PNST、ISDN、xDSL等方式的接入网路服务。
  • LNS:隧道的终点。

L2TP具有两种报文格式:控制报文、数据报文。

在这里插入图片描述

  • L2TP控制报文:用于隧道的建立、维护与断开。使用的是UDP1701端口,对封装后的UDP数据报使用IPSec ESP进行加密处理并认证。
  • L2TP数据报文:负责传输用户的数据。

4.2 第三层隧道协议

第三层隧道协议工作在OSI模型的第三层,即网络层。常见的第三层隧道协议包括IPSec和GRE。

4.2.1. IPSec(Internet Protocol Security)

IPSec是一套用于保护IP通信的协议,提供了认证、数据完整性和加密功能。IPSec通常用于保护VPN连接,尤其是站点到站点VPN和远程接入VPN。

特点

  • 强大的安全性:IPSec提供了强大的加密和认证机制,如AH(Authentication Header)和ESP(Encapsulating Security Payload)。
  • 灵活性高:IPSec可以保护任何基于IP的协议,是一种通用的安全解决方案。
  • 复杂性高:IPSec配置和管理相对复杂,需要专业知识。
4.2.2. GRE(Generic Routing Encapsulation)

GRE是一种简单的隧道协议,用于在一个协议中封装另一种协议。GRE本身不提供加密或认证功能,通常与IPSec结合使用以提供安全性。

特点

  • 协议支持广泛:GRE可以封装多种协议,包括IP、IPX和AppleTalk。
  • 简单易用:GRE配置相对简单,适用于多种应用场景。
    身不提供加密或认证功能,通常与IPSec结合使用以提供安全性。

相关文章:

[计算机网络] VPN技术

VPN技术 1. 概述 虚拟专用网络(VPN)技术利用互联网服务提供商(ISP)和网络服务提供商(NSP)的网络基础设备,在公用网络中建立专用的数据通信通道。VPN的主要优点包括节约成本和提供安全保障。 优…...

SQL 中的 EXISTS 子句:探究其用途与应用

目录 EXISTS 子句简介语法 EXISTS 与 NOT EXISTSEXISTS 子句的工作原理实际应用场景场景一:筛选存在关联数据的记录场景二:优化查询性能 EXISTS 与其他 SQL 结构的比较EXISTS vs. JOINEXISTS vs. IN 多重 EXISTS 条件在 UPDATE 语句中使用 EXISTS常见问题…...

OpenSearch分析WAF日志

Web应用防火墙(WAF)是保护web应用程序的重要工具,而分析WAF日志可以帮助我们更好地了解安全威胁并优化防护策略。本文将介绍15个使用OpenSearch分析WAF日志的实用例子,涵盖基础统计、安全分析、性能监控等多个方面。 准备工作 在开始之前,请确保: WAF日志已经被发送到OpenSea…...

【前端】零基础学会编写CSS

一、什么是CSS CSS (Cascading Style Sheets,层叠样式表)是一种是一种用来为结构化文档(如 HTML 文档)添加样式(字体、间距和颜色等)的计算机语言,能够对网页中元素位置的排版进行像素级别的精…...

Day07-ES集群加密,kibana的RBAC实战,zookeeper集群搭建,zookeeper基本管理及kafka单点部署实战

Day07-ES集群加密,kibana的RBAC实战,zookeeper集群搭建,zookeeper基本管理及kafka单点部署实战 0、昨日内容回顾:1、基于nginx的反向代理控制访问kibana2、配置ES集群TSL认证:3、配置kibana连接ES集群4、配置filebeat连接ES集群5、配置logsta…...

RK3568 V1.4.0 SDK,USB OTG端子不能被电脑识别出adb设备,解决

修改后的/usr/bin/usbdevice: #!/bin/sh # # Usage: # usbdevice [start|update|stop] # # Hookable stages: # usb_<pre|post>_<init|prepare|start|stop|restart>_hook # <usb function>_<pre|post>_<prepare|start|stop>_hook # # Example …...

如何在 Ubuntu 14.04 服务器上使用 Nginx 安装和保护 phpMyAdmin

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 介绍 像 MySQL 这样的关系型数据库管理系统在许多网站和应用程序中都是必不可少的。然而&#xff0c;并非所有用户都习惯通过命令行来管…...

redis存入hash,key=>value和key=>(key=>value)使用Python举例

在 Redis 中&#xff0c;HASH 数据结构&#xff08;也称为 HMAP 或 Hash Map&#xff09;允许你存储键值对集合&#xff0c;其中每个键值对都是字段&#xff08;field&#xff09;和值&#xff08;value&#xff09;的映射。在 Python 中&#xff0c;你可以使用 redis-py 库来与…...

Guava LocalCache源码分析:LocalCache的get、put、expand、refresh、remove、clear、cleanUp

Guava LocalCache源码分析&#xff1a;LocalCache的get、put、expand 前言一、get二、put三、expand 前言 上篇文章&#xff0c;详细描写了Guava LocalCache怎样如ConcurrentHashMap对缓存数据进行了分段存储。本章主要针对LocalCache重要的几个接口进行说明。 一、get CanIg…...

linux-arm ubuntu18.04 qmqtt5.12.6 编译部署

安装 qt 查看qt 版本 &#xff1a; qmake -v 下载对应版本 qmqtt 解压下载的mqtt文件 进入qmqtt xxx/src 目录 在qt 安装目录中创建QtMqtt文件夹&#xff0c; &#xff0d; x86平台qt 默认目录为 /usr/include/x86_64-linux-gnu/qt5 &#xff0d; arm平台qt 默认目录为/us…...

阿里ChatSDK使用,开箱即用聊天框

介绍&#xff1a; 效果&#xff1a;智能助理 ChatSDK&#xff0c;是在ChatUI的基础上&#xff0c;结合阿里云智能客服的最佳实践&#xff0c;沉淀和总结出来的一个开箱即用的&#xff0c;可快速搭建智能对话机器人的框架。它简单易上手&#xff0c;通过简单的配置就能搭建出对…...

LangChain —— Message —— How to trim messages

文章目录 一、概述二、获取最后的 max_tokens 令牌三、获取第一个 max_tokens 令牌四、编写自定义令牌计数器五、连成链六、使用 ChatMessageHistory 一、概述 所有模型都有 有限的 上下文窗口&#xff0c;这意味着它们可以作为输入的 token 数量是有限的。如果你有很长的消息&…...

专升本-1.0.3(英语)-升本209天-星期二

自己要耐得住寂寞&#xff0c;守得住自己的初心&#xff0c;守得住自己的未来&#xff0c;然后不断地真实地面对自己&#xff0c;使自己不断地获得一个真实地成长&#xff0c;说真话办真事&#xff0c;自己总会有一条路了&#xff0c;说真话&#xff0c;办真事的那条路才是最为…...

集合媒体管理、分类、搜索于一体的开源利器:Stash

Stash&#xff1a;强大的媒体管理工具&#xff0c;让您的影音生活井井有条- 精选真开源&#xff0c;释放新价值。 概览 Stash是一个专为个人媒体管理而设计的开源工具&#xff0c;基于 Go 编写&#xff0c;支持自部署。它以用户友好的界面和强大的功能&#xff0c;满足了现代用…...

数仓工具—Hive语法之事务表更新Transactional Table Update

Hive事务表更新 众所周知,Apache Hive 是建立在 Hadoop HDFS 之上的数据仓库框架。由于它包含表,您可能希望根据数据的变化更新表记录。直到最近,Apache Hive 还不支持事务。从 Hive 0.14 及以上版本开始支持事务性表。您需要启用 ACID 属性才能在 Hive 查询中使用更新、删…...

系统架构师(每日一练2)

每日一练 1.为实现对象重用&#xff0c;COM支持两种形式的对象组装&#xff0c;在()重用形式下&#xff0c;一个外部对象拥有指向一个内部对象的唯一引用&#xff0c;外部对象只是把请求转发给内部对象;在()重用形式下&#xff0c;直接把内部对象的接口引用传给外部对象的客户…...

Django REST Framework(十)视图集-ViewSet

视图集&#xff08;ViewSet&#xff09;是 Django REST framework 中的一个高级特性&#xff0c;它允许你使用更少的代码来实现标准的 CRUD&#xff08;创建、读取、更新、删除&#xff09;操作。ViewSet 类本质上是基于 GenericAPIView 的&#xff0c;但它们提供了更多的默认行…...

sping总览

一、spring体系 1. spring是什么&#xff1f; 轻量级的开源的J2EE框架。它是一个容器框架&#xff0c;主要实现了ioc&#xff0c;同时又通过aop实现了面向切面编程&#xff0c;它又是一个中间层框架&#xff08;万能胶&#xff09;可以起一个连接作用&#xff0c;比如说把myba…...

【Godot4.2】MLTag类:HTML、XML通用标签类

概述 HTML和XML采用类似的标签形式。 之前在Godot中以函数库形式实现了网页标签和内容生成。能用&#xff0c;但是缺点也很明显。函数之间没有从属关系&#xff0c;但是多有依赖&#xff0c;而且没有划分出各种对象和类型。 如果以完全的面向对象形式来设计标签类或者元素类…...

美式键盘 QWERTY 布局的起源

注&#xff1a;机翻&#xff0c;未校对。 The QWERTY Keyboard Is Tech’s Biggest Unsolved Mystery QWERTY 键盘是科技界最大的未解之谜 It’s on your computer keyboard and your smartphone screen: QWERTY, the first six letters of the top row of the standard keybo…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计&#xff0c;提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合&#xff1a;各模块职责清晰&#xff0c;便于独立开发…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

如何在网页里填写 PDF 表格?

有时候&#xff0c;你可能希望用户能在你的网站上填写 PDF 表单。然而&#xff0c;这件事并不简单&#xff0c;因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件&#xff0c;但原生并不支持编辑或填写它们。更糟的是&#xff0c;如果你想收集表单数据&#xff…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

怎么让Comfyui导出的图像不包含工作流信息,

为了数据安全&#xff0c;让Comfyui导出的图像不包含工作流信息&#xff0c;导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo&#xff08;推荐&#xff09;​​ 在 save_images 方法中&#xff0c;​​删除或注释掉所有与 metadata …...

在 Spring Boot 项目里,MYSQL中json类型字段使用

前言&#xff1a; 因为程序特殊需求导致&#xff0c;需要mysql数据库存储json类型数据&#xff0c;因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...

SQL Server 触发器调用存储过程实现发送 HTTP 请求

文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...