← 返回

由内网穿透以后解决的跨网延迟问题

内网中远控三杀造成的后果

由于前段时间内网中封杀了几乎所有远控协议,连第三方知名远程控制软件向日葵也被直接干废了,SSH、SMB、RDP这三大协议全都无法使用,无论是内网访问外网,还是内网访问内网都不能使用这三个协议,更狠的是所有ipv6都不能用了, 但是还保留地址分配功能,这样更坑爹,能解析出AAAA记录并访问,但是却始终访问不到,造成内网中路由器挤压了大量错误缓存。

解决方案的再度升级

为了解决这个问题,首先想到的是加密隧道,用加密来对抗封锁是个常见思路,只要内网的网管层面看不懂我的数据流是什么协议的,它也就只会当成是一个普通的加密数据放行了。因为本身内网封杀远控协议就是为了防御黑客攻击的, 之所以把内网到内网的远控也切断了,就是为了防止病毒和木马的扩散,在公网上全都是独立NAT环境,所以不存在病毒扩散的问题,顶多在一个小型路由器的范围内活动,但是企业内网的内部之间可是四通八达的,不控制一下就会任由病毒肆意扩散。 所以加密传输远控协议与内网网关的思路并不冲突,加密后的远控协议必须被另一端解密后才能通信,而黑客的木马病毒是没有内网机器配合他解密后在攻击的,所以这个方案没有什么问题。只是这样就会依赖外网中有公网IP的服务器提供支持, 但是公网服务器的流量费非常贵,长期下去不是持久之计,尤其是远程桌面用途还是比较费流量的。

在这个背景下,本来还可以用内网的ipv6地址把一部分控制端口反向代理到一个家用宽带中的服务端上,然后再通过这个服务端设备访问内网服务,这样就不用额外花钱了。但是现在ipv6全都被干掉了,这套方案不再可行。 正在苦于不仅无法内网穿透,也没有ipv6地址可用的时候,正好想起几年前还买过一个插卡路由器,而且手上正好有一个闲置的手机卡,本身就是装宽带的时候办的卡,和宽带同属一个运营商,如果把它放到内网的话,这不就能直接进行ipv6的内网穿透了吗?

昨晚装上后调试了一下,原本还嫌这个路由器只支持手机的4G信号速度不够快,而且用它作为主力以后可能访问内网其他服务又会增加新的麻烦。但是把它的网线往电脑上插入后发现有线网卡竟然可以和无线网卡同时存在,也就是双网卡模式, 然后只需要修改一下两个网卡之间的优先级就可以完美分流。所有ipv4的流量都优先通过wifi网卡走原来的内网访问,无论目标在内部还是外部都可以顺利访问,和原来几乎一样,所有的ipv6流量都走插卡路由器的手机卡流量,因为只有它有ipv6地址,不需要分流。 这时候通过这个ipv6地址再与家庭宽带内的树莓派建立反向代理隧道,就弥补了没有ipv6地址以后造成的空缺。

使用体验

经过测试后发现,效果比想象中的更好,因为同城联通网络之间的延迟非常低,只有15ms,无论是远程桌面还是网盘都非常稳定。之前那种反代方式,无论是ipv6直连反代还是经过阿里云中继反代,总之是流量都得去北京附近绕一圈才能回来,总延迟通常超过60ms, 实属舍近求远。现在这个延迟直接秒杀所有云计算方案,原本还在考虑为了降低延迟是否从三大运营商的平台上购买一个本地云计算节点,但是非常贵就放弃了。现在的使用方式直接将线路彻底拉直,没有比这更快的了,而且4G的带宽也足够了,因为家庭宽带的上行带宽只有50M, 外面这个客户端就算速度再快也没用,对于远控来说这个双向50M左右的稳定带宽是完全够用了。所以这个方案就非常舒服了。

技术遗憾

用这个方案虽然能完美解决没有ipv6和反向代理的问题,但是无线网卡一旦断了网并不会自动重新连接,必须手动连接一下才能恢复。这个没什么更好的办法。不过当有线网卡断网以后,无线网卡反而能瞬间秒连,可能是当有线网卡有网的情况下,系统默认不需要连接wifi吧。

总结

只是多了一个公网出口,内网中还是存在对远控协议的继续封杀,现在的解决办法本质上是换了另一个ipv6的线路,只是部分解决了问题,只不过对于反向代理的优化产生了本质性的提升,所以综合体验是正向的收益。

最意外的就是双网卡模式的使用体验,以前还真没完整接触过家用机级别的双网卡模式,跨网通信被一个设备完成。之前总在考虑如何解决内网穿透延迟过高的绕路问题,现在换了个思路,不用解决绕路了,直接用同一个运营商无线终端把线拉直就行了。 这个尝试很有价值,以后在其他环境中如果需要内网穿透的话,并不需要依赖于云计算中继,而是直接用插卡路由器反代给同城的家用宽带即可,效果更好而且成本很低。