Networking

一些需要網際網路訪問的命令執行時間過長

  • March 17, 2022

最近我注意到一些需要網際網路訪問的命令在我的 Arch 系統上執行的時間太長。例如:

  • ssh ...需要 3 分鐘向我詢問密碼
  • pip install ...開始下載包需要 1 分鐘
  • npm install ...永遠掛起

但其他像 git 的,立即執行。大約一兩週前,這些命令突然變慢了。在他們工作正常之前。

我嘗試重新安裝 linux 並使用可啟動 USB 在 Ubuntu 和 Manjaro 上進行測試,但結果是一樣的。這不可能是由於網際網路連接速度慢造成的,因為我通常有 40 Mb/s 的下載和 10Mb/s 的上傳。目前我正在使用 EndeavourOS。

我嘗試將 my 設置/etc/resolv.conf8.8.8.8(Google 的公共 DNS 伺服器),但這並沒有解決速度問題。

我還在 Windows 上對其進行了測試(我有 Windows 和 Linux 的雙重引導)並且它工作正常。

ssh -vvv ...直到它暫停的地方的完整輸出:

OpenSSH_8.9p1, OpenSSL 1.1.1m  14 Dec 2021
debug1: Reading configuration data /etc/ssh/ssh_config
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts' -> '/home/whistleroosh/.ssh/known_hosts'
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts2' -> '/home/whistleroosh/.ssh/known_hosts2'
debug2: resolving "xxx" port 22
debug3: resolve_host: lookup xxx:22
debug3: ssh_connect_direct: entering
debug1: Connecting to xxx [yyy] port 22.
debug3: set_sock_tos: set socket 3 IPV6_TCLASS 0x48

有誰知道造成這種放緩的原因是什麼?

問題出在 IPv6 上。禁用它,例如通過使用sysctl -w net.ipv6.conf.all.disable_ipv6=1解決了這個問題。

通常當我看到這樣的事情是由於名稱解析超時。檢查將是一件好事。

  • 如果您有 /etc/nsswitch.conf,請確保沒有配置您未使用的服務。
  • 檢查配置的 DNS 名稱伺服器是否正確。
  • 您是否有處理反向解析的本地名稱伺服器?某些服務會嘗試查找您的客戶端的名稱以進行日誌記錄。如果反向解析停止,伺服器可能會在此期間掛起。

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