有没有人研究过从 Bash 形成和发送测试 UDP 数据包?除了一段代码中的 TCP 端口外,我还需要测试一些 UDP 端口。TCP很容易,因为它是面向连接的。另一方面,UDP 更具挑战性。我假设必须构建数据包并将其发送出去,然后 bash 必须等待回复或超时以确定端口是否在另一端打开。可以使用其他实用程序,但是我想尽量避免使用它,因为直接使用 Bash for TCP 非常容易。关于如何做到这一点的任何想法?目标是监控服务器的端口检查工具。是的,还有其他工具,例如 NMAP,但我不需要复杂的端口扫描器。
* 更新 *
接受 Barmar 的建议并尝试使用 netcat,但我无法让它与 UDP 一起使用。每当我尝试 UDP 时,终端就会卡住:
netcat -uvz 8.8.8.8 53
这也不起作用,这是谷歌的一个直接例子
nc -vnzu server.ip.address.here 1-65535 > udp-scan-results.txt
* 更新 *
对于那些说“你不能用 netcat 做到这一点”的人,你能解释一下为什么所有这些人都说你可以吗?网猫怎么了...
http://www.radarearth.com/content/using-netcat-udp-port-troubleshooting
https://gist.github.com/benhosmer/2429640
http://www.thegeekstuff.com/2012/04/nc-command-examples/
* 更新 *
这是另一个:
http://mikeberggren.com/post/16433061724/netcat
* 更新 *
这里还有一些与上述所有内容相矛盾的其他证据……叹息
页面的最底部,在“注意事项”下
http://linux.die.net/man/1/nc
* 解决方案 *
这最终帮助我理解了自己的逻辑。希望它也能帮助其他人。
http://serverfault.com/questions/416205/testing-udp-port-connectivity