本文介绍在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
文档内容是否对您有帮助?