一、如何修改ping命令

0 linux networking ping package-management

我对内核编程有点陌生,但正在尝试修改 Linux 中 ping 命令的功能。我正在使用 Ubuntu,我相信它使用 iputils 来创建位于我机器上 bin 中的二进制 ping 命令。但是,我也在Linux源代码的net/ipv4和net/ipv6文件夹中找到了一个ping.c文件。所以我的主要问题是:

net 文件夹中的 ping.c 文件在做什么?如何修改 ping 命令,因为它是 iputils 的一部分?更具体地说,我已经从这里提取了 iputils ,但是在修改源代码后,我真的不知道如何编译它/重新安装自定义包。

任何帮助将非常感激!

小智 5

ping二进制确实包含iputils。如果你想修改ping,那就是看的地方。您可以使用 iputils 附带的说明构建程序。

ping.clinux 源代码中的文件实现了' Ping socket '。这是一项创新,允许用户在没有特殊权限的情况下发送和接收 ICMP 消息。

  • 请注意,用户可以发送/接收 ping 的原因是因为 `ping` 二进制文件具有 `setuid` root 权限,并且在现代操作系统中它具有 `cap_net_raw+ep` 功能。最近在 Fedora 中应用了一种新方法。https://unix.stackexchange.com/a/592913/254422 (2认同)