# 网络问题 ***Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.*** --- # 无法连接网络怎么办? ## 物理层与链路层(网线/Wi-Fi/交换机) 现象:在终端执行 **ip a** 后,输出结果未显示IP地址,或者网卡状态显示DOWN。 | **常见原因** | **解决办法** | | --- | --- | | 网线未插紧或损坏 | 重新插拔网线,观察网口指示灯状态(绿灯常亮且黄灯闪烁代表有数据传输)。 | | Wi-Fi未连接或信号弱 | 检查Wi-Fi配置文件(如 */etc/wpa_supplicant.conf*),或执行 **nmcli dev wifi connect** 重新连接。 | | 交换机或路由器端口故障 | 更换交换机端口,或直接将两台设备通过网线直连(需配置静态IP)以排除上游网络问题。 | | 网卡驱动未加载 | 执行 **dmesg** \| **grep -i eth** 或 **lspci**,确认内核是否识别到网络硬件。 | ## 网络层(IP地址与子网掩码) 现象:在终端执行 **ip a** 命令后,输出结果显示IP地址,但Ping网关不通。 | **常见原因** | **解决办法** | | --- | --- | | IP地址配置错误(不在同一子网) | 检查 **ip a** 输出的IP地址和子网掩码(如/24),确保其与网关(如192.168.1.1)处于同一网段。 | | IP地址冲突(两台设备使用相同IP) | 更换一个未使用的IP,或开启DHCP自动获取(dhclient eth0)。 | | DHCP未获取到地址 | 检查DHCP服务是否开启(**ps aux**\|**grep dhcp**),或手动配置静态IP以排除DHCP服务器故障。 | | 默认网关丢失 | 执行 **ip route show**,查看是否存在default via条目。如果没有,则手动添加:**ip route add default via 192.168.1.1**。 | ## 传输层(防火墙与端口) 现象:Ping通(ICMP协议正常),但无法访问SSH、HTTP等业务服务。 | **常见原因** | **解决办法** | | --- | --- | | 防火墙(iptables/nftables)拦截 | 检查规则:**iptables -L -n -v**。临时关闭防火墙进行测试:**systemctl stop firewalld**(或 **iptables -F**)。 | | 服务端口未监听或未启动 | 执行 **netstat -tulpn** \| **grep 22**,确认sshd进程正在监听。 | | 端口被占用或服务绑定到本地(127.0.0.1) | 检查服务配置,确保其监听0.0.0.0(所有接口)而非127.0.0.1(仅本地)。 | ## 应用层(DNS解析) 现象:**ping 8.8.8.8**(IP地址)可达,但执行 **ping www.baidu.com**(域名)解析失败。 | **常见原因** | **解决办法** | | --- | --- | | DNS服务器未配置或不可达 | 检查 */etc/resolv.conf*,确保已配置nameserver 8.8.8.8或114.114.114.114。 | | DNS缓存污染 | 执行 **systemd-resolve --flush-caches**(若使用systemd-resolved服务)或重启网络服务。 | | 无法访问国外DNS | 改用国内公共DNS(如223.5.5.5或114.114.114.114)绕过可能存在的网络限制。 | 可按以下顺序进行快速排查: ```bash # 1. 查看所有网络接口状态(重点看有没有UP和RUNNING) ip addr show # 2. 查看默认网关IP route show default # 3. ping网关(测试是否可达) ping -c 4 你的网关IP # 4. 查看当前DNS配置 cat /etc/resolv.conf # 5. 测试域名解析 nslookup baidu.com # 6. 检查iptables/nftables是否过滤 sudo iptables -L -n sudo nft list ruleset ``` # 如何排查网络问题? 排查方法可参考上文。 # Wi-Fi连接失败怎么办? ## 检查硬件与固件 首先确保Wi-Fi模块能被系统正确识别。 - 确认Wi-Fi模块:查阅开发板的硬件手册,确认Wi-Fi模块型号及天线连接是否正常。 - 检查驱动加载:在终端执行 **iw dev**,查看输出中是否存在wlan0接口。若无输出,说明驱动可能未加载。 - 检查固件加载:执行 **dmesg**|**grep -i firmware**,查看是否有固件加载失败的错误信息(如failed to load)。 - 确认Wi-Fi模式:部分模块需要先设置为STA (Station)模式。 ## 检查网络接口与扫描 若硬件正常,则检查系统能否发现周围的无线网络。 - 查看接口状态:执行 **ip addr show wlan0**,确认接口是否处于UP状态。若显示为DOWN,可执行 **sudo ip link set wlan0 up** 手动启用。 - 扫描可用网络:执行 **sudo iw dev wlan0 scan**|**grep SSID** 扫描附近的Wi-Fi。若无任何输出,可能是驱动或天线问题。 - 使用NetworkManager(若已安装):可执行 **nmcli dev wifi list** 进行扫描。 ## 检查连接配置 扫描到网络后,连接失败通常与配置有关。 - 确认SSID和密码:SSID或密码错误是最常见的原因,请确认其大小写是否正确。 - 检查加密方式:若使用wpa_supplicant,需确保配置与路由器的加密方式(如WPA2-PSK)匹配。 - 检查wpa_supplicant服务:执行 **ps -ef | grep wpa_supplicant** 确认该服务正在运行。 - 检查Wi-Fi频段:确认开发板支持连接的频段(如2.4 GHz或5 GHz)。 ## 检查IP地址分配 连接成功但无法上网,通常是IP地址配置问题。 - 检查IP地址:执行 **ip addr show wlan0**,查看是否已获取有效的IP地址(非169.254.x.x)。 - 手动获取IP:可执行 **sudo dhclient wlan0** 或 **sudo udhcpc -i wlan0** 手动获取。 - 检查DHCP服务:确认路由器的DHCP服务已开启且地址池未满。 # 以太网如何配置静态IP? ## 使用ip命令临时设置(立即生效,重启丢失) ```bash # 1. 查看网卡名称(通常是eth0或enp*) ip addr show # 2. 为网卡添加静态IP(例如192.168.1.100/24) sudo ip addr add 192.168.1.100/24 dev eth0 # 3. 启用网卡(如果之前是down状态) sudo ip link set eth0 up # 4. 添加默认网关(例如192.168.1.1) sudo ip route add default via 192.168.1.1 # 5. 设置DNS(需要编辑/etc/resolv.conf) echo "nameserver 8.8.8.8" | sudo tee -a /etc/resolv.conf echo "nameserver 114.114.114.114" | sudo tee -a /etc/resolv.conf ``` ## 使用systemd-networkd持久化配置 ### 创建或编辑网卡配置文件 ```bash sudo nano /etc/systemd/network/20-eth0-static.network ``` ### 写入以下内容 ```bash [Match] Name=eth0 [Network] Address=10.66.82.100/23 Gateway=10.66.82.1 DNS=8.8.8.8 DNS=114.114.114.114 ``` ### 重启网络服务 ```bash sudo systemctl restart systemd-networkd ``` # 怎么查看网络带宽? 查看物理链路协商速率: ```bash ethtool eth0 | grep -E "Speed|Duplex" # 或者 cat /sys/class/net/eth0/speed cat /sys/class/net/eth0/duplex ```