玩转物联网——FS-Dongle-F8X0M1 上电初体验,Windows/Linux 下 RNDIS 拨号上网全过程
前言上一篇开箱分享发出去后评论区有好几个朋友问同一个问题这个上网棒真的插上就能用吗不用装驱动“说实话我当时也有这个疑问。开箱只是看了个外观到底能不能免驱即用”得插上电脑才知道。这篇文章记录了我从插 SIM 卡到两个平台Windows Linux 树莓派成功上网的全过程包括系统怎么识别成网卡、RNDIS/ECM 拨号是怎么自动完成的、网速实测以及中间踩的几个坑。如果你也刚拿到 FS-Dongle-F8X0M1跟着这篇走应该能少走点弯路。一、硬件准备上电之前先把东西备齐器材用途备注FS-Dongle-F8X0M1今天的主角上篇开箱那支带注塑外壳版Nano SIM 卡4G 流量卡我用的是移动卡联通电信也行Windows 电脑测试 RNDIS 拨号Windows 11笔记本有 USB 口树莓派 4B测试 Linux 下 ECM 拨号装的是 Raspberry Pi OS64 位USB 延长线可选方便插拔笔记本 USB 口太挤的话用一根延长线就这些比 FS100P 那次接线简单多了——没有杜邦线、没有 USB 转 TTL、没有交叉接线的问题FS-Dongle 本身就是一个 USB 设备插上就行。SIM 卡这一步先做了翻到上网棒侧面找到那个插拔式 Nano 卡座把 Nano SIM 卡金手指朝下推进去听到咔一声就到位了。卡座手感挺紧实的不会一碰就掉。注意插卡之前先确认 SIM 卡已经激活了 4G 流量套餐。我第一次用的是一张欠费的卡折腾了半天以为设备坏了充了话费就好了后面踩坑记录会细说。二、Windows 下插上就是一张网卡插入 USB把 FS-Dongle-F8X0M1 插到笔记本的 USB 口上。上电瞬间棒身上的两颗 LED 会亮LED状态说明电源指示灯常亮红色USB 取电成功模块已通电网络指示灯慢闪约 2 秒一次正在搜索网络 / 注册中大概等了 10-15 秒网络指示灯从慢闪变成了快闪约 0.5 秒一次说明已经注册上 4G 网络了。系统识别——真的免驱接下来就是见证免驱 RNDIS的时刻了。打开 Windows 的设备管理器WinX → 设备管理器展开网络适配器看下图不需要装驱动。不需要跑拨号软件。不需要配 APN。系统直接把它当一张普通网卡识别了。再打开网络连接面板设置 → 网络和 Internet → 状态 → 查看网络属性可以看到这张新网卡已经自动获取到了一个 IP 地址类似192.168.x.x或运营商分配的内部地址。到这一步理论上就已经能上网了。来验证一下。验证上网打开浏览器访问一个网页——直接就通了。打开命令行ping一下百度延迟 37ms0 丢包——Cat.1 的表现比我预期要好。之前用手机热点共享上网 ping 百度都要 60-80ms这个表现完全够做 IoT 数据回传了。说实话这个插上就能用的体验确实省心。之前用 Cat.1 模组做联网光驱动和拨号脚本就折腾了两天。FS-Dongle 把这些全封装在固件里了用户侧只需要面对一张网卡——跟插网线没本质区别。三、Linux树莓派下同样免驱即用Windows 测试完换到树莓派上试试。这也是我最终要用的场景——Linux 工控板。插入树莓派 USB 口把 FS-Dongle 从笔记本上拔下来插到树莓派 4B 的 USB 口上。同样电源灯常亮网络灯先慢闪后快闪。系统识别Linux 下用的是CDC-ECM协议Linux 原生的 USB 以太网驱动系统内核自带的cdc_ether模块自动加载不需要安装任何额外驱动。# 查看内核日志确认设备识别过程dmesg|tail-30# 输出示例#[121866.955610] audit: type1400 audit(1764151606.932:88): apparmorSTATUS operationprofile_replace profileunconfined namesnap-update-ns.firefox pid30603 commapparmor_parser#[121868.657443] audit: type1400 audit(1764151608.634:89): apparmorSTATUS operationprofile_replace profileunconfined namesnap.firefox.firefox pid30504 commapparmor_parser验证上网# ping 测试pingbaidu.com# 输出示例# PING baidu.com (110.242.68.66) 56(84) bytes of data.# 64 bytes from 111.63.65.247: icmp_seq1 ttl51 time87.9 ms# 64 bytes from 111.63.65.247: icmp_seq2 ttl51 time67.8 ms# 64 bytes from 111.63.65.247: icmp_seq3 ttl51 time70.8 ms# 64 bytes from 111.63.65.247: icmp_seq4 ttl51 time81.4 ms通了。延迟 60-80ms。对比 Windows 和 Linux 的识别差异对比项WindowsLinux树莓派识别协议RNDISCDC-ECM驱动安装系统自带免驱内核自带 cdc_ether 模块免驱网卡名称“USB RNDIS Adapter”usb0 / eth1IP 获取自动 DHCP自动 DHCP拨号方式固件内部自动完成固件内部自动完成插上到上网约 15 秒约 15 秒两个平台的体验基本一致——都是插上等十几秒就能上网。差别只在系统识别的协议名不同Windows 叫 RNDISLinux 叫 ECM但对用户来说是透明的不需要关心底层细节。这也是 FS-Dongle 最核心的设计理念把 4G 拨号的所有复杂度封装在固件里对外只暴露一张标准网卡接口。不管什么系统只要认识网卡就能上网。四、RNDIS/ECM 拨号原理——到底发生了什么可能有人好奇不是说要拨号吗怎么感觉什么都没干就上网了其实拨号过程在模块内部自动完成了。我来拆解一下从插上 USB到能上网中间发生了什么用户侧 FS-Dongle 内部 运营商网络 ────── ────────────── ────────── 1. 插入 USB → 模组上电USB 枚举完成 → 向主机上报 RNDIS/ECM 网卡设备 主机识别到一张新网卡 2. 模组自动拨号 → ATCFUN1开启射频 → 搜索 4G 基站附着网络 → ATD*99***1#发起数据拨号 → 获取运营商分配的 IP 地址 → 通过 USB 将 IP 透传给主机 3. 网卡获得 IP 主机网卡拿到 IP ← 模块通过 RNDIS/ECM 通道回传 IP 主机可以上网了 ← 模块维持 4G 数据链路 ← → 互联网关键点用户不需要手动执行任何 AT 指令或拨号脚本模块固件在开机时自动完成了搜网 → 附着 → 拨号 → 获取 IP → 透传给主机这一整套流程。用户感知到的只是多了一张网卡有 IP能上网。这就是 RNDIS/ECM 拨号和传统 PPP 拨号的本质区别对比项传统 PPP 拨号RNDIS/ECM 拨号FS-Dongle拨号方式主机侧运行 pppd / 拨号软件模块固件内部自动完成驱动需要安装 USB 串口驱动系统原生 RNDIS/ECM免驱APN 配置手动在拨号脚本里设置模块固件预置自动选择用户操作装驱动 → 写脚本 → 执行拨号插上 USB → 等十几秒失败排查看日志分析 AT 响应看网卡有没有 IP看灯状态一句话PPP 拨号是你教电脑怎么上网RNDIS 拨号是模块帮你把网通好你只管用。五、网速实测光 ping 通不算数得看看实际吞吐量够不够用。测试环境项目说明运营商中国移动 4GCat.1信号强度满格办公室靠窗位置测试平台Windows 10 笔记本测试工具speedtest-cli命令行版 Speedtest测试时间工作日下午 3 点非高峰期测试结果跑了 5 次 speedtest取最好和最差结果指标最好成绩最差成绩平均下载速率8.7 Mbps5.2 Mbps6.8 Mbps上传速率4.1 Mbps2.8 Mbps3.5 Mbps延迟42 ms68 ms52 ms对比 FS-Dongle-F8X0M1 标称的 Cat.1 速率FDD 下行最大 10Mbps / 上行 5Mbps实测平均下载 6.8Mbps、上传 3.5Mbps基本跑到了标称的 70% 左右——考虑基站负载和信号衰减这个成绩完全合理。实际场景模拟光看 speedtest 数字没感觉我模拟了几个实际 IoT 场景场景 1MQTT 数据回传小数据包用 mosquitto_pub 每秒发一条 200 字节的 JSON 数据到云端 MQTT broker持续 5 分钟。发送成功率100%平均延迟48ms5 分钟内无丢包场景 2文件上传中等数据包用 curl 上传一个 1MB 的图片文件到服务器。上传耗时约 3.2 秒平均上传速率约 2.6 Mbps上传过程中网络稳定无中断场景 3SSH 远程登录通过 FS-Dongle 的 4G 网络从外网 SSH 登录到树莓派树莓派上跑了 frp 内网穿透。SSH 连接建立正常命令交互延迟50-80ms操作体验有轻微延迟感但日常运维完全可用断线重连中间基站切换过一次SSH 断了约 5 秒后自动恢复结论Cat.1 的速率定位就是 IoT 数据回传不是拿来看视频的。做传感器数据上报、远程运维、文件上传这些场景6-8Mbps 的下载和 3-4Mbps 的上传完全够用。而且 Cat.1 的资费比 full 4G 便宜很多对大规模部署来说成本优势明显。六、踩坑记录过程不是完全顺利的踩了几个坑分享一下坑1SIM 卡欠费折腾半天以为设备坏了症状插入 USB 后电源灯常亮但网络灯一直慢闪过了两分钟还是不上网。设备管理器里网卡出现了但拿不到 IP。排查首先怀疑是驱动问题——但 Windows 都识别成网卡了驱动应该没问题。然后怀疑是信号问题拿到窗边还是一样。最后想到会不会是卡的问题……解决掏出手机把 SIM 卡插进去发现——卡欠费了。充了话费重新插回 FS-Dongle十几秒后网络灯变快闪上网了。经验排障的时候先排除最低级的问题。卡欠费、卡没激活、卡插反了这三个蠢问题要先确认。坑2Windows 下网卡优先级冲突症状插上 FS-Dongle 后笔记本原本连着 WiFi结果网页打不开了。拔掉 FS-DongleWiFi 又正常了。原因Windows 同时有两张网卡WiFi 和 RNDIS默认路由冲突了。系统可能把默认网关指向了 FS-Dongle 的 4G 网卡但 4G 链路还没完全建好导致所有流量都走不通。解决调整网卡优先级。打开网络连接→右键 WiFi 网卡→属性→IPv4→高级→取消自动跃点→手动填一个较小的数字比如 10。这样 Windows 会优先走 WiFiFS-Dongle 作为备用网卡。或者在命令行手动调整# 查看网卡列表和接口索引 netsh interface ipv4 show interfaces # 设置 WiFi 网卡优先级InterfaceIndex 替换为实际值 netsh interface ipv4 set interface Wi-Fi metric10 netsh interface ipv4 set interface USB RNDIS Adapter metric50经验如果同时有多个网络接口注意路由优先级。做 IoT 测试时最好只保留 FS-Dongle 这一张网卡断开 WiFi 和有线避免路由冲突。坑3树莓派下网卡名称不确定症状树莓派上插上 FS-Dongle 后ip addr显示的网卡名称有时是usb0有时是eth1重启后又变了。原因Linux 的网卡命名规则取决于设备插入顺序和 udev 规则。如果有多个 USB 网卡设备名称可能漂移。解决写一个 udev 规则固定网卡名称。根据dmesg里识别到的设备信息给 FS-Dongle 分配固定的网卡名。# 查看设备信息dmesg|grepcdc_ether# 创建 udev 规则sudonano/etc/udev/rules.d/70-fs-dongle.rules# 写入以下内容根据实际 MAC 地址修改SUBSYSTEMnet, ATTR{address}xx:xx:xx:xx:xx:xx,NAMEfsdongle0保存后重启 udevsudoudevadm control --reload-rulessudoudevadm trigger以后每次插入 FS-Dongle网卡名就固定是fsdongle0了。经验如果脚本里要引用网卡名称不要用自动分配的名字用 udev 规则固定下来最靠谱。坑4长时间运行偶发断网症状FS-Dongle 连续运行 3-4 小时后偶尔会断网。网络灯不闪了网卡还在但 ping 不通外网。拔插一次 USB 恢复正常。排查不确定是基站切换导致模块内部状态卡死还是 4G 链路掉线后没自动重连。观察了几次发现在信号偏弱的位置更容易出现。解决暂时用了个 workaround——在树莓派上写了个监控脚本每分钟 ping 一次连续 3 次失败就自动重启网卡接口#!/bin/bash# fsdongle_watchdog.sh# crontab: * * * * * /home/pi/fsdongle_watchdog.shIFACEfsdongle0FAIL_COUNT_FILE/tmp/fsdongle_fail_countif!ping-c1-W5-I$IFACE8.8.8.8/dev/null21;thencount$(cat$FAIL_COUNT_FILE2/dev/null||echo0)count$((count1))echo$count$FAIL_COUNT_FILEif[$count-ge3];then# 连续 3 次失败重启网卡sudoiplinkset$IFACEdownsleep2sudoiplinkset$IFACEupecho0$FAIL_COUNT_FILEloggerFS-Dongle watchdog: network interface restartedfielseecho0$FAIL_COUNT_FILEfi加了这个看门狗后断网后大约 1 分钟就能自动恢复对无人值守的工控场景来说够用了。后续会跟飞思创技术支持反馈这个问题看看是不是固件层面能优化重连逻辑。七、上手难度评价总体来说FS-Dongle-F8X0M1 的上手难度非常低。如果你有以下基础10 分钟就能跑通会插 USB会用命令行 ping 测试SIM 卡没欠费这条最重要别问我怎么知道的对比一下三种 4G 联网方案的上手难度方案上手步骤数需要写代码吗预计耗时Cat.1 模组 PPP 拨号7 步装驱动→配 usb_modeswitch→写 pppd 脚本→设 APN→拨号→调试→调试→调试是1-2 天4G 路由器4 步插卡→通电→配置 WiFi→连 WiFi否30 分钟FS-DongleRNDIS/ECM2 步插卡→插 USB否1-2 分钟说实话这个上手体验比我预期还好。开箱时我说免驱 RNDIS 是最大卖点上电实测后发现——它真的做到了。从 Windows 到 Linux没有一个平台需要装驱动或写拨号脚本真正的即插即用。唯一的小遗憾是长时间运行的断网问题但加个看门狗脚本也能兜底。如果是做正式项目部署建议跟厂家确认固件版本是否有已知的重连 bug或者等后续固件更新。小结从插 SIM 卡到两个平台成功上网整个过程不到 20 分钟含踩坑时间。FS-Dongle-F8X0M1 的免驱 RNDIS/ECM不是宣传话术实测确实做到了插上就上网。几个感受Windows 体验最丝滑——插上就是一张网卡不需要任何操作Linux树莓派同样免驱——cdc_ether 内核模块自动加载体验和 Windows 一致拨号过程全透明——模块固件内部自动完成搜网、附着、拨号、获取 IP用户只需要面对一张网卡Cat.1 速率够用——平均下载 6.8Mbps、上传 3.5Mbps做 IoT 数据回传富余得很长时间运行注意加看门狗——偶发断网问题可以用脚本兜底后续关注固件更新 你给设备做过 4G 联网吗用的是模组自研拨号、4G 路由器、还是 USB 上网棒评论区聊聊你的方案和踩过的坑

相关新闻