在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.

 

问题原因

SSH服务的AddressFamily参数用于指定运行时使用的协议簇。如果配置只使用了IPV6,而系统内没有启用IPV6、或IPV6协议没有得到有效配置,就可能会导致出现该问题。

 

用户告知

本文相关配置及说明在CentOS 7.6 64位操作系统中进行测试。其它类型版本操作系统配置可能有所差异,具体情况请参阅相应操作系统官方文档。

 

解决方案

我们提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

解决步骤如下。

  1. 通过管理终端进入系统。
  2. 通过cat命令查看/etc/ssh/sshd_config中是否包含类似如下配置。
    AddressFamily inet6

    注:常用参数说明如下。

    • inet使用 IPV4 协议簇,为默认值。
    • inet6使用 IPV6 协议簇。
    • any同时启用 IPV4 和 IPV6 协议簇。
  3. 使用vi等编辑器,将参数值设置为inet,或者整个删除或注释(在最开头添加#号)整行配置,操作类似如下。
    # AddressFamily inet

    注:确认AddressFamily参数在ListenAddress之前配置,方能生效。

 

适用于

  • 云服务器 ECS

 

如果您的问题仍未解决,您可以联系【云技术在线】工程师

【云技术在线】免费提供阿里云、华为云、腾讯云的产品选型,架构设计,安装配置,故障排查,数据迁移等技术服务,有任何需求请与我们联系!13121395187(微信同号)