SoftEtherVPN 异地组网及本地流量分离
安装服务器与客户端并初始化
这个步骤还是比较简单的,网络上有其他人的教程,而本篇文章主要分享的是后续的配置教程(用于异地组网、且不让本地的其他流量经过服务器),因此这里就不详细展开了。
我这里使用的服务端是在Ubuntu服务器上搭建的、修改源码去除了企业版功能限制的自行编译版本,客户端则是官方Github发布的V5版本Client。
需要修改的源码
参考了 这篇文章
(实际上本篇教程使用的方法不需要企业版功能)
文件 src/Cedar/Server.c
if (StrCmpi(region, "JP") == 0 || StrCmpi(region, "CN") == 0)
{
ret = true; // 将 ret 的值改为 false
}
编译过程这里就不写了,不过需要注意的是V5版本的构建命令变成了make -C build
而不是之前的make
。
在构建时可以使用./configure --enable-static
来启用静态构建,方便把二进制文件在不同发行版之间复制。
配置服务端
到这里应该已经安装好了服务端和图形化的管理工具、并且已经设置好端口和防火墙,创建好虚拟HUB了。
现在开始对虚拟HUB进行配置。
接下来启用SecureNAT并点击进入SecureNAT配置页面。
点击复选框禁用虚拟NAT功能,然后根据自己需求配置DHCP服务器的地址范围和子网掩码等。
请确保网卡的IP地址和默认网关地址一致,且网卡的IP地址在子网范围内。
点击确定保存(不需要向客户端推送静态路由表)。
如果之前向SoftEther客户端推送过静态路由表(客户端连接过),请在客户端删除路由条目(可以通过route print
查看(Windows)),最方便快速的方法是删除SoftEther客户端连接所使用的虚拟网络适配器并重新创建。
至此虚拟HUB配置完成。
客户端配置
软件配置
现在开始配置客户端。
输入配置名称和服务器、端口、虚拟HUB名称、账号密码等信息,选择一个虚拟网卡,点击“确定”。
在“高级设置”中可以按需调整“TCP连接数”、“使用SSL加密VPN会话”、“使用数据压缩”等选项。
网卡配置
连接添加完成后先不要着急启动,先右键之前选择的虚拟网络适配器,选择“打开Windows网络连接”:
然后会打开控制面板。找到名称一样的网卡,右键打开属性。
选择“Internet 协议版本 4”,点击属性按钮。
进入高级设置:
勾选启用自动跃点:
然后确定保存。
至此客户端配置完成。
效果测试
此时查看路由表(
route print
)可以发现VPN虚拟网卡的跃点比正常网卡高,因此0.0.0.0流量会优先走本地网卡,实现流量分离。
可以通过抓包或在线IP查询网站来验证。
文章内如果存在错误,欢迎在评论区指出。