我可以通过 CLI 执行某些操作,以显示在尝试连接到域/URI 时是否存在 ERR_CONNECTION_RESET?

我可以通过 CLI 执行某些操作,以显示在尝试连接到域/URI 时是否存在 ERR_CONNECTION_RESET?

我可以从 2 个不同位置的 2 个不同 linux 客户端的 linux 命令行执行任何操作,这些操作可能会显示连接尝试的输出中不存在 ERR_CONNECTION_RESET 消息(或类似消息)?我想知道在尝试使用 https 通过域或完整 URI 进行连接时是否有办法可以做到这一点。

(我的理解是,ERR_CONNECTION_RESET 可能表明连接由于防火墙阻塞而失败。我试图确定在使用一个连接路径与另一个连接路径相比时,资源是否存在潜在的阻塞防火墙)。

答案1

curl当命令的退出代码为 56 时连接被对等方重置发生:

56 接收网络数据失败。

curl http://someurl/
$ curl http://192.0.2.2:8080/
unfinished data...
curl: (56) Recv failure: Connection reset by peer
$ echo $?
56

(从文档中)不能保证 56 仅由以下原因引起连接被对等方重置甚至那个连接被对等方重置只能以 56 退出,但也可以过滤错误标准错误像这样(2>&1故意放在第一位):

LANG=C curl --no-progress-meter http://someurl/ 2>&1 >/dev/null |
    grep -Fq 'Connection reset by peer' && echo RST || echo non-RST

这将打印 RST连接被对等方重置以及其他任何事情(包括成功)的非 RST。

用于生产将是一件很脆弱的事情(该字符串可能显示为标头数据等),但因为它是用于调试特定问题......

相关内容