Linux

在同一個 LAN 中傳遞的 Netcat 消息似乎不起作用

  • April 28, 2018

我正在嘗試使用netcat將一條消息從我家區域網路中的一台電腦發送到同一區域網路中的另一台電腦。這是我在 bash 中執行的程式碼:在PC1

nc -l -p 31337

PC2中(私有 IP 地址 192.168.1.10)

nc 192.168.1.10 31337

問題是當我在一個終端中發送消息時,另一台 PC 上似乎沒有出現任何內容,反之亦然。在同一台 PC 上做同樣的事情,但打開兩個終端視窗,一切正常。但是,將一條消息從一個終端發送到同一台電腦中的另一個終端是沒有意義的。我想要的是從我家區域網路中的一台 PC 發送到另一台。

PS我在兩台PC上都在使用Ubuntu 16.04.4

你測試這個的方式是:

  1. 在 PC1 和 PC2 上打開第二個視窗,啟動tcpdumpwireshark在 LAN 介面上,例如tcpdump -ni eth0

2)ping從 PC1 到 PC2,從 PC2 到 PC1。查看是否收到 ping 回复,驗證是否可以看到轉儲中的數據包。

如果您看不到 ping 回复,則說明您的網路設置中的某些內容已損壞。找到它並修復它。

3)現在使用nc,再次觀察數據包。根據結果,您現在知道問題出在哪裡。

問題是我的 Windows 防火牆阻止了對埠 31337 的入站請求(PC 中的程式碼在 Windows 的 Linux 子系統上執行)。因此,您必須轉到控制面板 -> 系統和安全 -> Windows Defender 防火牆並選擇高級設置。有一個新的入站規則允許對埠 31337 的請求。

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