Shell

tcpdump:總是顯示數字埠號

  • August 25, 2022

-n中的選項tcpdump很有用。有時我更喜歡查看 IP 地址,有時我更喜歡將 IP 地址解析為主機名。

但我永遠不想將埠號翻譯成“名稱”。

我怎樣才能始終將埠號顯示為數字,即53而不是domain.

如果這是不可能的,我該如何修補tcpdump以便埠號始終以數字顯示?

tcpdump 4.9.3-1~deb10u2在 Debian 10 上使用。

Linux 附帶的 中可能有一個-nn標誌(這些標誌不可移植†;Centos Linux Stream 有 4.9.3,希望與 Debian 相同)以防止例如顯示為,但這也會禁用主機名查找。因此,您可能正在查看原始碼更新檔。tcpdump``.22``.ssh

如果你-n查看源程式碼(如果您願意,只需在全域中使用 kluge ),然後在您的自定義標誌存在時修改埠轉換以使其不發生(根據您的需要,您可以通過多種不同的方式將其與或其他方式結合使用)。addrtoname.c``tcpdump.c``getopt``int Flag_Myflag;``addrtoname.c``-n``-nn

           if (Flag_Myflag) {
                   (void)snprintf(buf, sizeof(buf), "%d", port);
                   table->name = strdup(buf);
           } else
                   table->name = strdup(sv->s_name);

缺點:您現在可以手動更新和修補您的自定義tcpdump安全漏洞和諸如此類的有風險的東西。

† 一位同事曾經試圖讓我輸入 Linuxtcpdump標誌;他們不知道我的桌面系統是 OpenBSD。它並不順利。

引用自:https://unix.stackexchange.com/questions/714849