Featured image of post Linux设备上网原理与故障排查指南

Linux设备上网原理与故障排查指南

网络分层模型(5 层 / 7 层)

  • 物理层(Physical):负责比特流的传输与电气/光学信号转换。典型硬件包括网线、光纤、网络接口卡、集线器等;软件层面主要由驱动程序与固件控制信号发送。
  • 数据链路层(Data Link):在同一局域网内建立可靠链路,处理 MAC 地址、帧校验。硬件设备如交换机、网桥;对应软件是网卡驱动、内核中的以太网协议栈(如 Linux 的 eth 、bridge 模块)。
  • 网络层(Network):负责跨网络的寻址与路由(IP 协议)。硬件侧通常是三层交换机、路由器;软件侧包括操作系统的 IP 协议栈、路由表、ip 命令、iptables 等。
  • 传输层(Transport):提供端到端的传输控制(TCP、UDP)。主要由操作系统内核中的传输层实现,常见软件组件包括 socket API、netstat 、ss 。
  • 会话层(Session):管理会话、连接维护与同步,在现代实现里多由应用协议或中间件处理,如 RPC 框架、会话管理库。
  • 表示层(Presentation):负责数据格式、加密与解密,如 TLS/SSL、字符编码转换。对应软件包括OpenSSL、GnuTLS、序列化库(JSON、ProtoBuf)。
  • 应用层(Application):直接面向用户的网络应用协议,如 HTTP、SSH、FTP;对应软件是浏览器、SSH 客户端、数据库客户端等。
    说明:实际工程常使用 TCP/IP 5 层模型,将会话层与表示层合并到应用层。理解各层能帮助在故障排查时快速定位是物理问题、网络层问题还是应用配置问题。

上网原理概述

  • 网络接口:设备的有线网卡或无线网卡负责发送与接收数据,必须具备正确的硬件状态与驱动支持。
  • 数据链路:层通过网线、无线电波连接交换机、路由器等网络设备,形成局域网。
  • 网络层:使用 IP 协议,设备需要正确的 IP 地址、子网掩码和默认网关,才能与其他主机通信。
  • 传输层:常见的 TCP、UDP 协议负责提供可靠或快速的数据传输通道。
  • 应用层:浏览器、SSH、数据库客户端等具体应用通过网络协议访问远程服务。
  • DNS 与路由:DNS 负责将域名解析为 IP 地址;路由器根据路由表决定数据包转发路径,最终达到目标服务器或互联网。

各层常见故障与排查

物理层

  • 可能故障:电源中断、网线损坏、光模块松动、接口未插紧、无线开关关闭。
  • 观察与判定: 电源灯常亮或缓慢闪烁代表供电稳定;熄灭或快速闪烁为异常。
    网卡 Link/Act 灯常亮并伴随闪烁表示接通且有流量;全暗或变红说明物理链路断开。
    常见指示规律:“常亮=链路建立、闪烁=有流量”。百兆网口多为黄色/橙色常亮表示 100 Mbps 链路、绿色闪烁代表数据传输;千兆网口通常绿灯常亮表示 1000 Mbps 正常联通、黄灯/另一盏灯闪烁表示实时流量。
    若网线内部双绞对接错(例如部分线芯反接),常见现象是指示灯间歇亮灭、链路速率降到 10/100 Mbps、ethtool 显示大量 Tx/Rx errors 或 CRC 错误,数据传输极慢。标准 T568B 线序由 1 到 8 依次为:白橙、橙、白绿、蓝、白蓝、绿、白棕、棕;T568A 则为白绿、绿、白橙、蓝、白蓝、橙、白棕、棕。可使用网线测试仪检测八芯对应关系,或更换一根合格网线验证。
  • 排查步骤:重新插拔电源、确认插座或 UPS 供电;检查网线卡扣并尝试更换另一根线或端口;无线适配器按下硬件开关或功能键(如 Fn+F5)。
  • 解决建议:替换损坏线缆/光纤、修复或更换异常端口;必要时重启交换机/路由器;为易松动的接口配固定卡扣。

数据链路层

  • 可能故障:网卡未启用、驱动缺失、MAC 地址冲突、交换机 VLAN 配置错误。
  • 观察与判定: ip link show 显示接口 state DOWN 或接口未列出。
    dmesg 出现 device not found 、firmware missing 、Tx timeout 等信息。
    局域网内其他主机的 arp -a 中没有该主机 MAC,或提示冲突。
  • 排查步骤: sudo ip link set <接口> up 尝试启用;若失败继续排查。 lspci | grep -i ethernet 、lsusb | grep -i wireless 确认硬件被识别。
    dmesg | grep -i <接口> 检查驱动加载消息,必要时安装/更新内核模块(如 sudo modprobe e1000e )。
    与网络管理员核实交换机端口 VLAN/Trunk 配置是否正确。
  • 解决建议:重新安装驱动或固件、升级内核、调整 VLAN;若网卡故障则更换硬件。

网络层

  • 可能故障:IP/子网掩码/网关配置错误、DHCP 故障、路由缺失或错误、IP 冲突。
  • 观察与判定:
    • ip addr show 无 inet 地址或出现 169.254.x.x 。
    • ip route 缺少 default 网关或指向无效接口。
    • ping 同网段设备失败但物理层正常。
    • 能 ping 小包却无法传输大报文、HTTPS/SSH 连接容易超时,常见于 MTU 设置过小或被PPPoE/隧道额外封装压缩。
    • ip netns list 显示存在网络命名空间,或 ip -br addr 只在特定命名空间内可见接口,提示可能被容器/虚拟化隔离导致主命名空间无法访问。
  • 排查步骤:
    • 确认网络管理工具:
      • NetworkManager: systemctl is-active NetworkManager 为 active ; nmcli general status 能返回状态。
      • Netplan: ls /etc/netplan/ 有 YAML 文件; sudo netplan status 可查看当前配置。
      • systemd-networkd: systemctl is-active systemd-networkd 为 active ;配置在/etc/systemd/network/ 。
      • ifupdown(传统脚本):Debian/旧版 Ubuntu 使用 /etc/network/interfaces ,可用ifquery –list 查看。
      • 多个工具同时运行:如果 systemctl 显示 NetworkManager 和 systemd-networkd 均为active ,或 Netplan 配置与 NetworkManager 同时存在,可能出现互相覆盖,应决定保留其一,并停用/禁用其他服务(如 sudo systemctl disable –now systemd-networkd )。
      • 都未运行:若所有管理工具均显示 inactive ,网络接口可能由手工脚本或容器化平台接管。可临时使用 sudo ip addr add 、sudo ip route add 手动设定,并确认是否有网管脚本(如/etc/rc.local 、/usr/local/bin/*.sh )或云平台代理。
      • DHCP 请求被拒绝: sudo dhclient -v 输出包含 DHCPREQUEST on <接口> 后接 DHCPNAK 、No DHCPOFFERS received ,或 NetworkManager 日志出现 dhcp4 (接口): request denied 。此时说明网络联通正常但服务器拒绝分配地址,可临时配置静态 IP 保持通信,并将日志截图、MAC 地址与所需网段提交给 DHCP 管理员排查(检查地址池、认证策略、保留 IP 冲突等)。
    • 针对工具核对配置:
      • NetworkManager: nmcli dev show <接口> 、nmcli connection show 查看 IP、网关、DNS;必要时用 nm-connection-editor 或 nmcli connection edit 调整。
        • 命令方式设置静态 IP,参考脚本:

nmcli connection modify <连接名>
ipv4.method manual
ipv4.addresses 192.168.1.10/24
ipv4.gateway 192.168.1.1
ipv4.dns “8.8.8.8 114.114.114.114” nmcli connection up <连接名> ``` * DHCP * 静态IP * 路由 * MTU * 命名空间隔离 * IP冲突 * DHCP被拒场景

使用 Hugo 构建
主题 StackJimmy 设计