拓冰建站拓冰建站
首页 / 资讯中心 / 正文

网络连接故障排查全攻略:从IP配置到VMware与Ubuntu实战

1. 先把大方向捋清楚网络连接故障到底断在哪里前几天连续遇到好几个“网络连接”相关的故障Windows电脑微信一直提示“网络连接已断开”Ubuntu 20.04桌面右下角反复弹“连接激活失败”同事的VMware虚拟机又连不上车间里的PLC。乍一看都是“网络连接问题”实际上断的位置完全不同有的是物理链路没起来有的是IP配置冲突有的是虚拟机网卡模式选错还有的是应用层代理惹的祸。如果不做定位直接重装驱动或重启系统大概率白忙一场。1.1 三层定位法先判断断在哪一层我是做工程出身习惯把网络连接想象成一套送水管道。最外层是物理链路相当于水管本身和阀门中间是网络层相当于水压和水流方向最里面是应用层相当于水龙头和终端用水设备。哪个环节出问题表现完全不一样。物理层问题网线没插紧、无线网卡被禁用、网口灯不亮、路由器断电。这种故障通常表现为网络图标直接显示红叉或“未连接”。网络层问题IP地址没拿到、子网掩码错误、网关不对、DNS解析失败。这种故障表现为图标正常但上不了网ping不通外部地址。应用层问题微信、浏览器、共享文件夹、PLC通信软件自身的设置、端口或代理有问题。这种故障表现为大部分网络正常只有某个软件连不上。大多数报错信息“网络连接失败”都只是表象真正的根因往往藏在上面三层中。所以我的习惯是任何网络故障都按三层顺序往下查不跳步。1.2 一套顺手的基础排查顺序网上有很多“万能排查法”我自己总结了一套固定流程基本能覆盖80%的问题。看网络图标有没有感叹号、红叉、或者进入飞行模式。查网卡和IPWindows执行ipconfig /allLinux执行ip addr。先确认网卡有没有被识别再看有没有拿到合法IP。ping网关比如ping 192.168.1.1判断本机到路由器的链路是否通。ping外网IP比如ping 223.5.5.5判断路由器之后的互联网链路是否通。ping域名比如ping baidu.com判断DNS解析是否正常。最后才重启路由器和电脑。这一步做完基本就能锁定问题在哪一层。比如ping网关不通多半是物理链路或IP配置问题ping外网IP通但ping域名不通就是DNS问题如果所有ping都通但微信还是提示断网那就往应用层找。2. 底层必会手把手看懂IP、网关和DNS网络连接故障里IP、网关、DNS这三样东西是永远绕不开的。很多朋友看到一串数字就头大其实把它们理解成地址、小区大门和通讯录就行。2.1 IP地址配置不当的典型表现IP地址是设备在网络里的门牌号。自动获取失败时Windows很容易出现169.254.x.x这种地址拿到这个地址基本等于“没分到房”本地连接会显示“受限制或无连接”。Linux下则表现为网卡状态为down或者没有inet地址。静态IP配置错误就更隐蔽了。我自己踩过不少坑把子网掩码填错成255.255.255.0或者把网关填成别的网段表面看IP地址有但就是出不去。还有一种典型是IP冲突两台设备用了同一个IP会出现“一会儿能上网一会儿断网”ping网关时快时慢。排查这类问题首先要学会看地址段。比如192.168.1.100/24斜杠后面的24表示子网掩码是255.255.255.0意思是前三段必须一致才能互相通信。如果PLC在192.168.0.1你的电脑却是192.168.1.100哪怕网线插得再好也ping不通。很多人搞不定PLC连接问题往往就出在网段不匹配。2.2 网关和DNS在故障中的角色网关是连接本地网络和外部网络的出口相当于小区大门。ping得通网关说明从家里到门口这段路没问题但能不能出小区要看路由器。如果网关设置不对即使IP正确也无法访问外网。DNS则是把域名翻译成IP的通讯录。一个非常常见的现象是“能上QQ但网页打不开”这种多半是DNS配置错误或DNS服务器宕机。因为QQ用的是固定IP不需要域名解析而网页访问必须先把域名解析成IP。反过来如果ping域名不通但ping外网IP能通基本可以确定DNS有问题。我一般会建议客户在本地多配置一两个公共DNS作为备用比如223.5.5.5和114.114.114.114。但要注意在某些企业或工业内网环境内部服务器只能通过内网DNS解析这时贸然改成公共DNS反而会导致很多内部域名访问不了。2.3 不同系统的常用排查命令虽然图形界面也能看状态但命令行更直接、信息更全。这里列几个最常用的系统查看IP地址/网络状态测试连通性测试DNSWindowsipconfig /allping 目标地址nslookup 域名Linux (Ubuntu)ip addr、nmcli device statusping 目标地址nslookup 域名或dig 域名macOSifconfig、networksetup -getinfo Wi-Fiping 目标地址nslookup 域名使用时要看懂输出。Windows里重点看“IPv4地址”“默认网关”“DNS服务器”三栏Linux里重点看网卡状态是否UP、有没有inet地址。这些信息是后续所有排查的基础。3. Ubuntu 20.04网络连接激活失败的完整自救方案Ubuntu 20.04出现“连接激活失败”是个高频问题尤其是桌面版。我自己在虚拟机里和物理机上都遇到过现象很一致网络图标显示有线网络“正在连接”过几秒就弹提示“连接激活失败”看IP地址是空的。3.1 现象与原因分析从用户角度这个报错就像是“网卡明明插着系统却无法进入联网状态”。原因往往不是网卡坏了而是系统里管理网络的组件打架或者配置不对。Ubuntu桌面版默认使用NetworkManager管理网络但20.04又引入了netplan配置工具。如果配置文件里写的renderer是networkd而NetworkManager也在同时尝试控制网卡就可能出现冲突导致连接反复激活失败。还有一种情况是网卡被标记成unmanagedNetworkManager会直接撒手不管。另外在一些服务器版、定制版系统里systemd-networkd服务可能被禁用也会导致网络起不来。DHCP获取不到地址也比较常见比如路由器关闭了DHCP或者虚拟机里的网卡没有跟虚拟网络编辑器对应起来。3.2 从命令行定位问题图形界面报错给的信息太少我习惯直接开终端查。先看网卡有没有被识别ip link如果只看到lo说明网卡驱动没起来。这时候查硬件lspci | grep -i ethernet或者查看系统是否认出网卡设备sudo lshw -C network如果硬件能识别但没有驱动输出里会显示“UNCLAIMED”接下来需要重新安装或编译驱动。再看NetworkManager对网卡的接管情况nmcli device status如果状态显示“unmanaged”问题就找到了。解决方法是编辑NetworkManager配置文件sudo vim /etc/NetworkManager/NetworkManager.conf把[ifupdown]部分的managedfalse改成managedtrue然后重启NetworkManagersudo systemctl restart NetworkManager这一步能解决很多“激活失败”的问题。3.3 实操把网络直接拉起来如果网卡状态正常但没有拿到IP可以手动触发DHCPsudo dhclient 网卡名比如网卡是ens33就执行sudo dhclient ens33执行后通过ip addr show ens33确认是否拿到IP。如果还是不行可以直接用NetworkManager连接sudo nmcli device connect ens33临时配置静态IP也可以先顶着用比如要访问本网段的PLCsudo ip addr add 192.168.0.10/24 dev ens33 sudo ip link set ens33 up但需要注意这种方式重启后会失效不能作为最终方案。最终要修改netplan配置文件。Ubuntu 20.04的配置文件通常在/etc/netplan/下文件名可能是01-network-manager-all.yaml或00-installer-config.yaml。一个常见的DHCP配置示例network: version: 2 renderer: NetworkManager ethernets: ens33: dhcp4: true改完执行sudo netplan apply如果改成静态IP可以这样写network: version: 2 renderer: networkd ethernets: ens33: dhcp4: no addresses: - 192.168.0.10/24 routes: - to: default via: 192.168.0.1 nameservers: addresses: [223.5.5.5, 114.114.114.114]执行sudo netplan try可以先测试配置配置有问题会自动回滚避免把自己关在门外。3.4 重启后失效怎么办很多人改完配置当前能用一重启又回到“激活失败”这种情况多半是连接没有设置自动连接。可以查看并修改NetworkManager连接的自动连接属性nmcli connection show nmcli connection modify Wired connection 1 connection.autoconnect yes如果用的是netplan的networkd渲染器还要确保systemd-networkd服务正常sudo systemctl enable systemd-networkd sudo systemctl start systemd-networkd这里有个容易忽略的细节netplan配置文件的权限必须是600否则系统会警告甚至拒绝应用sudo chmod 600 /etc/netplan/*.yaml改配置前最好复制一份备份万一敲错还能回退。踩过几次坑之后我现在养成一个习惯改任何网络配置前都先存一份带日期的备份文件。4. VMware虚拟机连PLC网络连接模式到底怎么选用过VMware的朋友都知道虚拟机网络有桥接、NAT、仅主机三种模式。很多人平时上网用NAT没问题但一碰到要连PLC就抓瞎。尤其是用TIA博途这类软件虚拟机里装了TIA却扫描不到车间里的S7-1200/1500十有八九是网络模式选错了。4.1 三种模式的含义与区别简单说桥接模式Bridged虚拟机直接使用宿主机的物理网卡虚拟机和真实设备在同一个局域网里IP由同一台路由器或交换机分配。最直观的感受是虚拟机就像另一台独立的电脑插在同一台交换机上。NAT模式Network Address Translation虚拟机通过宿主机共享IP上网外部设备看不到虚拟机只能由虚拟机主动往外访问。仅主机模式Host-only虚拟机只能和宿主机通信不能访问外部网络适合做隔离测试。用表格对比更清楚模式虚拟机能否被外部访问虚拟机能否访问外部典型场景桥接模式能能PLC通信、局域网共享、抓包测试NAT模式不能能通过宿主机虚拟机上网、下载更新仅主机模式只能宿主机访问只能宿主机访问隔离环境测试、网络实验4.2 连PLC的推荐配置桥接模式如果虚拟机里跑的TIA要跟真实PLC通信我的建议是优先用桥接模式。原因很简单PLC一般有固定IP比如192.168.0.1TIA需要通过广播或直连去发现设备。NAT模式下外部设备发给虚拟机的广播包会被隔离TIA大概率扫描不到PLC。正确操作步骤在VMware里进入“虚拟机设置”找到“网络适配器”。选择“桥接模式”并勾选“复制物理网络连接状态”。打开“编辑”菜单里的“虚拟网络编辑器”选中VMnet0。把“桥接到”选成宿主机实际连接PLC的那块物理网卡。很多笔记本同时有有线网卡和无线网卡如果选错了桥接等于白搭。在虚拟机内部把IP改成和PLC同一网段。比如PLC是192.168.0.1虚拟机的IP就设成192.168.0.10网关不用管子网掩码默认255.255.255.0。在虚拟机里ping 192.168.0.1测试连通性通了再打开TIA。这里有个容易忽略的点有些PLC虽然支持跨网段访问但TIA的在线扫描默认只在当前网段广播。所以虚拟机IP必须和PLC在同一网段不是路由器能路由过去就行。4.3 桥接设置不生效的常见处理桥接模式偶尔会“失灵”典型情况是虚拟机里显示已连接但ping不通局域网内其他设备。排查思路如下确认虚拟网络编辑器里VMnet0桥接到了正确的物理网卡。如果宿主机既插了网线又连着WiFi最好把不用的网卡断开避免桥接混乱。如果修改过VMware的网络设置点击“虚拟网络编辑器”右下角的“更改设置”再点“还原默认设置”恢复VMnet0后再重新配置。检查宿主机防火墙。Windows防火墙有时候会拦截虚拟机的桥接流量可以临时关闭测试能通了再加例外规则。如果虚拟机内的网卡配置没错但IP获取不到可以用sudo dhclient手动续租或者直接设置静态IP。部分版本的VMware需要重启“VMware NAT Service”和“VMware DHCP Service”才能生效。我遇到过一种特别诡异的情况宿主机使用的是USB转RJ45的USB有线网卡VMware默认桥接列表里找不到这块网卡。后来发现需要安装网卡厂商提供的驱动程序让Windows把它识别为“本地网卡”VMware才能识别到并桥接。如果你也用USB网卡连PLC先确认硬件能被系统正常识别。5. 微信“网络连接已断开”、共享列表失败与飞行模式卡死的处理系统网络正常但某个软件报错这种应用层故障最容易被误判。微信提示“网络连接已断开”、访问共享文件夹提示“从服务器获取共享列表失败:重置时断开网络连接”、网络图标卡在飞行模式都是工作中的高频问题。5.1 微信提示断网但网页正常先声明一下这里说的微信是电脑版微信。电脑微信提示“网络连接已断开”但浏览器打开网页、刷视频都没问题这种情况我一个月能遇到好几次。第一个要查的是系统代理。很多软件安装时会顺手修改系统代理设置或者之前用过代理工具没关干净导致微信的通信请求全部走了无效代理。Windows下打开“设置 - 网络和Internet - 代理”确认“手动设置代理”是关闭的。第二个要查的是系统时间。微信这类即时通信软件对证书有效期很敏感如果系统时间比真实时间慢或快几分钟TLS握手就会失败表现就是“网络连接已断开”。右键任务栏时间选择“调整日期/时间”打开“自动设置时间”然后点“立即同步”。第三个方法是重置Winsock目录。以管理员身份打开命令行执行netsh winsock reset然后重启电脑。这个命令会重置网络协议栈很多奇怪的软件断网问题都能解决。如果以上都不行检查微信设置里是否有代理选项有的话清掉。也可以尝试微信自带的“修复网络”功能或者卸载重装。但根据我的经验重装是最后一步先排除系统和网络层面的问题再动软件。5.2 从服务器获取共享列表失败重置时断开网络连接这个报错常见于Windows访问NAS或Windows共享文件夹时。弹窗提示“从服务器获取共享列表失败”有时候还会带一句“重置时断开网络连接”。看到“重置”这个词先不要怀疑路由器多半是SMB连接被服务端或客户端中断了。排查步骤我建议这样走先用IP地址访问共享比如\\192.168.1.100\share而不是用主机名。主机名解析失败会直接导致“获取共享列表失败”。检查凭据。打开“控制面板 - 凭据管理器 - Windows凭据”把之前保存过的旧凭据删掉重新登录。检查SMB版本。Windows 10/11默认支持SMB3.0但如果对方是老旧设备可能只支持SMB1.0。临时启用SMB1支持可以解决老设备访问问题但安全性较差不建议长期开启。更稳妥的做法是在共享设备NAS等上开启SMB2或SMB3。检查MTU设置。如果网卡启用了巨型帧MTU 9000而路由器/交换机不支持连接大流量时会触发连接重置。把网卡MTU改回1500试试。检查无线网卡的省电模式。笔记本的无线网卡为了省电会在系统空闲时休眠唤醒后连接状态可能异常这时访问共享就会报“重置时断开网络连接”。在设备管理器里找到无线网卡在“电源管理”选项卡里取消“允许计算机关闭此设备以节约电源”。5.3 网络连接显示飞行模式怎么办Windows任务栏右下角网络图标整个变成飞行模式而且开关点了没反应这种问题看起来吓人其实大多数是系统服务和驱动的问题不至于要重装系统。我的处理顺序是先尝试在设置里关闭飞行模式。“开始菜单 - 设置 - 网络和Internet - 飞行模式”把开关关掉。如果开关是灰的继续往下。按Win R输入services.msc找到“WLAN AutoConfig”服务。确认它没有被禁用建议启动类型设为“自动”然后启动该服务。打开“设备管理器 - 网络适配器”找到无线网卡和有线网卡。右键禁用再右键启用相当于把网卡重启一次。如果还是有飞行模式尝试“设置 - 网络和Internet - 高级网络设置 - 网络重置”点击“立即重置”。这个过程会重装网络适配器驱动电脑会重启之后重新连接WiFi即可。重启后如果还是卡死再考虑更新无线网卡驱动。到笔记本或网卡厂商官网下载对应驱动程序卸载旧驱动后安装新驱动。这个问题的根源多半是无线网卡驱动跟Windows电源管理配合出了问题或者是WLAN服务异常导致系统认为无线模块被外部开关关闭了。如果硬件上有个无线开关或Fn组合键也要检查是不是物理上被关掉了。6. 高频问题速查表与我的排查心得写到这里我把最常遇到的网络连接故障整理成一张速查表方便你们在实际操作时对照。这里面的每一行都是我在工作里至少碰到过一次的真实案例。6.1 高频问题速查表现象常见原因快速处理Windows显示IP为169.254.x.xDHCP获取失败检查路由器DHCP重启网卡手动指定IPUbuntu提示连接激活失败NetworkManager管理冲突或网卡unmanaged检查nmcli状态修改managedtrue虚拟机ping不通PLC网络模式选错或网段不一致换成桥接模式设置与PLC同网段IP桥接模式无法上网桥接网卡选择错误虚拟网络编辑器里选正确的物理网卡微信提示网络连接已断开系统代理异常或系统时间不对关闭代理同步时间重置Winsock访问共享列表失败SMB版本问题或凭据问题用IP访问清凭据调整SMB版本飞行模式开关无法关闭WLAN服务异常或驱动问题启动WLAN AutoConfig重启网卡网络重置能上QQ不能开网页DNS问题用nslookup测试更换DNS服务器ping网关通ping外网不通路由器/运营商问题检查路由器WAN口状态联系运营商确认ping外网IP通域名不通DNS服务器故障更换DNS为公共DNS再测试6.2 几条踩坑经验与排查习惯最后分享几条我自己的排查习惯算是用无数次折腾换来的经验。第一永远先看物理链路。网线没插紧、网口灯不亮、无线开关被碰了这些低级问题排查成本最低但最容易被人忽略。我就曾经花了半个小时配IP最后发现是网线被保洁踢松了。第二配置静态IP时必须做记录。尤其是现场调试PLC时改了IP忘了原地址等要改回来的时候就抓瞎了。建议每次调整IP都记在小本子上或者直接在设备旁边贴标签。第三不要随手乱改系统网络设置。网上很多教程让大家改注册表、关服务新手照着做很可能越搞越糟。无论是Windows还是Ubuntu改配置前做备份改完至少验证一次“是否能正常获取默认配置”。第四判断故障范围很重要。手机连接同一个WiFi能上网只有电脑断网问题基本在电脑如果手机也断网先重启路由器和光猫不要急着查本机设置。这个逻辑看起来简单却能让排查速度提升很多。第五我现在排查网络问题已经习惯在终端里先敲一行命令ping 网关地址再敲一行ping 公共DNS地址。把这俩通不通搞清楚至少能砍掉一半的无用操作。网络连接这块的内容看起来杂但只要记住“物理层、网络层、应用层”这个顺序再复杂的故障也能拆成一步步的小检查。希望这篇文章能帮你少走点弯路遇到问题的时候不至于一上来就重启电脑。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门