在本地 Wireshark 上直接捕获远程主机(如路由器、服务器)的流量,是网络调试中非常实用的技巧。本文以 UniFi Dream Router 7 为远程目标,完整演示从生成密钥到 Wireshark 开始抓包的整个配置流程。
一、准备工作
-
远程主机(本例为 UDR7)已开启 SSH 服务,且本地电脑能与它网络互通。
-
本地电脑安装 Wireshark(建议 4.0 以上版本)。
-
远程主机已安装
tcpdump(UDR7 默认自带,若没有可自行安装)。
二、生成兼容 Wireshark 的 SSH 密钥对
Wireshark 的 SSH 远程捕获功能对私钥格式有特定要求,需要 传统 PEM 格式 (以 -----BEGIN RSA PRIVATE KEY----- 开头)。
在 Windows PowerShell 中执行:
sql
powershell
ssh-keygen -t rsa -b 4096 -m PEM -f C:\Users\你的用户名\.ssh\wireshark_rsa
参数说明:
-
-t rsa -b 4096:生成 4096 位的 RSA 密钥。 -
-m PEM:关键参数,强制输出 Wireshark 可识别的格式。 -
-f:指定保存路径和文件名。
执行后,系统会询问是否设置密码短语(passphrase)。建议直接按两次回车(留空),避免 Wireshark 加载时出现交互问题。
生成完成后,在 C:\Users\你的用户名\.ssh\ 目录下会得到两个文件:
-
wireshark_rsa------ 私钥(供 Wireshark 使用) -
wireshark_rsa.pub------ 公钥(需部署到远程主机)
三、将公钥部署到远程主机
3.1 常规 OpenSSH 服务器
若远程主机使用 OpenSSH,将公钥内容追加到 ~/.ssh/authorized_keys 即可:
sql
powershell
type C:\Users\你的用户名\.ssh\wireshark_rsa.pub | ssh root@远程IP "cat >> ~/.ssh/authorized_keys"
然后设置正确权限(可在登录后执行):
php
bash
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
3.2 适配 Dropbear(如 Ubiquiti 设备)
UniFi 系列路由器使用 Dropbear SSH 服务,其授权密钥文件路径为 /etc/dropbear/authorized_keys。手动添加方法如下:
-
SSH 登录到路由器(用密码):
phpbash ssh root@192.168.1.1 -
创建目录并追加公钥:
phpbash mkdir -p /etc/dropbear echo "公钥内容(即 wireshark_rsa.pub 文件中的全部字符)" >> /etc/dropbear/authorized_keys
四、验证免密登录是否生效
在本地 PowerShell 中测试:
php
powershell
ssh -i C:\Users\你的用户名\.ssh\wireshark_rsa root@远程IP "echo 连接成功"
如果输出 连接成功,表示密钥认证已配置正确。
五、在 Wireshark 中配置远程捕获
-
打开 Wireshark,点击菜单栏 捕获(Capture) → 选项(Options)。
-
在接口列表中找到 SSH remote capture ,点击其左侧的 ⚙️ 齿轮图标 进入设置。
-
填写以下信息:
-
主机 (Host) :远程 IP 地址(如
192.168.1.1) -
端口 (Port) :
22(若 SSH 端口非标准则相应修改) -
用户名 (Username) :
root(或您的登录用户名) -
认证方式 :选择 Public Key
-
私钥文件 :点击浏览,选择
C:\Users\你的用户名\.ssh\wireshark_rsa(不带.pub后缀) -
密码短语 (Passphrase):留空(因为生成时未设置)
-
-
切换到顶部的 捕获 (Capture) 选项卡,在 远程接口 (Remote interface) 输入框中填写要抓包的网卡名称。若不确定,可先在远程主机执行
ip a查看,常见接口如br0(桥接)、eth0等。 -
点击 确认 保存配置。
六、开始抓包
返回 Wireshark 主界面,双击刚配置好的 SSH remote capture 接口,或选中它并点击左上角的蓝色鲨鱼鳍按钮,即可开始实时捕获远程主机的网络流量。
抓包过程中,您可以在 Wireshark 的过滤栏设置显示过滤器(如 host 192.168.1.100),以聚焦于特定流量。
七、关键注意事项
-
私钥格式 :务必确保文件首行为
-----BEGIN RSA PRIVATE KEY-----,否则 Wireshark 无法加载。 -
路径与权限 :远程主机上
.ssh目录权限应为700,authorized_keys为600;Dropbear 场景则需关注/etc/dropbear/authorized_keys权限。 -
抓包接口选择 :远程主机的接口名可能不同于本地,请提前确认(
ip a或tcpdump -D)。 -
网络连通性:配置前先用普通 SSH 客户端测试能否正常连接,确保防火墙未阻断 22 端口。
八、结语
通过上述步骤,您可以快速在 Wireshark 中建立与远程主机的 SSH 连接,并直接捕获其网络接口的流量,无需在远程端手动运行 tcpdump 再传输文件,显著提升调试效率。无论是家庭网关、云服务器还是嵌入式设备,这一方法均适用。
希望这份指南能为您的网络分析工作带来便利。如有其他使用场景或扩展需求,也欢迎进一步探索 Wireshark 的强大功能。