cb3d1ba14d3e8c18b8bc2465a10157a399a26b81
问题: 1. 网卡扫描得到的 local_ipv4s 被 vec![local_ipv4] 整体覆盖; local_ipv4() 探测失败且扫描为空时回退为 0.0.0.0 并发布出去。 2. udp/tcp socket manager 及 local_ports 的多处 unwrap 在管理器 未就绪时直接 panic,永久杀死 NAT 刷新任务(30 分钟循环)。 修复: - 抽出 select_local_ipv4:探测地址无效时回退到扫描结果首地址, 主地址并入列表首位且不覆盖其余扫描结果;无任何可用地址时 跳过本次发布。 - socket manager 未就绪/查询失败时记录日志并跳过本次更新 (tcp 端口缺失时置 0),30 分钟后正常重试。 测试:select_local_ipv4 四种场景(探测有效/回退扫描/去重/全空)。
VNT
一个简单、高效、能快速组建虚拟局域网的工具
快速开始
简单说明
- vnt2_cli 是一个纯命令行组网工具,可以从命令行参数或配置文件快速启动组网
- vnt2_ctrl 和vnt2_cli搭配使用,vnt2_cli后台运行时,可以用vnt2_ctrl来获取组网状态
- vnt2_web 是一个集成web服务的组网工具,带web页面,可以在页面上操作组网
使用vnt2_cli组网
使用方式和vnt1.0一样,只是增减了一些功能,具体参数请查看 -h
# 启动程序 服务端可以使用101.35.230.139:6660
./vnt2_cli -k 123456 -s 101.35.230.139:6660
# 查看组网信息
./vnt2_ctrl info
使用vnt2_web组网
-
启动程序
# 启动程序 ./vnt2_web -
浏览器打开 http://127.0.0.1:19099
-
在页面上添加组网配置,再启动组网
VNT2.0新特性
- 提升安全性,支持tcp-tls、quic、wss协议连接服务器,和服务端强制使用tls加密,并支持证书绑定,防止伪造服务端攻击
- 提升流量稳定性,支持使用quic代理流量,支持FEC冗余传输
- 简化操作,去除了大量vnt1.0的重复和无用的配置参数
- vnt-link、vnt合二为一
- 支持有tun模式、无tun模式、端口映射
- 全功能的情况下,减少程序体积
- 性能提升,支持linux-offload
- 更规范的api接入,可以轻松自定义客户端
- 支持同时连接多个服务端,可以容灾和负载均衡
说明
vnt2.0整体重构了一遍,和1.0不兼容,同时也可能引入新的bug,欢迎反馈
其他平台后续再推出
相关库
- tun虚拟网卡(https://github.com/tun-rs/tun-rs)
- 路由设置(https://github.com/tun-rs/route_manager)
- 用户态协议栈(用于quic代理和无tun模式出口)(https://github.com/rustp2p/tcp_ip)
- 打洞通道处理(https://github.com/rustp2p/rustp2p/tree/master/rustp2p-core)
Languages
Rust
100%