系统运维

SoftEther VPN如何实现隧道拆分

温馨提示:本文最后更新于2022-11-09 09:25:17,某些文章具有时效性,若有错误或已失效,请在下方留言或问题自助查询
当前位置: 首页 » 系统运维 » SoftEther VPN如何实现隧道拆分
浅时光博客 · 11月7日 · 2022年 本文1648个字,预计阅读5分钟 8346次已读

一、场景描述


我之前在下面的文章里面分享了如何搭建部署SoftEther VPN实现在家访问公司内部网络;部署的方式是直接采用的官方编译好的二进制包直接部署的,这种部署方式虽然可以实现外部访问内网环境,但是也存在一个问题,就是无法实现静态路由推送功能(隧道拆分),最直接的现象就是你在家里面连接了VPN之后,会发现你的本地网络很慢,这就是因为连接VPN之后你的本地网络也完全是通过VPN进行代理的,所以这就是导致本地网络很卡很慢的原因。今天这篇文章就带大家解决这个问题。

远程网关与本地网关

对于VPN来说,存在远程网关与本地网关的概念

  • 如果使用远程网关,默认路由均走VPN隧道,这样VPN服务器压力较大,而且日常的网络访问都需要从VPN服务器作为出口,很显然作为远程接入公司网络该场景使用不太合理
  • 如果使用本地网关,默认路由走的是本地的网络出口

二、修改源码


特别说明:对于Softether VPN 来说,拆分隧道功能并不适合官方下载的版本,从网上查到的信息,某些地区不可以使用该功能在内的一部分功能(当然仅限于官方下载的编译好的版本,对于自己进行源码编译是不限制的),如下图所示:

SoftEther VPN如何实现隧道拆分-浅时光博客

注意:下载源代码时,一定选择旧版本,V4.34之前的版本,包括4.34;4.34之后的版本,在CentOS 7系统中无法编译成功,缺依赖组件以及C标头文件跟各类函数库文件;最新版本我这边测试在Cent OS 8、Rocky Linux9和ubuntu系统可以编译通过!

SiIsEnterpriseFunctionsRestrictedOnOpenSource函数中调用了SiGetCurrentRegion函数,最终的逻辑判断还是发生在SiIsEnterpriseFunctionsRestrictedOnOpenSource函数该段代码

[root@devops v4.34-9744]# vim src/Cedar/Server.c
if (StrCmpi(region, "JP") == 0 || StrCmpi(region, "CN") == 0)
{
  ret = true;  //我们直接把 ret 的赋值改为 false
}
SoftEther VPN如何实现隧道拆分-浅时光博客

三、编译安装


[root@devops v4.34-9744]# yum -y groupinstall "Development Tools"
[root@devops v4.34-9744]# yum install build-essential zlib-devel openssl openssl-devel readline-devel ncurses-devel unixODBC unixODBC-devel make gcc gcc-c++ ncurses-devel tk tc xz

[root@devops v4.34-9744]# ./configure
[root@devops v4.39-9772]# make
[root@devops v4.39-9772]# make install

四、隧道拆分


1、管理虚拟HUB

上面我们编译完之后启动VPN服务端,然后我们如果开启隧道拆分功能呢?请按照下面的操作进行设置即可。

SoftEther VPN如何实现隧道拆分-浅时光博客
SoftEther VPN如何实现隧道拆分-浅时光博客
SoftEther VPN如何实现隧道拆分-浅时光博客

路由条目的格式如下:

IP网络地址/子网掩码/网关IP地址(即VPN服务器网关)

以我的内部服务器IP 192.168.3.0 为例,它的路由条目可以定义如下:(多个路由条目用都逗号结尾,并在下一行添加新的路由)

192.168.3.0/255.255.255.0/192.168.30.1

SoftEther VPN如何实现隧道拆分-浅时光博客

2、修改VPN网卡

上面配置好之后,我们需要配置下VPN软件在本地PC机上创建的网卡,开启

SoftEther VPN如何实现隧道拆分-浅时光博客
SoftEther VPN如何实现隧道拆分-浅时光博客
SoftEther VPN如何实现隧道拆分-浅时光博客
SoftEther VPN如何实现隧道拆分-浅时光博客
SoftEther VPN如何实现隧道拆分-浅时光博客
SoftEther VPN如何实现隧道拆分-浅时光博客

以上配置完成之后,然后你再次连接VPN,抓包可以测试下网络走向

今天文章就先到这吧,溜了溜了~~~ 如果文章对你有帮助就动动你那发财的小手,点个赞留个言,给本站加点热度。谢谢支持!




关注本站官方微信公众号『精彩程序人生』

扫描左侧二维码关注我们的微信公众帐号,在微信公众帐号中回复【资料】获取IT技术文档。
关注博主不迷路~


本文作者:浅时光博客
原文链接:https://www.dqzboy.com/10965.html
版权声明:知识共享署名-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)协议进行许可,转载时请以超链接形式标明文章原始出处和作者信息
免责声明:本站发布的内容(图片、视频和文字)以及一切破解补丁、注册激活和软件解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。访问和下载本站内容,说明您已同意上述条款!


3 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!

  1. MK广东·深圳2022-11-11 · 10:35

    第一个步骤都没看懂,这配置文件是怎么生成的

    • 浅时光博客2022-11-11 · 12:48

      那是源码文件里面的文件,你这都看不懂吗?

      • MK广东·深圳2022-11-11 · 14:21

        你这样说就能懂了

本站已稳定运行: | 耗时 0.234 秒 | 查询 85 次 | 内存 11.22 MB