linux系统下手动编译wireshark的方法

前言

由于系统自带的wireshark版本过旧,在分析新类型的抓包时,存在字段不识别的问题。如果不用自带的wireshark,就需要手动tcpdump抓包,并用windows下的wireshark打开。这会导致一个问题,无法实时分析数据包的传输情况。由此,需要在linux下,手动编译最新版本的wireshark,从而能够达到实时分析新型协议栈的效果。

编译教程

注:以下教程以centos8为例

  1. 安装依赖库

    # yum包管理工具
    yum install cmake flex bison libtool perl qt5-qtbase-devel qt5-linguist qt5-qtmultimedia-devel qt5-qtsvg-devel automake libuv glib2-devel zlib-devel c-ares-devel libssh-devel systemd-devel gnutls-devel lz4-devel readline-devel libnl3-devel libtiff-devel libjpeg-devel 
    libjpeg-turbo-devel libxml2-devel libcap-devel rubygems-devel bzip2-devel
    # gem包管理工具
    gem install asciidoctor
    
  2. 编译安装依赖库:help2man

    # 参考下载地址
    http://mirrors.ustc.edu.cn/gnu/help2man/help2man-1.43.3.tar.gz
    # 解压缩后,开始编译
    ./configure
    make 
    make install
    
  3. 编译安装依赖库:makeinfo(textinfo)

    # 参考下载地址
    http://ftp.gnu.org/gnu/texinfo/texinfo-6.7.tar.xz
    # 解压缩后,开始编译
    ./configure
    make 
    make install
    
  4. 编译安装依赖库:libgpg-error

    # 参考下载地址
    ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.37.tar.bz2
    # 解压缩后,开始编译
    ./configure --prefix=/usr 
    make 
    make install &&
    install -v -m644 -D README /usr/share/doc/libgpg-error-1.37/README
    
  5. 编译安装依赖库:gcrypt

    # 参考下载地址
    wget ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.8.5.tar.bz2
    # 解压缩后,开始编译
    ./configure --prefix=/usr 
    make                      
    
    make -C doc html                                                       &&
    makeinfo --html --no-split -o doc/gcrypt_nochunks.html doc/gcrypt.texi &&
    makeinfo --plaintext       -o doc/gcrypt.txt           doc/gcrypt.texi
    
    make install &&
    install -v -dm755   /usr/share/doc/libgcrypt-1.8.5 &&
    install -v -m644    README doc/{README.apichanges,fips*,libgcrypt*} \
                        /usr/share/doc/libgcrypt-1.8.5 &&
    install -v -dm755   /usr/share/doc/libgcrypt-1.8.5/html &&
    install -v -m644 doc/gcrypt.html/* \
                        /usr/share/doc/libgcrypt-1.8.5/html &&
    install -v -m644 doc/gcrypt_nochunks.html \
                        /usr/share/doc/libgcrypt-1.8.5      &&
    install -v -m644 doc/gcrypt.{txt,texi} \
                        /usr/share/doc/libgcrypt-1.8.5
    
  6. 编译安装依赖库:libpcap(必选项,否则会导致不能抓包)

    # 参考下载地址
    https://www.tcpdump.org/release/libpcap-1.9.1.tar.gz
    # 解压缩后,开始编译
    ./configure
    make 
    make install
    
  7. 编译安装依赖库:libmaxminddb

    # 参考下载地址
    https://github.com/maxmind/libmaxminddb/releases/download/1.6.0/libmaxminddb-1.6.0.tar.gz
    # 解压缩后,开始编译
    ./configure
    make
    make check
    make install
    ldconfig
    
  8. 编译安装依赖库:libsmi

    # 参考下载地址
    https://www.ibr.cs.tu-bs.de/projects/libsmi/download/libsmi-0.5.0.tar.gz
    # 解压缩后,开始编译
    ./configure
    make
    make check
    make install
    
  9. 编译安装依赖库:zlib-1.2.11(包含minizlib)

    # 参考下载地址
    https://www.zlib.net/zlib-1.3.1.tar.gz
    # 解压缩后,开始编译
    修改configure,修改185行cflag,增加-fPIC
    ./configure
    make
    make install
    
    # 可选包 minizip,可以不安装,不影响wireshark的基本功能,用处不大
    1. 进入到minizip文件夹
    
    2. 进入文件夹zlib/contrib/minizip,修改makefile,增加如下内容:
    CFLAGS增加-fPIC
    LIB_OBJS = unzip.o minizip.o zip.o ioapi.o ../../libz.a
    libminizip.a: $(LIB_OBJS)
            ar rcs libminizip.a $(LIB_OBJS)
    3. 手动安装库
    复制minizip下的头文件到/usr/local/include/minizip
    复制minizip下的动态库到/usr/local/lib64
    
  10. 编译安装依赖库:brotli-1.0.9

    # 参考下载地址
    https://github.com/google/brotli/archive/refs/tags/v1.0.9.tar.gz
    # 解压缩后,开始编译
    mkdir out && cd out
    ../configure-cmake
    make
    make test
    make install
    
  11. 编译安装依赖库:snappy-1.1.8

    # 参考下载地址
    https://github.com/google/snappy/archive/refs/tags/1.1.8.tar.gz
    # 解压缩后,开始编译
    mkdir build
    cd build 
    cmake -DBUILD_SHARED_LIBS=true -DSNAPPY_BUILD_TESTS=0 ../
    && make
    make install
    
  12. 编译安装依赖库:zstd

    # 参考下载地址
    https://github.com/facebook/zstd/releases/download/v1.5.6/zstd-1.5.6.tar.gz
    # 解压缩后,开始编译
    make
    make install
    
  13. 编译安装依赖库:nghttp2

    # 参考下载地址
    https://github.com/nghttp2/nghttp2/releases/download/v1.62.1/nghttp2-1.62.1.tar.gz
    # 解压缩后,开始编译
    cd nghttp2-X.Y.Z
    ./configure
    make
    make install
    
  14. 编译安装依赖库:lua-5.2(不能使用最新版,推荐使用该版本)

    # 参考下载地址
    https://www.lua.org/ftp/lua-5.2.0.tar.gz
    # 解压缩后,开始编译
    vim /home/wireshark/lua-5.2.4/src/Makefile
    增加 -fPIC编译选项,否则,wireshark链接库会出错
    make linux
    make install
    
  15. 编译安装依赖库:libsndfile

    # 参考下载地址
    https://github.com/libsndfile/libsndfile/archive/refs/tags/1.2.2.tar.gz
    # 解压缩后,开始编译
    ./configure --enable-werror
    make
    make check
    make install
    
  16. 编译安装依赖库:sbc

    # 参考下载地址
    https://www.kernel.org/pub/linux/bluetooth/sbc-2.0.tar.xz
    # 解压缩后,开始编译
    export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
    ./bootstrap
    ./configure --prefix=/usr
    make
    make install
    
  17. 编译安装依赖库:spandsp

    # 参考下载地址
    https://www.soft-switch.org/downloads/spandsp/spandsp-0.0.6.tar.gz
    # 解压缩后,开始编译
    rm -rf config
    ./bootstrap
    ./configure
    make
    make install
    
  18. 编译安装依赖库:bcg729

    # 参考下载地址
    https://gitlab.linphone.org/BC/public/bcg729/-/archive/1.1.1/bcg729-1.1.1.tar.gz
    # 解压缩后,开始编译
    cmake . -DCMAKE_INSTALL_PREFIX=/usr
    make
    make install
    
  19. 编译安装依赖库:libilbc-2.0.2(不可用最新版)

    # 参考下载地址
    https://github.com/TimothyGu/libilbc/releases/download/v2.0.2/libilbc-2.0.2.tar.gz
    # 解压缩后,开始编译
    mkdir bulid
    cd build
    cmake ../
    make
    make install
    
  20. 编译安装依赖库:opus-1.1.2

    # 参考下载地址
    https://github.com/xiph/opus/archive/refs/tags/v1.1.2.tar.gz
    # 解压缩后,开始编译
    ./configure
    make
    make install
    
  21. 编译安装依赖库:doxygen-1.9.2

    # 参考下载地址
    https://github.com/doxygen/doxygen/archive/refs/tags/Release_1_9_2.tar.gz
    # 解压缩后,开始编译
    mkdir bulid
    cd build
    cmake -G "Unix Makefiles" ..
    make
    make install
    
  22. 编译安装依赖库:speexdsp-1.2.1

    # 参考下载地址
    http://downloads.xiph.org/releases/speex/speexdsp-1.2.1.tar.gz
    # 解压缩后,开始编译
    autogen.sh
    ./configure --prefix=/usr
    make
    make install
    
  23. 编译安装依赖库:krb5-1.19.2

    # 参考下载地址
    https://kerberos.org/dist/krb5/1.19/krb5-1.19.2.tar.gz
    # 解压缩后,开始编译
    cd /u1/krb5-VERSION/src
    ./configure
    make
    make install
    
  24. 编译wireshark

    # 参考下载地址
    https://2.na.dl.wireshark.org/src/wireshark-4.0.15.tar.xz
    # 解压缩后,开始编译
    mkdir dir
    cd dir
    cmake .. -DCMAKE_INSTALL_PREFIX=/home/wireshark-4.0.15
    make -j8
    -j后面的数字推荐为核数的两倍
    make install
    注意:安装流程非常重要,涉及到运行环境和插件的调用,否则会出现部分协议栈解析异常
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jiayuqicz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值