OpenWrt 排障工具箱:家庭软路由必装插件和常用命令
搭建 OpenWrt 旁路由、OpenClash、WireGuard 后,最重要的不是装一堆插件,而是要有一套能快速定位问题的工具。
本文整理一些家庭软路由常用的监控、抓包、流量统计、DNS 测试和虚拟机增强工具。
本文基于 OpenWrt 25 之后的 apk 包管理器。如果你的系统仍使用 opkg,可将命令替换为对应的 opkg install。
一、基础命令
更新软件源:
apk update搜索软件包:
apk search tcpdump
apk search strongswan
apk search wireguard安装软件包:
apk add tcpdump删除软件包:
apk del tcpdump查看已安装软件包:
apk list -I查看某类已安装包:
apk list -I | grep wireguard
apk list -I | grep strongswan二、tcpdump:最重要的抓包工具
安装:
apk add tcpdump抓某个客户端:
tcpdump -i br-lan host 192.168.1.100抓某个客户端访问某个目标:
tcpdump -i br-lan host 192.168.1.100 and host 183.2.172.177抓 HTTPS:
tcpdump -i br-lan host 192.168.1.100 and tcp port 443抓 WireGuard:
tcpdump -i br-lan udp port 51820典型用途:
- 判断客户端请求有没有到 OpenWrt。
- 判断目标服务器有没有回包。
- 判断 WireGuard UDP 51820 是否到达。
- 判断 DNS 请求是否走到指定 DNS。
如果访问国内网站时只看到:
客户端 → 目标 IP:Flags [S]但看不到:
目标 IP → 客户端:Flags [S.]通常说明直连转发/NAT 路径有问题。
三、conntrack:查看连接跟踪
安装:
apk add conntrack-tools查看当前连接数量:
conntrack -C查看某个客户端连接:
conntrack -L | grep 192.168.1.100只看 UDP:
conntrack -L -p udp如果没有安装 conntrack,也可以看内核记录:
cat /proc/net/nf_conntrack | grep 192.168.1.100典型用途:
- 看某个设备当前连接数。
- 判断 NAT 连接是否创建。
- 排查连接跟踪表是否异常。
四、nlbwmon:按设备统计流量
安装:
apk add nlbwmon luci-app-nlbwmon
/etc/init.d/nlbwmon enable
/etc/init.d/nlbwmon startLuCI 页面一般在:
状态 → 带宽监控用途:
- 查看每台设备用了多少流量。
- 找出异常耗流量设备。
- 看日流量、月流量。
- 对家庭全屋代理环境很实用。
五、luci-app-statistics:系统状态趋势
安装:
apk add luci-app-statistics collectd collectd-mod-interface collectd-mod-cpu collectd-mod-memory
/etc/init.d/collectd enable
/etc/init.d/collectd start用途:
- 查看 CPU 使用率。
- 查看内存趋势。
- 查看接口流量。
- 观察 OpenClash / TUN / WireGuard 是否让软路由性能吃紧。
如果你跑 TUN 模式或全屋 WireGuard,非常建议装。
六、curl、jq、drill:网络测试三件套
安装:
apk add curl jq drill测试 HTTP:
curl -I https://www.baidu.com
curl -I https://www.google.com测试 DNS:
drill baidu.com @192.168.1.3
drill google.com @192.168.1.3查看 OpenClash API 连接信息:
curl -s http://127.0.0.1:9090/connections | jq '.connections[] | {source:.metadata.sourceIP, host:.metadata.host, rule:.rule, chains:.chains}'用途:
- 判断 DNS 是否正常。
- 判断网站是否可达。
- 格式化 OpenClash API 输出。
- 排查规则命中和代理链路。
七、wg show:WireGuard 状态检查
WireGuard 安装后可以用:
wg show成功连接时会看到:
interface: wg0
listening port: 51820
peer: 客户端公钥
endpoint: 客户端公网IP:随机端口
allowed ips: 10.7.0.2/32
latest handshake: 几秒前
transfer: xxx received, xxx sent常见判断:
- 没有 peer:客户端 Peer 没有加载。
- 有 peer 但 handshake never:密钥、PSK、Allowed IP 或防火墙问题。
- 有 handshake 和 transfer:WireGuard 已经通。
八、ss / netstat:查看端口监听
查看 WireGuard 是否监听:
netstat -lunp | grep 51820或:
ss -lunp | grep 51820正常:
udp 0 0 0.0.0.0:51820 0.0.0.0:*
udp 0 0 :::51820 :::*查看其他服务端口也可以类似操作。
九、nft:查看防火墙规则
OpenWrt 新版本使用 firewall4 / nftables。
查看完整规则:
nft list ruleset查某个端口:
nft list ruleset | grep 51820查防火墙规则配置:
uci show firewall查 WireGuard 规则:
uci show firewall | grep -i wireguard用途:
- 确认 LuCI 规则是否真正下发。
- 确认端口是否被 accept。
- 排查防火墙区域转发问题。
十、ip route:查看路由
查看默认路由:
ip routeOpenWrt 旁路由自身通常应该有:
default via 192.168.1.1 dev br-lan
192.168.1.0/24 dev br-lanWireGuard 客户端 Peer 正常加载后,可能会看到类似:
10.7.0.2 dev wg0
10.7.0.3 dev wg0如果内网要访问 WireGuard 客户端,OpenWrt 必须知道对应 10.7.0.x 走 wg0。
十一、logread:查看系统日志
查看全部日志:
logread实时查看:
logread -f查看 WireGuard / 网络相关:
logread -f | grep -i wireguard查看 OpenClash:
logread -f | grep -i openclash查看 DHCP / DNS:
logread -f | grep -i dns用途:
- 看服务启动失败原因。
- 看接口 up/down。
- 看防火墙、DNS、OpenClash 异常。
十二、open-vm-tools:VMware / ESXi 虚拟机增强
如果 OpenWrt 跑在 ESXi / VMware 上,建议安装:
apk add open-vm-tools启动:
/etc/init.d/vmtoolsd enable
/etc/init.d/vmtoolsd start作用:
- 更好地支持关机 / 重启。
- 向宿主机报告 IP 和虚拟机状态。
- 改善 VMware 管理体验。
还有一个包:
open-vm-tools-fuse它主要用于 VMware 共享文件夹。OpenWrt 软路由一般不需要,除非你明确要在虚拟机里挂载宿主机共享目录。
十三、SQM:改善满速时延迟
如果上传或下载跑满时,游戏、视频会议、网页延迟明显上升,可以考虑 SQM。
安装:
apk add luci-app-sqm sqm-scripts适合:
- 上传文件时视频会议卡。
- 下载时游戏延迟暴涨。
- 家庭宽带上行较小。
- Bufferbloat 明显。
注意:SQM 最好开在真正出口设备上。如果主路由拨号,优先在主路由出口做。如果只能在 OpenWrt 旁路由做,也可以测试,但效果可能不如主路由出口准确。
十四、推荐安装清单
基础排障:
apk add tcpdump conntrack-tools curl jq drill htop流量统计:
apk add nlbwmon luci-app-nlbwmon系统监控:
apk add luci-app-statistics collectd collectd-mod-interface collectd-mod-cpu collectd-mod-memoryWireGuard:
apk add wireguard-tools luci-proto-wireguardVMware 虚拟机:
apk add open-vm-tools可选网络优化:
apk add luci-app-sqm sqm-scripts十五、常见排障思路
国内网站打不开,国外能访问
检查:
drill baidu.com @192.168.1.3
tcpdump -i br-lan host 192.168.1.100 and tcp port 443如果只有 SYN 没有 SYN-ACK,检查 LAN NAT / MSS。
WireGuard 只有发送没有接收
检查:
tcpdump -i br-lan udp port 51820
wg showUDP 到了但没有握手,检查密钥、PSK、Peer、Allowed IP。
OpenClash 是否代理了 WireGuard 流量
看 OpenClash Connections 是否有来源:
10.7.0.x如果没有,检查 OpenClash 是否接管 wg0 / WireGuard 网段。
DNS 是否走到 AdGuardHome
在 AdGuardHome 查询日志里搜索域名,或用:
drill baidu.com @192.168.1.3总结
OpenWrt 排障不要只靠猜。最有效的方法是:
tcpdump看包有没有到。wg show看 WireGuard 有没有握手。conntrack看连接有没有被跟踪。drill看 DNS 是否正确。nft看防火墙规则是否生效。nlbwmon看设备流量。luci-app-statistics看性能趋势。
有了这些工具,旁路由、OpenClash、WireGuard、DNS 的大多数问题都能定位到具体层级。