Linux

在嘗試連接到域/URI 時,我是否可以通過 CLI 執行某些操作以顯示 ERR_CONNECTION_RESET 的存在或不存在?

  • February 21, 2022

我是否可以從 2 個不同位置的 2 個不同 linux 客戶端的 linux 命令行執行任何操作,這可能顯示連接嘗試的輸出中不存在 ERR_CONNECTION_RESET 消息(或類似消息)?我想知道在嘗試通過域或使用 https 的完整 URI 進行連接時是否有辦法做到這一點。

(我的理解是,ERR_CONNECTION_RESET 可能表明連接由於防火牆阻塞而失敗。我試圖確定在使用一個連接路徑與另一個連接路徑時是否存在潛在的資源阻塞防火牆)。

當對等點重置連接時,該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 退出,但也可以像這樣過濾stderr2>&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。

用於生產將是一件脆弱的事情(此字元串可能顯示為標題數據等),但因為它用於調試特定問題……

引用自:https://unix.stackexchange.com/questions/691524