Shell
tcpdump:總是顯示數字埠號
-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
安全漏洞和諸如此類的有風險的東西。† 一位同事曾經試圖讓我輸入 Linux
tcpdump
標誌;他們不知道我的桌面系統是 OpenBSD。它並不順利。