rpcapd是winpcap带的专门用来远程抓包的小工具,但是winpcap是给Windows用的,Linux下需要自己编译,如果要放到路由器上用,就要交叉编译了。
以前编译都是直接在OpenWrt/LEDE的menuconfig里面选,现在不能选了,需要直接用toolchain手动编译。
步骤如下:
# 首先要把OpenWrt/LEDE的SDK下载或者编译出来 # 以下的路径自行修改 export PATH=$PATH:/root/lede/staging_dir/toolchain-mipsel_24kc_gcc-5.4.0_musl-1.1.16/bin export STAGING_DIR=/root/lede/staging_dir/toolchain-mipsel_24kc_gcc-5.4.0_musl-1.1.16 export CC=mipsel-openwrt-linux-musl-gcc export CXX=mipsel-openwrt-linux-musl-g++ export AR=mipsel-openwrt-linux-musl-ar export RANLIB=mipsel-openwrt-linux-musl-ranlib export ac_cv_linux_vers=4.4.61 # 在https://www.winpcap.org/devel.htm 下载winpcap源码 unzip source.zip cd winpcap/wpcap/libpcap chmod +x configure ./configure --build=x86_64-unknown-linux-gnu --host=mipsel-openwrt-linux --with-pcap=linux make # 在winpcap/wpcap/libpcap/pcap-int.h 里加上一行 #include <string.h> 否则在 strlcpy 处会报错 cd rpcapd # 修改 Makefile # 修改编译器,改成CC=mipsel-openwrt-linux-gcc make file rpcapd # rpcapd: ELF 32-bit LSB executable, MIPS, MIPS32 rel2 version 1, dynamically linked, interpreter /lib/ld-musl-mipsel-sf.so.1, not stripped
相关参考:https://talpachen.github.io/2016/07/20/Net/rpcapd/
附我编译的
适用于LEDE(musl)的ar71xx版rpcapd:rpcapd_ar71xx.7z
适用于LEDE(musl)的ramips版rpcapd:rpcapd_ramips.7z