在之前的文章中,我们已经介绍了如何在NAS上部署VNT这一强大的内网穿透和组网工具。本文将深入探讨一种无需创建虚拟网卡即可实现组网的高级玩法,通过具体实例展示其应用场景和操作步骤。
无Root权限组网进阶
在上一篇文章中提到,实现组网通常需要Root或管理员权限。然而,在实际应用中,部分设备可能无法获取Root权限,或者出于安全考虑不希望开放Root权限。针对这种情况,我们该如何完成组网呢?
VNT官方已经提供了解决方案,支持在无权限创建虚拟网卡的场景下进行组网。下载程序包并解压后,我们会获得两个关键文件:
- vnt-cli:默认需要Root权限,并会创建vnt-tun虚拟网卡
- vn-link-cli:无需Root权限,也不会创建虚拟网卡。本文将重点介绍如何使用vn-link-cli实现无Root组网
测试环境配置
为了便于理解后续的启动配置,我们先列出测试环境的具体信息:
- 家庭N100-Nas:运行OMV系统,IP地址为
192.168.31.30,所属网段为192.168.31.0/24 - 家庭J1900-Nas:运行飞牛FNOS系统,IP地址为
192.168.31.20,所属网段为192.168.31.0/24 - 公司笔记本电脑:IP地址为
192.168.1.15,所属网段为192.168.1.0/24
家庭N100-Nas启动配置
使用vn-link-cli启动服务的命令如下:
./vn-link-cli -k nas_shengji_waner -n omv-n100 -o 192.168.31.0/24
启动参数与之前相同,不做赘述。启动后需记录屏幕上显示的IP地址,例如ip=10.26.0.2,该地址表示分配给Nas的组网IP,后续在Windows系统中需要使用。
公司笔记本电脑启动:点对点连接
使用vn-link-cli启动点对点连接的命令:
.\vn-link-cli.exe -k nas_shengji_waner -n win11 --vnt-mapping "tcp:9091-10.26.0.2:9091"
命令行中的启动参数--vnt-mapping "tcp:9091-10.26.0.2:9091"是实现无Root组网的核心要素。
下面详细解析该参数的组成部分:
- 参数末尾的
10.26.0.2:9091表示Nas的组网IP地址和其上运行的transmission服务端口 - 参数前面的
9091表示将Nas上的9091端口映射到公司电脑的9091端口,该映射端口可根据实际需求进行调整 - 参数最前面的
tcp指定协议类型,可选值为tcp或udp,常规访问通常使用tcp协议,游戏类应用可能使用udp协议
该参数的整体含义是将家庭Nas上的transmission服务映射到公司电脑的9091端口。当访问公司电脑的9091端口时,实际上相当于直接访问家庭环境中的transmission服务。
实践验证效果
在公司电脑上通过浏览器访问地址:http://127.0.0.1:9091

成功打开家庭环境中的transmission服务,所有操作功能均正常使用,体验与直接在家操作Nas完全一致。
需要注意的是,通过这种组网方式访问映射端口时,必须使用127.0.0.1这个IP地址。
公司笔记本电脑启动:点对网连接
点对网连接支持访问家庭网络中其他设备上的服务。使用vn-link-cli启动点对网连接的命令:
.\vn-link-cli.exe -k nas_shengji_waner -n win11 --vnt-mapping "tcp:9091-10.26.0.2:9091" --vnt-mapping "tcp:3510-192.168.31.1:8080" -i 192.168.31.0/24,10.26.0.2
此命令新增了两个重要参数:
--vnt-mapping "tcp:3510-192.168.31.1:8080":将家庭路由器服务映射到公司电脑的3510端口-i 192.168.31.0/24,10.26.0.2:将192.168.31.1这个IP地址的数据流转发到10.26.0.2组网IP,即转发至家庭Nas
实践验证效果
在公司电脑上通过浏览器访问地址:http://127.0.0.1:3510

立即成功访问家庭环境中的小米路由器,登录和各项操作功能均正常运行。
总结与扩展
- 这种组网方式本质上属于端口映射技术
- 官方将其定义为
无权限无tun模块组网 - 基于虚拟网卡(tun模块)的组网方式最为便捷,无需过多端口配置。而无Root组网在某些特定场景下具有独特优势,用户可根据实际需求选择合适方案
此外,我们还可以探索更多应用场景:
- 在VPS上通过上述方式映射多个端口,并将域名解析至映射端口,实现不安装vnt程序即可随时随地通过域名访问家庭服务
- 这种方式与FRP类似,但在新增映射端口时只需在VPS上进行配置,操作更加灵活便捷
- 在VPS上使用虚拟网卡组网方式,结合nginx的http和stream模块,将各个子域名通过nginx分流至虚拟网卡,实现无需端口配置即可访问家庭网络中任意设备的任意服务,同时免去安装vnt程序的步骤
以上方案目前尚处于构想阶段,VNT工具的功能十分强大,我们正在深入研究其网对网功能。如果读者有兴趣或已经实践过上述方案,欢迎分享经验心得。