gpt4 book ai didi

bash - 如何减少 TCP connect() 系统调用超时?

转载 作者:可可西里 更新时间:2023-11-01 02:32:43 26 4
gpt4 key购买 nike

在下面的命令中,我启用文件 /dev/tcp/10.10.10.1/80 进行读写并将其与文件描述符 3 相关联:

$ time exec 3<>/dev/tcp/10.10.10.1/80
bash: connect: Operation timed out
bash: /dev/tcp/10.10.10.1/80: Operation timed out

real 1m15.151s
user 0m0.000s
sys 0m0.000s

这会自动尝试执行 TCP 三向握手。如果如上例所示无法访问 10.10.10.1,则 connect 系统调用将尝试连接 75 秒。这 75 秒超时是由 bash 决定的吗?还是这个系统默认?最后但同样重要的是,有没有办法减少这个超时值?

最佳答案

如前所述,如果不修改源代码,在 Bash 中是不可能的,尽管这是使用 timeout 命令的解决方法,例如:

$ timeout 1 bash -c "</dev/tcp/stackoverflow.com/80" && echo Port open. || echo Port closed.
Port open.
$ timeout 1 bash -c "</dev/tcp/stackoverflow.com/81" && echo Port open. || echo Port closed.
Port closed.

使用此语法,timeout 命令将在给定时间后终止进程。

有关更多选项,请参阅:timeout --help

关于bash - 如何减少 TCP connect() 系统调用超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24317341/

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