gpt4 book ai didi

shell - 测试远程 TCP 端口是否从 shell 脚本打开

转载 作者:可可西里 更新时间:2023-11-01 02:28:33 25 4
gpt4 key购买 nike

我正在寻找一种快速简单的方法来正确测试给定的 TCP 端口是否在远程服务器上从 Shell 脚本内部打开。

我已经设法用 telnet 命令做到了,当端口打开时它工作正常,但它似乎没有超时,只是卡在那里......

这是一个示例:

l_TELNET=`echo "quit" | telnet $SERVER $PORT | grep "Escape character is"`
if [ "$?" -ne 0 ]; then
echo "Connection to $SERVER on port $PORT failed"
exit 1
else
echo "Connection to $SERVER on port $PORT succeeded"
exit 0
fi

我要么需要更好的方法,要么需要一种方法来强制 telnet 在 8 秒内未连接时超时,并返回我可以在 Shell 中捕获的内容(返回代码或标准输出中的字符串)。

我知道 Perl 方法,它使用 IO::Socket::INET 模块并编写了一个测试端口的成功脚本,但我宁愿尽可能避免使用 Perl。

注意:这是我的服务器正在运行的(我需要从中运行它)

SunOS 5.10 Generic_139556-08 i86pc i386 i86pc

最佳答案

正如 B. Rhodes 所指出的,nc ( netcat ) 将完成这项工作。更紧凑的使用方式:

nc -z <host> <port>

这样 nc 将只检查端口是否打开,成功时以 0 退出,失败时以 1 退出。

快速交互式检查(超时 5 秒):

nc -z -v -w5 <host> <port>

关于shell - 测试远程 TCP 端口是否从 shell 脚本打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4922943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com