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

news2024/9/21 12:37:20

根据 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?锟斤拷!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

除了 SEO 之外,HTML 语义化还有什么用?

每次碰到 HTML 语义化的话题,几乎 99% 的前端都会想到 SEO。那除了 SEO,你还会想到什么呢?好像没有了。。。 确实,当我们要做 SEO 的时候,往往第一时间都会想到优化 HTML 语义化,久而久之,大家…

Linux下rpm方式部署mysql(国产化生产环境无联网服务器部署实操)

请放心观看,已在正式环境部署验证,流程无问题! 所用系统为国产化麒麟银河 aarch64系统,部署时间2024年9月份! #查看服务器信息 #涉及生产服务器,所以输出信息隐藏了一部分[rootecs-xxxxx hdata]# uname -…

五、CAN总线

目录 一、基础知识 1、can介绍 2、CAN硬件电路 3、CAN电平标准 4、CAN收发器芯片介绍 5、CAN帧格式 ① CAN帧种类 ② CAN数据帧 ③ CAN遥控帧​编辑 ④ 位填充 ⑤ 波形实例 6、接收方数据采样 ① 接收方数据采样遇到的问题 ② 位时序 ③ 硬同步 ④ 再同步 ⑤ 波…

【Delphi】实现接收系统拖动文件

在 Delphi 中,可以通过以下步骤来实现将文件夹中的文件拖动到 Form 上,并在拖动时显示文件类型的光标。我们可以利用 VCL 中的 Drag and Drop 机制来处理拖动操作,以及自定义光标显示。 以下是详细的步骤和代码示例: 实现步骤&a…

MATLAB系列05:自定义函数

MATLAB系列05:自定义函数 5. 自定义函数5.1 MATLAB函数简介5.2 在MATLAB中传递变量:按值传递机制5.3 选择性参数5.4 用全局内存分享数据5.5 在函数两次调用之间本地数据的存储5.6 函数的函数(function functions)5.7 子函数和私有函数5.8 总结 5. 自定义…

问题:WINCC 7.5 结构变量只能是内部变量吗?

问题:WINCC 7.5 结构变量只能是内部变量吗? 答案:不是的呢,你创建结构的时候可以选择外部变量的 如图:工控人加入PLC工业自动化精英社群 #WINCC 7.5##变量##结构##西门子工业支持中心#

css五种定位总结

在 CSS 中,定位(Positioning)主要有五种模式,每种模式的行为和特点不同,以下是 static、relative、absolute、fixed 和 sticky 五种定位方式的对比总结: 1. static(默认定位) 特性…

基于SpringBoot+Vue+MySQL的在线招投标系统

系统展示 用户前台界面 管理员后台界面 系统背景 在当今商业环境中,招投标活动是企业获取项目、资源及合作伙伴的重要途径。然而,传统招投标过程往往繁琐复杂,涉及众多文件交换、信息审核与沟通环节,不仅效率低下,还易…

【强化学习系列】Gym库使用——创建自己的强化学习环境2:拆解官方标准模型源码/规范自定义类+打包自定义环境

目录 一、 官方标准环境的获取与理解 二、根据官方环境源码修改自定义 1.初始化__init__() 2.重置环境 reset() 三、打包环境 1.注册与创建自定义环境 2.环境规范化 在本文的早些时候,曾尝试按照自己的想法搭建自定义的基于gym强化学习环境。 【强化学习系列】Gy…

什么是自然语言处理

自然语言处理(Natural Language Processing, NLP)是计算机科学领域与人工智能领域中的一个重要方向。它研究的是如何实现人与计算机之间使用自然语言进行有效通信的各种理论和方法。以下是关于自然语言处理的详细解释: 一、定义与概述 定义&…

字符编码发展史2 — ISO-8859-N

2.2. 第二个阶段 本地化 2.2.1. ANSI2.2.2. ISO/IEC 8859-N 2.2.2.1. 什么是ISO/IEC 8859-N?2.2.2.2. ISO 8859-1的编码表 上一篇《字符编码发展史1 — ASCII和EASCII》我们讲解了字符编码的起源ASCII和EASCII。本篇我们将继续讲解字符编码的第二个发展阶段中的ISO 8859-N。…

西门子200SMART全面讲解

200 SMART 全面讲解工控人加入PLC工业自动化精英社群 工控人加入PLC工业自动化精英社群

如何打造出强悍的谷歌搜索关键词优化方案揭密

搭建一个成功的关键词优化规划是促进网站在谷歌搜索引擎中取得更强曝光和流量重要。本文将为你揭露七个秘笈,帮助自己打造出强悍的谷歌搜索关键词优化方案。1.目标制定在进行优化关键词以前,必须明确自己的目标。你希望用谷歌搜索引擎获得更多浏览量和访…

C++速通LeetCode简单第5题-回文链表

解法1,堆栈O(n)简单法: /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListN…

一款屏幕录制和视频剪辑软件Camtasia 2024

Camtasia 2024是一款屏幕录制和视频剪辑软件,软件提供了强大的屏幕录像、视频的剪辑和编辑、视频菜单制作、视频剧场、视频播放功能、视屏白板等功能,支持在任何颜色模式下轻松地记录屏幕动作,有需要的朋友快来下载吧! Camtasia 2…

1.pytest基础知识(默认的测试用例的规则以及基础应用)

一、pytest单元测试框架 1)什么是单元测试框架 单元测试是指再软件开发当中,针对软件的最小单位(函数,方法)进行正确性的检查测试。 2)单元测试框架 java:junit和testing python:un…

电脑怎么禁用软件?5个方法速成,小白必入!

电脑禁用软件的方法多种多样,以下是五种简单易行的方法. 适合不同需求的用户,特别是电脑小白。 1. 使用任务管理器禁用启动项 操作步骤:按下“Ctrl Shift Esc”组合键,打开任务管理器。 切换到“启动”选项卡,找到…

计算机毕业设计 家电销售展示平台的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

【活动预告】平陆县2024年“我有拿手戏”群众文艺大展演

庆祝中华人民共和国成立75周年 7天10场演出3场展览 文化给您精彩 “礼赞新中国逐梦新时代” 【活动预告】 平陆县“庆祝中华人民共和国成立75周年”文艺晚会暨“我有拿手戏”群众文艺大展演 7天10场演出3场展览给您精彩 01 平陆县2024年“庆祝中华人民共和国成立75周年”…

小阿轩yx-案例:Prometheus监控kubernetes环境构建

小阿轩yx-案例:Prometheus监控kubernetes环境构建 前言 传统架构中比较流行的监控工具有 Zabbix、Nagios 等,这些监控工具对于 Kubernetes 这类云平台的监控不是很友好,特别是当 Kubernetes 集群中有了成千上万的容器后更是如此 基于 kube…