图片来源:https://www.pixiv.net/artworks/82352687
要抓取一些由于众所周知的原因无法直接使用的软件的报文或者要抓取软件在不同国家/城市下报文时,可以配置透明代理,在软件客户端不感知代理环境的情况下抓取尽量真实的流量
配置透明代理
以Ubuntu为例,采用v2ray + v2rayA
内置透明代理。这个方案配置上比较简单,但日常使用体验上个人感觉比v2ray + qv2ray + cgproxy
的方案略差一些
安装v2ray
由于Ubuntu和v2ray官方都没有提供软件源,这里选择第三方的铜豌豆Linux软件源
添加软件源
sudo wget -c -O atzlinux-archive-keyring_lastest_all.deb https://www.atzlinux.com/atzlinux/pool/main/a/atzlinux-archive-keyring/atzlinux-archive-keyring_lastest_all.deb
sudo apt -y install ./atzlinux-archive-keyring_lastest_all.deb
sudo dpkg --add-architecture i386
sudo apt update
安装v2ray
sudo apt install v2ray
安装v2rayA
wget -qO - https://apt.v2raya.org/key/public-key.asc | sudo tee /etc/apt/trusted.gpg.d/v2raya.asc
添加 v2rayA 软件源
echo "deb https://apt.v2raya.org/ v2raya main" | sudo tee /etc/apt/sources.list.d/v2raya.list
sudo apt update
安装v2rayA
sudo apt install v2raya
配置
启动v2rayA并设置开机自启
sudo systemctl enable --now v2raya
如果不想开机自启,可以在需要用的时候手动启动
sudo systemctl start v2raya
访问http://127.0.0.1:2017/,第一次访问设置帐号密码
点击左上“导入”按钮填写节点链接地址或者订阅地址,点击确认。至于如何获取节点链接地址或者订阅地址,请自己想办法
点击右上角设置,配置参考如下图,也可以根据需要自行修改,修改完成点击“保存并应用”(第四项转发DNS请求有助于让流量更真实,但如果代理节点在国外可能会影响国内网站的访问速度,甚至可能出现无法访问的情况,请根据需要修改)
选择一个节点连接,然后点击左上角启动即可。由于我导入的是订阅地址,会生成一订阅名相关的标签,节点在该标签里,如果导入的是节点地址,节点会出现在“Server”标签里阅地址
设置完成后,访问http://www.ip111.cn/测试一下
抓包
Wireshark
Linux安装wireshark之后可能会出现找不到网卡无法抓包的情况,解决方案参考这个:https://blog.geekgo.tech/linux/linux%e4%b8%8bwireshark%e6%97%a0%e6%b3%95%e6%8a%93%e5%8c%85%e9%97%ae%e9%a2%98/
一般情况下不建议直接将透明代理和要抓包的软件安装在同一设备上,因为:
- 透明代理会自动转发、加密流量,软件的流量到达出口网卡时已经加密了抓取不到原始报文
- 如果使用wireshark抓取any设备来强行抓加密前的流量的话,libpcap会进入“Linux cooked-mode capture (SLL)”,所有报文的“Ethernet”层会被替换成伪协议(pseudo-protocol)“Linux cooked capture”
建议的做法是在配置了透明代理的LinuxPC上开启无线热点,将要抓包的软件安装在其他设备上并连接热点,使用wireshark直接抓取入口无线网卡的报文即可(无线网卡名称一般以“wl”开头,如“wlan0”)
无线网卡
如果你是在Linux PC上配置的透明代理环境,并且恰巧你的主版没有内置无线网卡,那就需要一张USB无线网卡,但市面上很多宣传支持Linux的USB无线网卡实际只是能连接WIFI,并不支持AP模式开热点。目前我测试过的有rt5370芯片和 rt3070芯片的无线网卡linux上都是可以开热点的,也不用折腾第三方驱动,价格在30-40软妹币之间,抓包分析用足够了。
查看无线网卡是否支持AP模式
iw list | grep 'Supported interface modes' -A 20
支持AP模式的话,“Supported interface modes”下会有一行“* AP”
Supported interface modes:
* IBSS
* managed
* AP
* AP/VLAN
* monitor
* P2P-client
* P2P-GO
* P2P-device
参考:
- v2rayA官方文档
- How can I tell if my wifi dongle has access-point capabilities?
- 铜豌豆Linux软件源
- https://wiki.wireshark.org/SLL.md
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。