USB转网口+Windows共享网络异常:ax650无法上网排查与完美解决

USB转网口+Windows共享网络异常:ax650无法上网排查与完美解决

关键词:ax650;USB转网口;Windows ICS共享;DNS解析失败;外网ping不通;嵌入式网络配置

前言:在嵌入式开发中,USB转网口连接Windows共享网络是高频场景,本次使用ax650设备时,遇到「域名解析失败、外网IP ping不通」的问题,折腾许久后定位到根源是Windows ICS服务异常,而非设备本身配置问题。整理完整排查流程与解决方案,供有类似需求的开发者避坑。

一、场景与问题现象

核心场景

ax650嵌入式设备 → USB转网口 → 连接Windows电脑,依赖Windows的「Internet连接共享(ICS)」访问外网,Windows电脑本身可正常上网。

具体问题表现

  • 内网连通正常:ax650可ping通Windows网关(192.168.137.1);

  • 外网IP不通:执行ping 8.8.8.8 -c 3ping 110.242.68.3 -c 3(百度公网IP),均显示100%丢包;

  • 域名解析失败:无论是手动设置DNS(echo -e "nameserver 223.5.5.5\nnameserver 8.8.8.8" > /etc/resolv.conf),还是临时指定网关为DNS(export RES_OPTIONS="nameserver 192.168.137.1"),均提示 ping: unknown host

  • 历史对比:此前曾通过「手动echo设置DNS」成功上网,本次恢复ax650默认配置后,所有操作均失效。

二、排查历程(踩坑记录,避坑重点)

排查初期陷入误区:误以为是ax650本地网络配置错误,先后执行以下操作,均无效果:

  1. 修改 /etc/network/interfaces,切换静态IP/动态DHCP,重启networking服务;

  2. 停止/启用 systemd-resolved 服务,将 /etc/resolv.conf 改为普通文件(避免被服务覆盖),重新手动写入DNS;

  3. 恢复备份的 resolved.confresolv.conf 文件,还原设备网络配置;

  4. 临时指定DNS环境变量,分别尝试外网DNS(223.5.5.5/8.8.8.8)和网关DNS(192.168.137.1)。

关键转折:所有操作均无法让ax650 ping通外网IP,结合「内网可通、外网不通」的现象,判断问题不在ax650侧,而是Windows共享网络拦截了外网请求------核心原因是Windows的「Internet连接共享(ICS)」功能异常,导致IP包转发和DNS转发全部失效。

三、问题根源深度分析

本次问题核心:Windows ICS功能异常,与ax650本地配置无关,具体原因有2点(高频踩坑点):

1. ICS共享时,选错「家庭网络连接」网卡(最关键)

Windows开启网络共享时,需明确两个网卡:① 能上网的网卡(如连接路由器的以太网、WiFi);② 需要共享的网卡(USB转网口)。此前误选其他网卡作为「家庭网络连接」,导致ax650的外网请求无法被正确转发,全部被拦截。

2. Windows IPv4转发功能未开启,ICS服务残留异常配置

Windows ICS服务依赖IPv4转发功能,默认可能未开启;同时,多次修改共享配置后,ICS服务残留异常配置,即使重新勾选共享,也无法正常转发IP包和DNS请求。

补充说明:ax650侧无任何配置问题

很多开发者会误以为「需要手动给ax650设置DNS才能上网」,实则不然:正常情况下,Windows ICS功能恢复后,会自动向ax650推送IP、网关和DNS(默认推送Windows网关IP 192.168.137.1作为DNS),由Windows代为解析域名、转发外网请求,设备侧无需任何手动配置。

四、核心解决方案(重点在Windows侧,ax650侧无需操作)

解决方案核心:彻底修复Windows ICS功能,确保IP包和DNS请求正常转发,步骤按顺序执行,缺一不可。

步骤1:彻底重置Windows ICS服务,清理残留配置

  1. 以「管理员身份」打开Windows终端(CMD/PowerShell);

  2. 执行以下命令,停止ICS服务并删除残留配置:

    停止ICS服务

    net stop sharedaccess

    删除ICS残留的虚拟网卡配置

    reg delete "HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\RestrictedServices\Configurable\System" /f`

  3. 重启Windows电脑,彻底清除ICS服务的异常残留(至关重要,不可跳过)。

步骤2:重新配置ICS共享,精准选对网卡

  1. 电脑重启后,先确认Windows自身可正常上网(如执行 ping 8.8.8.8 能通);

  2. 打开「控制面板」→「网络和共享中心」→「更改适配器设置」;

  3. 找到「能正常上网的网卡」(如连接路由器的以太网、WiFi),右键→「属性」→「共享」;

  4. 勾选「允许其他网络用户通过此计算机的Internet连接来连接」;

  5. 「家庭网络连接」下拉框中,精准选择USB转网口对应的网卡(通常名称为「以太网2」「本地连接*XX」,图标为USB网卡样式);

  6. 取消勾选「允许其他网络用户控制或禁用共享的Internet连接」,点击「确定」。

步骤3:强制开启Windows IPv4转发功能

  1. 再次打开管理员终端,执行以下命令开启IPv4转发(永久生效,重启不丢失):
javascript 复制代码
`# 永久开启IPv4转发
reg add "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v IPEnableRouter /t REG_DWORD /d 1 /f
# 临时生效(无需重启电脑)
netsh interface ipv4 set global forwarding=enabled`
  1. 重启ICS服务,确保配置生效:
    net start sharedaccess

步骤4:临时关闭Windows防火墙,排除拦截(可选)

若上述步骤执行后仍无效,可临时关闭Windows防火墙(测试后可重新开启):

打开「控制面板」→「系统和安全」→「Windows Defender防火墙」→「关闭Windows Defender防火墙」,再次测试即可。

步骤5:ax650侧验证(无需任何操作)

Windows侧配置完成后,回到ax650,无需修改任何配置、无需执行echo设置DNS,直接执行以下命令测试:

bash 复制代码
# 1. 验证内网连通(必通)
ping 192.168.137.1 -c 3
# 2. 验证外网IP连通(通则说明转发正常)
ping 8.8.8.8 -c 3
# 3. 验证域名解析(通则说明DNS转发正常)
ping www.baidu.com -c 3

正常情况下,三条命令均能ping通,ax650网络恢复正常。

五、常见疑问解答(高频关注)

1. 为什么这次没执行echo设置DNS,也能访问百度?

核心原因:Windows ICS功能恢复正常后,会自动向ax650推送完整网络配置------包括IP、网关和DNS(默认推送Windows网关IP 192.168.137.1作为DNS)。

此时ax650的 /etc/resolv.conf 会被自动填充正确的DNS,由Windows代为解析域名、转发外网请求,无需手动执行echo命令写入DNS。

此前需要手动设置DNS,是因为当时Windows ICS异常,无法自动推送DNS配置,只能手动临时补充;ICS恢复后,自动推送功能正常,手动配置已无必要。

2. 重启Windows或ax650后,能直接上网吗?需要注意什么?

只要Windows ICS配置正确,重启后大概率能直接上网,无需额外操作,具体注意事项如下:

  • 重启Windows电脑后:

    • 正常情况:ICS服务会自动启动,共享配置保留,ax650无需任何操作,可直接上网;

    • 异常处理:若重启后无法上网,只需重新进入「网卡共享设置」,取消勾选共享→重新勾选(清除ICS临时异常),无需重复其他配置。

  • 重启ax650设备后:

    • 正常情况:ax650会通过DHCP自动从Windows获取IP、网关和DNS,无需手动执行任何命令(包括之前的echo语句),可直接上网;

    • 无需操作:不用修改 interfaces、不用动 resolv.conf、不用停止/启用 systemd-resolved,保持设备默认配置即可。

  • 特殊情况(重启后仍不通):

    • 检查Windows的「Internet Connection Sharing (ICS)」服务是否在运行,若未运行,执行net start sharedaccess 启动;

    • 检查USB转网口是否被Windows正确识别(「更改适配器设置」中是否存在,未被禁用),可尝试重新插拔USB转网口。

六、总结与避坑提醒

核心总结

ax650无法上网,看似是设备侧DNS/网络配置问题,实则是Windows ICS功能异常导致的IP/DNS转发失效,与ax650本地配置无关。

3个高频避坑提醒(嵌入式+Windows共享场景必看)

  1. 优先排查Windows侧:嵌入式设备能ping通Windows网关,但无法访问外网,直接排查Windows ICS配置,无需在设备侧反复折腾;

  2. ICS共享的核心是「选对网卡」:务必区分「能上网的网卡」和「USB转网口网卡」,选错网卡会导致所有转发失效;

  3. 无需手动给设备设置DNS:正常的ICS会自动向设备推送DNS(网关IP),手动设置反而可能因Windows转发规则,导致解析失败。

结语:本文针对「USB转网口+Windows共享网络」场景下的ax650上网异常问题,提供了完整的排查、解决流程,覆盖多数ICS转发异常场景。若遇到类似问题,可按本文步骤操作,基本能解决99%的相关故障。如有其他疑问,欢迎在评论区留言交流~

相关推荐
myron66882 小时前
基于STM32LXXX的模数转换芯片ADC(ADS1110A0IDBVR)驱动C程序设计
c语言·stm32·嵌入式硬件
天荒地老笑话么2 小时前
NAT 下“能 ping 不能 curl”:TCP/443 链路排障
网络·网络安全
MicrosoftReactor3 小时前
技术速递|在 Azure Windows 11 虚拟机上部署 OpenClaw 的完整指南
windows·microsoft·ai·azure
Trouvaille ~3 小时前
【Linux】TCP vs UDP深度对比:如何选择与用UDP实现可靠传输
linux·网络·c++·tcp/ip·udp·操作系统
風清掦3 小时前
【江科大STM32学习笔记-06】TIM 定时器 - 6.1 定时器的基本定时功能
笔记·stm32·学习
byzh_rc3 小时前
[深度学习网络从入门到入土] 使用块的网络VGG
网络·人工智能·深度学习
longze_73 小时前
软考中级网络工程师-ACL访问控制
网络·acl
亿道电子Emdoor11 小时前
【Arm】Keil MDK 的Symbols窗口
stm32·单片机·嵌入式硬件
yugi98783811 小时前
无线传感器网络中GAF算法节点特性分析
网络·算法