系统运维

SoftEther VPN如何实现隧道拆分

浅时光博客 · 11月7日 · 2022年 4.8w 次已读

一、场景描述


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

远程网关与本地网关

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

  • 如果使用远程网关,默认路由均走VPN隧道,这样VPN服务器压力较大,而且日常的网络访问都需要从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
}

三、编译安装


[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服务端,然后我们如果开启隧道拆分功能呢?请按照下面的操作进行设置即可。

路由条目的格式如下:

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

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

192.168.3.0/255.255.255.0/192.168.30.1

2、修改VPN网卡

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

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

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


本文作者:浅时光博客
原文链接:https://www.dqzboy.com/10965.html
版权声明:知识共享署名-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)协议进行许可,转载时请以>超链接形式标明文章原始出处和作者信息
免责声明:本站内容仅供个人学习与研究,严禁用于商业或非法目的。请在下载后24小时内删除相应内容。继续浏览或下载即表明您接受上述条件,任何后果由用户自行承担。

3 条回应

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

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

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

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

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

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

        你这样说就能懂了