是否可以看到 tcpdump 的真实源代码?

是否可以看到 tcpdump 的真实源代码?

在提问之前,我的问题文章可能有一些不正确的内容。我是一名 linux 新手和一名新手开发人员。

我有一个关于 Linux 的问题tcpdump源代码。据我所知,tcpdump 是使用libpcap。

  1. tcpdump 是如何工作的?我的看法是,由于 tcpdump 二进制可执行文件设置在小路。正确的?

  2. 我的主要问题是 tcpdump c 源代码在哪里?我已经知道 tcpdump 库代码,可从 tcpdump 主页访问tcpdump

我想查看包含主要函数、变量头文件的 tcpdump 真实 c 代码。请告诉我位置。

我使用 Ubuntu 16.04 LTS。

答案1

tcpdump可以在mainUbuntu 的存储库中找到。

下载源代码tcpdump

  • 确保已为deb-src类型包启用存储库,对于xenial(16.04),将以下内容添加到/etc/apt/sources.list

    deb-src http://archive.ubuntu.com/ubuntu/ xenial main restricted
    

    替换xenial为您的发布代号,您可以通过以下方式找到您的发布代号:

    lsb_release -sc
    
  • 现在通过与存储库同步来更新本地包列表:

    sudo apt-get update
    
  • 安装源代码tcpdump

    apt-get source tcpdump
    

    sudo它将被下载并自动提取到当前目录;除非您没有该目录的写权限,否则也不需要。

您需要的所有文件都在目录中tcdump-<version>,例如对于版本,4.5.1该目录为tcpdump-4.5.1

答案2

我不确定我是否理解了你的第一个问题,但是:

  1. 您可以找到GitHub 上的源代码。正如开发者网站上所示,你可以tcpdump使用以下命令克隆 GitHub 存储库:

    git clone https://github.com/the-tcpdump-group/tcpdump.git
    
  2. 编译代码时,您必须决定可执行文件的位置。只需确保它位于用户PATH变量指向的某个位置,或者只需修改您的代码PATH以包含该位置即可。

您也可以直接从 Canonical repo 通过sudo dpkg -i DEB_PACKAGEsudo apt-get install DEB_PACKAGE使用 GUI 安装它(如果您愿意的话)... 在这种情况下,您会在 找到您的二进制文件/usr/sbin/tcpdump。此外

 whereis tcpdump

将为您提供二进制文件(上述)、源代码和手册页文件的位置。

相关内容