要確認主機網卡是否開啟了「節電功能」,必須根據您這台 Docker 主機的作業系統來檢查。以下為您整理 Linux 與 Windows 兩種系統的確認與關閉方法:
Linux 網卡省電主要看兩個機制:PCIe 連結省電 (ASPM) 與 綠能乙太網路 (EEE)。
在終端機輸入以下指令,查看網卡的電源管理狀態:
lspci -vvv | grep -i aspm
Config: L1 Enabled 或 L1.1 Enabled,代表 PCIe 網卡在閒置時會進入低功耗睡眠狀態,這容易導致 SSH 閒置斷線。使用 ethtool 工具(若未安裝可先 sudo apt install ethtool)檢查您的實體網卡(例如 eth0 或 enp3s0,可用 ip a 查詢網卡名稱):
sudo ethtool --show-eee eth0
EEE status:。如果是 enabled(已啟用),代表網卡在沒流量時會自動「降速或休眠」。關閉 EEE 節能:
sudo ethtool --set-eee eth0 eee off
如果您的 Linux 有安裝進階省電工具(如 tlp),請編輯設定檔 /etc/tlp.conf,找到以下兩行並修改:修改後重啟 TLP 服務:sudo systemctl restart tlp。
PCIE_ASPM_ON_AC=performance
ETH_POWERSAVE_ON_AC=off
如果您的主機是 Windows,Windows 的網卡省電管理非常激進,是最常導致內網閒置 Ping 不到的元凶。
Win + X,選擇 「裝置管理員」。