我正在尝试使用以下命令将一条消息从家庭 LAN 中的一台计算机发送到同一 LAN 中的另一台计算机网猫。这是我在 bash 中运行的代码:电脑1
nc -l -p 31337
在电脑2(私有IP地址192.168.1.10)
nc 192.168.1.10 31337
问题是,当我在一个终端中发送消息时,另一台电脑上似乎没有出现任何内容,反之亦然。在同一台 PC 上执行相同的操作,但打开两个终端窗口,一切正常。然而,将一条消息从一个终端发送到同一计算机中的另一个终端是没有意义的。我想要的是从家庭局域网中的一台电脑发送到另一台电脑。
PS 我正在两台电脑上运行 Ubuntu 16.04.4
答案1
你测试这个的方法是:
1) 在PC1和PC2上打开第二个窗口,启动tcpdump
或wireshark
在LAN接口上,例如tcpdump -ni eth0
。
2)执行ping
从PC1到PC2,以及从PC2到PC1的操作。查看是否收到 ping 回复,验证您是否可以在转储中看到数据包。
如果您看不到 ping 回复,则表明您的网络设置中存在某些问题。找到它并修复它。
3) 现在使用nc
,再次观察数据包。根据结果,您现在知道问题出在哪里。
答案2
问题是我的 Windows 防火墙阻止了对端口 31337 的入站请求(PC 中的代码在 Windows 的 Linux 子系统上运行)。因此,您必须转到“控制面板”->“系统和安全”->“Windows Defender 防火墙”,然后选择“高级设置”。制定新的入站规则以允许对端口 31337 的请求。