Windows的 hyperV下安装 centos7 进行抓包
在 Windows 宿主机上抓包最推荐不需要在 CentOS 里安装复杂的图形化抓包工具。你可以在 Windows宿主机上运行Fiddler或Charles然后让 CentOS 的流量通过 Windows 代理。1. 配置 Windows 抓包工具以 Fiddler 为例在 Windows 上打开 Fiddler进入 Tools - Options - HTTPS。勾选Decrypt HTTPS traffic解密 HTTPS 流量。切换到Connections选项卡勾选Allow remote computers to connect允许远程计算机连接并记住端口号默认是 8888。重启 Fiddler。2. 获取 Hyper-V 宿主机的 IP在 Windows 命令行CMD中运行 ipconfig找到 Hyper-V 虚拟网卡的 IP通常叫 vEthernet (Default Switch)假设是 192.168.100.1。3. 在 CentOS 中导出并信任证书由于 Fiddler 解密了 HTTPS它会用自己的根证书重新加密。你的 CentOS 必须信任这个证书在 CentOS 内部打开浏览器访问 http://192.168.100.1:8888刚才记录的 IP 和端口。点击下载FiddlerRoot certificate通常是一个 .cer 或 .pem 文件。安装证书到 CentOS 系统中将下载的证书假设命名为 fiddler.crt拷贝到 CentOS 的证书目录下并更新系统信任库sudo cp fiddler.crt /etc/pki/ca-trust/source/anchors/ sudo update-ca-trust### 4. 设置 CentOS 代理并抓包 在 CentOS 终端中设置临时环境变量让流量走 Windows 的 Fiddler bash export http_proxyhttp://192.168.100.1:8888 export https_proxyhttp://192.168.100.1:8888现在你在 CentOS 中使用 curl https://www.baidu.com 或者运行你的程序Windows 上的 Fiddler 就能直接看到明文的 HTTPS 请求和响应了问题解决以下是我这次遇到的问题和解决方案1. 8888端口一直不通。可以尝试做放行最简单的就是直接关闭 windows 防火墙搞完记得打开2. 一直报证书失效2.1 老版本 CentOS 7 遗留的 DST Root CA X3 证书坑由于目前是 2026 年早在 2021 年 9 月全球最著名的 Lets Encrypt 老根证书DST Root CA X3就已经过期了。CentOS 7 系统如果很久没更新内置的证书库里还残留着这个过期证书会导致 curl 在校验某些通过该链签发的证书即使是抓包工具伪造的时直接报过期。**解决办法** 更新 CentOS 7 的系统根证书包让它识别最新的 CA 机构bash sudo yum update -y ca-certificates2.2 查看下载的证书有效期openssl x509 -in /etc/pki/ca-trust/source/anchors/fiddler.crt -noout -dates运行后它会输出两行关键信息notBefore证书的开始生效时间。notAfter证书的结束过期时间。如果证书时间查看不了那么是因为默认证书格式是 DER 但是因为 openssl 默认去读PEM 格式正确的转换与刷新步骤我们需要把这个二进制的 DER 证书转成标准的 PEM 文本证书然后强制系统“用力”刷新一次信任库。请在 CentOS 7 终端里依次执行以下三条命令# 1. 别慌用 -inform DER 参数直接把原证书转换并覆盖为合法的 PEM 格式 sudo openssl x509 -in /etc/pki/ca-trust/source/anchors/fiddler.crt -inform DER -out /etc/pki/ca-trust/source/anchors/fiddler.crt # 2. 此时再用你刚才的命令查一次时间百分之百能成功读出了 openssl x509 -in /etc/pki/ca-trust/source/anchors/fiddler.crt -noout -dates # 3. 使用【强力刷新】命令把老旧缓存全部冲掉强制提取刚刚转换好的新证书 sudo update-ca-trust force-extract3. 大功告成重新测试确保上面三步执行完且第二步没有报错后再次发起测试curl -I https://www.baidu.com这时候我在 fiddler 已经可以看到了。