本文介紹在Linux系統的ECS實例中,啟動SSH服務時提示“fatal: Cannot bind any address”錯誤的原因和解決方案。
問題現象
在Linux系統的ECS實例中啟動SSH服務時,命令行或Secure日志出現類似如下錯誤信息。
FAILED.
fatal: Cannot bind any address.
address family must be specified before ListenAddress.
問題原因
該問題可能是因為ECS實例中SSH服務的配置文件/etc/ssh/sshd_config
中AddressFamily配置為inet6,但ECS實例沒有啟用IPv6或IPv6協議配置錯誤,導致出現該問題。
解決方案
以VNC方式遠程連接ECS實例。
具體操作,請參見通過密碼認證登錄Linux實例。
執行如下命令,查看
/etc/ssh/sshd_config
配置文件。cat /etc/ssh/sshd_config
當返回信息包含如下內容時,說明配置了IPv6協議族。
AddressFamily inet6
說明AddressFamily參數值說明如下。
inet
:使用IPv4協議族,為默認值。inet6
:使用IPv6協議族。any
:同時啟用IPv4和IPv6協議族。
修改AddressFamily參數值。
重要修改時,請確保AddressFamily參數在ListenAddress之前配置,方能生效。
執行如下命令,打開
/etc/ssh/sshd_config
配置文件。vim /etc/ssh/sshd_config
按
i
鍵進入編輯模式。將AddressFamily設置為
inet
,或在AddressFamily前加#注釋該配置,如下所示。# AddressFamily inet6 #注釋該配置
AddressFamily inet4 #使用IPv4協議簇
按下
Esc
鍵后,輸入:wq
并按Enter
鍵以保存關閉配置文件。
執行以下命令,重啟SSH服務。
systemctl restart sshd.service
文檔內容是否對您有幫助?