根据 IP 地址进行 VPN 分流(详细,亲测,通用)

根据 IP 地址进行 VPN 分流(详细,亲测,通用)

背景

不在学校的时候需要使用实验室的服务器,但是实验室的服务器只能在校园网内访问,因此在校外就需要使用学校的 VPN,但是打开 VPN 以后会默认将所有流量都走 VPN,如果学校的网络较慢或者访问不了某些网站,就很不方便了。

那么,有没有办法通过自定义规则,只在访问实验室服务器 IP 的时候通过 VPN,访问 Google 等别的网站还是用本机原有的网络呢?因此我的目标是根据 IP 地址进行 VPN 分流:实验室的服务器 IP 使用学校 VPN,其他 IP 地址不使用学校 VPN。

经过一翻摸索,只需要将 VPN 的默认网关关闭,让访问外部网站的流量不再走 VPN,然后在路由表中为实验室的服务器 IP 添加一条路由到 VPN 的特殊规则即可。

下面详细介绍操作步骤,只需要 3 步即可。

步骤

添加 VPN

第一步当然添加学校的 VPN,如果已经添加过可以直接跳过看第 2 步。

使用 windows 内置的 VPN 客户端:设置-网络和 Internet-VPN-添加 VPN。

填写 VPN 服务器地址、用户名和密码等,在 连接名称 里面给这个 VPN 起个名字,**但最好起个英文名称!**用中文名可能会有意想不到的问题,比如与系统代理共存:中文 VPN 名称/校网客户端 + 代理 = Boom?锟斤拷!

请添加图片描述

保存以后打开 VPN,此时应该可以访问学校内网的服务器了。

(这一部分可以跳过)

如果想要了解一点原理,Windows 系统在 CMD 或者 powershell 当中使用 ipconfig /all 可以查看一下本机中的所有网络接口。可以发现里面有一个 VPN 对应的适配器,其中 IPv4 地址一项是这个 VPN 适配器对应的接口地址(Interface)。

请添加图片描述

对比一下开启 VPN 前后的路由表,Windows 系统在 CMD 或者 powershell 当中查看路由表的命令是 route print

>>> route print # 开启 VPN 前
...
IPv4 路由表
===========================================================================
活动路由:
         网络目标           网络掩码               网关              接口   跃点数
          0.0.0.0          0.0.0.0         192.168.31.1    192.168.31.54   8615
        127.0.0.0        255.0.0.0            在链路上         127.0.0.1    331
        127.0.0.1  255.255.255.255            在链路上         127.0.0.1    331
...
===========================================================================
...

>>> route print # 开启 VPN 后
...
IPv4 路由表
===========================================================================
活动路由:
         网络目标           网络掩码               网关              接口   跃点数
          0.0.0.0          0.0.0.0       192.168.31.1    192.168.31.54     12840
          0.0.0.0          0.0.0.0            在链路上    111.186.xx.xxx     46
     111.186.xx.0  255.255.255.255       192.168.31.1    192.168.31.54     4281
   111.186.xx.xxx  255.255.255.255            在链路上    111.186.xx.xxx    301
        127.0.0.0        255.0.0.0            在链路上         127.0.0.1   4556
        127.0.0.1  255.255.255.255            在链路上         127.0.0.1   4556
...
===========================================================================
...

对比一下可以发现,开启 VPN 以后,多了目标 IP 为 0.0.0.0 的规则,默认将所有流量都路由到 VPN 适配器对应的接口。为什么不是根据原来的那条 0.0.0.0 的规则发往 192.168.31.54?因为跃点数(Metric)代表了路由的优先级,越小的优先级越高。新加的这条规则跃点数很低,优先级高,原来的规则就失效了。

活动路由:
         网络目标           网络掩码               网关              接口   跃点数
          0.0.0.0          0.0.0.0            在链路上    111.186.xx.xxx     46

关闭 VPN 的默认网关

添加好 VPN 以后,我们需要关闭 VPN 的默认网关设置,就是让访问外部网站的流量不再走 VPN,换句话说,就是删除 IPv4 路由表当中的这一条:

活动路由:
         网络目标           网络掩码               网关              接口   跃点数
          0.0.0.0          0.0.0.0            在链路上    111.186.xx.xx     46

理论上用 route delete 命令可以直接删除路由表中的表项,但是方便起见我们可以直接在控制面板里面关闭。

打开控制面板:控制面板\网络和 Internet\网络连接

选择 VPN 对应的网络连接,名称是第 1 步当中起的 VPN 名称,右键选择属性:

请添加图片描述

在属性面板选择”高级“标签页,然后选择 IPv4(Internet 协议版本 4),选择”属性“:

请添加图片描述

再选择”高级“:

请添加图片描述

看到里面有一个”在远程网络上使用默认网关“,默认应该是勾选上的,我们取消这个勾选,然后”确定“:

请添加图片描述

关闭以后重新打开 VPN,这时候所有的流量都默认不走 VPN 了,试一下学校内部的网站或者是服务器应该是无法访问的状态,其它网站应该是使用本机原本的网络能够正常访问的。

如果这个时候看一下路由表,会发现目标地址 0.0.0.0 的规则只剩下原本的那条了:

IPv4 路由表
===========================================================================
活动路由:
          网络目标        网络掩码                网关             接口   跃点数
          0.0.0.0          0.0.0.0     192.168.31.1       192.168.31.54   8615
        111.0.0.0        255.0.0.0            在链路上    111.186.xx.xxx     46
     111.186.xx.0  255.255.255.255     192.168.31.1       192.168.31.54     56
   111.186.xx.xxx  255.255.255.255            在链路上    111.186.xx.xxx    301
  111.255.255.255  255.255.255.255            在链路上    111.186.xx.xxx    301
...
===========================================================================
永久路由:
  无
===========================================================================

配置路由表

第三步就是向路由表中添加自定义的规则,将学校内网想要访问的 IP 地址路由给 VPN 适配器。

Windows 系统用管理员模式启动在 CMD 或者 powershell:

首先查看 VPN 适配器的网络接口号,用 route print 命令,在开头的接口列表当中,可以找到 VPN 名称对应的接口号(需要在 VPN 打开的才能找到),这里假设是 42

请添加图片描述

接着用 route 命令添加自定义规则,例如添加想要访问的 IP 地址是 123.123.123.123,IF 后面跟的是上面找到的 VPN 适配器的网络接口号是:

route add -p 123.123.123.123 MASK 255.255.255.255 0.0.0.0 IF 42

-p 参数代表永久添加,系统重启以后仍然保留,MASK 255.255.255.255 代表完全匹配这个 IP 地址,这条命令会将目标地址是 123.123.123.123 的流量发送到指定的网络接口 42,走 VPN。

请添加图片描述

如果有”操作完成!“的提示则代表添加成功。添加完成后,就可以直接访问学校内网指定的服务器了。这时候访问其他网站还是走原来的网络,没有经过 VPN。

(这一部分可以跳过)

检查路由表可以发现这时候多了一条永久路由,由于跃点数(METRIC)设置成了 1,因此这条规则的优先级是最高的:

>>> route print
...
IPv4 路由表
===========================================================================
活动路由:
         网络目标          网络掩码             网关               接口    跃点数
          0.0.0.0          0.0.0.0     192.168.31.1    192.168.31.54   8615
        111.0.0.0        255.0.0.0            在链路上    111.186.xx.xxx     46
     111.186.xx.0  255.255.255.255     192.168.31.1    192.168.31.54     56
...
===========================================================================
永久路由:
  网络地址           网络掩码                    网关地址    跃点数
   123.123.123.123  255.255.255.255            在链路上        1
===========================================================================
...

我们还可以用 tracert 工具查看某个 IP 或者网址的路由路线来确定是否走了 VPN:

tracert 123.123.123.123

比如下面这个路由路线,第一跳发往的是与上面 VPN 相关的地址 111.186.xx.xxx,说明访问这个 IP 走的是 VPN。

请添加图片描述

参考

Windows 路由表根据 IP 段进行 VPN 分流

Windows 路由表详解 - 博客园

How to Add a Static TCP/IP Route to the Windows Routing Table

How to use Tracert/Traceroute

中文 VPN 名称/校网客户端 + 代理 = Boom?锟斤拷!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/879315.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

js 3个事件监听器 EventListeners

起因, 目的: 我有2个显示器。 某视频网站,我想一边播放视频,一边搞其他。但是,当我把鼠标移动到浏览器外面,点击一下别处, 视频就会自动暂停. 这个叫做 事件监听! blur, 在元素或窗口失去焦点…

JSON对接发送短信验证码怎么获取状态报告

现在很多网站的用户注册都会加一个短信验证功能,也就是需要用户填写手机号,然后点击“获取短信验证码”,将收到的短信验证码输入验证通过后方能进行下一步完成注册,现在短信验证码被广泛应用于网站用户注册,还被广泛应…

linux 安装histomicstk

一直安装失败,源码编译也未成功 最后使用这个成功了 pip install histomicstk --find-links https://girder.github.io/large_image_wheels

零基础如何学会Appium自动化测试?

前言 appium是一款移动自动化测试工具,经常被用于实现UI自动化测试,其可支持安卓和IOS两大平台,还支持多种编程,因而得到了广泛的应用。此处便是立足于安卓平台,借助appium工具,使用python语言实现简单的自…

王者荣耀改重复名(java源码)

王者荣耀改重复名 项目简介 “王者荣耀改重复名”是一个基于 Spring Boot 的应用程序,用于生成王者荣耀游戏中的唯一名称。通过简单的接口和前端页面,用户可以输入旧名称并获得一个新的、不重复的名称。 功能特点 生成新名称:提供一个接口…

[mysql]mysql排序和分页

#排序和分页本身是两块内容,因为都比较简单,我们就把它分到通一个内容里. #1排序: SELECT * FROM employees #我们会发现,我们没有做排序操作,但是最后出来的107条结果还是会按顺序发出,而且是每次都一样.这我们就有一个疑惑了,现在我们的数据库是根据什么来排序的,在我们没有进…

【机器学习】--- 自然语言推理(NLI)

引言 随着自然语言处理(NLP)的迅速发展,**自然语言推理(Natural Language Inference, NLI)**已成为一项重要的研究任务。它的目标是判断两个文本片段之间的逻辑关系。这一任务广泛应用于机器阅读理解、问答系统、对话…

二叉搜索树(Java实现)

博主主页: 码农派大星. 数据结构专栏:Java数据结构 数据库专栏:MySQL数据库 JavaEE专栏:JavaEE 关注博主带你了解更多数据结构知识 目录 1.概念 2.实现二叉搜索树 定义节点 查找元素 插入元素 删除元素 1.概念 二叉搜索树又称二叉排序树,或者它是一棵空树,或者是具有…

数字IC设计\FPGA 职位经典笔试面试整理--语法篇 Verilog System Verilog(部分)

注: 资料都是基于网上一些博客分享和自己学习整理而成的 Verilog 1. 数据类型 Verilog一共有19种数据类型 基础四种数据类型:reg型,wire型,integer型,parameter型 reg型   reg类型是寄存器数据类型的关键字。寄存…

镀金引线---

一、沉金和镀金 沉金和镀金都是常见的PCB金手指处理方式,它们各有优劣势,选择哪种方式取决于具体的应用需求和预算。 沉金(ENIG)是一种常用的金手指处理方式,它通过在金手指表面沉积一层金层来提高接触性能和耐腐蚀性…

【C++】模拟实现vector

在上篇中我们已经了解过的vector各种接口的功能使用,接下来我们就试着模拟实现一下吧! 注意:我们在此实现的和C标准库中实现的有所不同,其目的主要是帮助大家大概理解底层原理。 我们模拟vector容器的大致框架是: t…

[SIGGRAPH-24] CharacterGen

[pdf | code | proj] LRM能否用于3D数字人重建?问题在于:1)缺少3D数字人数据;2)重建任意姿态的3D数字人不利于后续绑定和驱动。构建3D数字人数据集:在VRoidHub上采集数据,得到13746个风格化角色…

图片编辑软件,这4款免费又好用!

在这个视觉为王的时代,一张精心编辑的图片往往能瞬间吸引眼球,无论是社交媒体分享、博客配图还是商业宣传,都离不开强大的图片编辑工具。但高昂的软件费用常常让人望而却步。别担心,今天我们就来揭秘4款不仅免费还超级好用的图片编…

OpenAI 刚刚推出 o1 大模型!!突破LLM极限

北京时间 9 月 13 日午夜,OpenAI 正式发布了一系列全新的 AI 大模型,专门用于应对复杂问题。 这一新模型的出现代表了一个重要突破,其具备的复杂推理能力远远超过了以往用于科学、代码和数学等领域的通用模型,能够解决比之前更难的…

在线IP代理检测:保护您的网络安全

在互联网飞速发展的今天,越来越多的人开始意识到网络安全和隐私保护的重要性。在线IP代理检测工具作为一种有效的网络安全手段,能够帮助用户识别和检测IP代理的使用情况,从而更好地保护个人隐私和数据安全。本文将详细介绍在线IP代理检测的相…

​‌Macbook如何玩《黑神话:悟空》‌2024最新详细方法

‌Mac用户可以通过几种方法玩《黑神话:悟空》‌。 ‌使用虚拟机‌:通过Parallels Desktop等虚拟机软件,在Mac上运行Windows系统,并在其中安装和运行《黑神话悟空》。这种方法需要Mac电脑满足游戏的基础配置要求。 不过如果电脑有虚…

AI逻辑推理入门

参考数据鲸 (linklearner.com) 1. 跑通baseline 报名 申领大模型API 模型服务灵积-API-KEY管理 (aliyun.com) 跑通代码 在anaconda新建名为“LLM”的环境,并安装好相应包后,在jupyter notebook上运行baseline01.ipynb 2. 赛题解读 一般情况下,拿到一个赛题之后,我们需…

LeetCode-137. 只出现一次的数字 II【位运算 数组】

LeetCode-137. 只出现一次的数字 II【位运算 数组】 题目描述:解题思路一:解题思路二:符号位一起判断。背诵版解题思路三:0 题目描述: 给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每…

Fiddler抓包工具实战

文章目录 🟢 Fiddler入门到精通👉主要功能👉使用场景 🟢 一、Fiddler抓包和F12抓包对比🟢 二、Fiddler的核心功能🟢 三、Fiddler的工作原理🟢 四、Fiddler功能配置使用👉规则设置&am…

git报错,error: bad signature 0x00000000fatal: index file corrupt

报错 git -c diff.mnemonicprefixfalse -c core.quotepathfalse --no-optional-locks checkout daily --progress error: bad signature 0x00000000 fatal: index file corrupt 原因 git 仓库中索引文损坏 处理 1.该备份的先备份 2.删除索引并重置 rm -f .git/index git r…