看雪安全接入创建虚拟局域网


看雪ksa组建虚拟局域网 简单高效

frp/Zerotier/ksa

除了frp外,想要组建虚拟局域网进行流量转发还有一个很有名的方案就是Zerotier, Zerotier的优点是不需要机器拥有公网ip且配置相当简单,可以在第三方服务器的“牵线”下打洞建立连接,Zerotier介绍。但是缺点也相当明显,进行iperf3测速时,虽然一开始速度能够跑满上传带宽,但在跨运营商(我还不知道同运营商会不会有这个问题)等情况下,只能做“三秒真男人”,速度很快就会骤降,因为Zerotier的传输使用的是udp,而国内目前udp环境恶劣,极易被运营商限制。 有大佬说是因为moon服务器的问题,但是我用国内的阿里云自建了一个moon服务器后,这种状况依旧没有改善太多…原因依旧未知 参考教程

如图,Zerotier一开始跑的相当的快,然而一段时间后就突然暴毙,这种现象在晚高峰尤其常见。
image.png

那么有没有使用tcp来进行p2p连接建立虚拟局域网的软件呢?今天发现了一个神器,看雪安全接入KSA,今天实测tcp打洞(貌似并非tcp)建立连接后跑满了联通机器的上传带宽,且基本不受QOS影响。

但是遇到了一个问题,查看linux服务端,貌似开启的p2p连接是使用udp的,如果强制使用tcp时貌似无法建立p2p连接,而是经过看雪的服务器来中转,这样就很慢了,但是不知道是不是udp伪装成了tcp?ksa要比zerotier稳定很多,可以长时间跑满上传带宽且不会突然失去速度, 希望清楚原因的大佬可以为我解释一下。。

使用ksa打洞连接之后,满速跑了五分钟都没有被制裁
image.png

同一时段frp和ksa对比

  • frp
    image.png

  • ksa
    image.png

    在晚上中转某不可言说之软件后播放视频的速度
    image.png

KSA安装

ksa目前还处于测试阶段,不过也有了linux各种架构的版本了,前往论坛页面下载https://bbs.pediy.com/thread-252417.htm, 官方也有一个简易的教程

ksa需要一个机器运行服务端,另一个机器运行客户端,默认配置文件ksa.conf如下

#[log]=klog.log
#[host]=nat.kanxue.com
#[udp]=0

######## SERVER CFG ########
#[nat_nic]=eth0
#[nat_tun]=2
#[dhcp_ip]=10.0.0.1
#[dhcp_mask]=255.255.255.0
#[dhcp_dns]=114.114.114.114

#[cipher]=aes_256_cfb
#[route]=
#192.168.0.0/255.255.255.0
#192.168.2.0/255.255.255.0
############################

######## CLIENT CFG ########
#[uid]=
#[psk]=
#[tun_name]=ksa_tun1
#[tun_ip]=10.0.0.10
#[fwd]=1
############################

ksa服务端

服务端其实可以不对这个配置文件做任何修改,直接chmod +x ksa_x64再用./ksa_x64即可运行,成功运行后会显示服务端使用的uid以及psk,记下等下用于配置客户端。

注意,服务端的路由配置部分,如果你发现这里面有网段和你本地的网段一样,那么记得手动指明路由,不然可能会和本地冲突导致局域网断连

如我本地使用了192.168.0.0/24的网络,如果不手动指明而是用默认值的话,接入ksa的设备会默认添加一条路由规则,使得192.168.0.0/24的数据也走ksa_tun隧道,这样就会导致局域网无法连接。

[route]=
#192.168.0.0/255.255.255.0
#192.168.2.0/255.255.255.0
10.0.0.0/255.255.255.0

ksa客户端

在客户端上只需要简单修改uid和psk即可,其它的也不用管,运行方式一样。

在服务端和客户端都运行之后,使用ifconfig应该就可以看见虚拟局域网下的ip了。虽然默认[udp]=0但是实际使用种,一开始ksa服务端就显示udp link,不知道为什么…

更新配置后重新运行

在更改配置文件后需要结束进程再重新运行ksa,使用命令
ps aux |grep ksa即可找出ksa进程号并kill。

一些问题的解决

开启ksa后局域网无法连接

在树莓派上使用ksa的时候出现了一个较为麻烦的问题…开启ksa后,ssh即断开。通过先frp把ssh转发到其他的服务器上,再开启ksa,发现ssh依旧可以连接,确认只是局域网断开连接。

使用route -n查看当前的路由规则,发现一条:192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 ksa_tun,使用route del -net 192.168.0.0/24 gw 0.0.0.0 dev ksa_tun删除该规则后局域网中又可以连接了

个人体验

个人体验下,ksa要比zerotier稳定很多,建立局域网后就可以结合socat或者dokodemo-door来中转流量了,不知道同样使用udp(应该)是怎么做到的,之后我还要多多研究。还有就是目前我还不知道两个没有公网ip的机器之间连接效果如何,还有待测试。


文章作者: HavocW
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 HavocW !
评论
  目录