![使用 /dev/tcp/host/port 命令的不同方法以及在哪里可以找到这方面的手册页](https://linux22.com/image/131015/%E4%BD%BF%E7%94%A8%20%2Fdev%2Ftcp%2Fhost%2Fport%20%E5%91%BD%E4%BB%A4%E7%9A%84%E4%B8%8D%E5%90%8C%E6%96%B9%E6%B3%95%E4%BB%A5%E5%8F%8A%E5%9C%A8%E5%93%AA%E9%87%8C%E5%8F%AF%E4%BB%A5%E6%89%BE%E5%88%B0%E8%BF%99%E6%96%B9%E9%9D%A2%E7%9A%84%E6%89%8B%E5%86%8C%E9%A1%B5.png)
使用 /dev/tcp/host/port 命令有哪些不同的方法以及在哪里可以找到这方面的手册页?
< /dev/tcp/www.google.com/80
cat > /dev/tcp/www.google.com/80
答案1
至于官方参考的语法,男人狂欢并搜索有关重定向的部分。
检查 Solaris 机器上数千个节点的某些端口的连接性,其中 netcat 或 nc 不可用
一种方法是使用 bash 的网络重定向功能将一些文本回显到该主机的端口并查看是否成功。 Bash 根据其连接到该主机上的该端口的能力返回 true/false。
示例代码,显示主机数组、端口数组,并尝试通过 TCP 连接到这些端口:
#!/bin/bash
hosts=(127.0.0.1 127.0.0.2 127.0.0.3)
ports=(22 23 25 80)
for host in "${hosts[@]}"
do
for port in "${ports[@]}"
do
if echo "Hi from Bharat's scanner at $(uname -n)" 2>/dev/null > /dev/tcp/"$host"/"$port"
then
echo success at "$host":"$port"
else
echo failure at "$host":"$port"
fi
done
done
由于 UDP 是无状态的,因此测试的返回码对于扫描没有用处。你必须使用AB的例子捕获输出并查看它是否符合您的期望。