Linux

如何在 2 個 linux 主機之間的特定 UDP 埠上測試網路連接

  • January 24, 2020

我正在尋找一種方法來測試 2 個 linux 主機之間特定埠上的網路連接。

舉個例子:我正在通過埠 514 從伺服器 A 向伺服器 B 發送 syslog 事件。但是,伺服器 B 從未收到來自伺服器 A 的事件。我可以確認伺服器 A 正在發送它,並且伺服器 B 上的埠 514 已打開。目前,我懷疑這些伺服器之間的防火牆阻止了 514 連接。

在這種情況下,是否有任何工具或方法可以幫助驗證是否為埠 514 打開了防火牆?

您可以做幾件事。

首先,檢查您認為正在執行並在某些埠上偵聽的服務是否確實在偵聽,為此,請使用 netstat:

netstat -plunt

不僅如此,您還可以使用像 Wireshark 這樣的數據包分析器或稱為 tcpdump 的 Linux 內置工具。

要分析名為 eth0 的網路介面卡上的所有流量,請執行:

tcpdump -i eth0 

要分析 nic eth0、協議 udp 和埠 514 上的所有流量:

tcpdump -i eth0 -n udp 'port 514'

如果您懷疑其中一台機器上的防火牆,那麼您可以通過發出下一個命令列出該機器上的所有活動規則:

sudo iptables -S

可以在此處找到有關可以執行以幫助您解決問題的 iptables 命令的更多資訊。

我將採取的另一個故障排除步驟是從 syslog 發送機器遠端登錄到埠 514 中的 syslog 接收機器:

telnet hostB:514

如果您的會話已打開,則意味著 hostA 可以通過給定埠訪問 hostB。

引用自:https://serverfault.com/questions/895505