SSH 服务启动时出现如下错误:fatal: Cannot bind any address

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

问题描述


云服务器 ECS (Elastic Compute Server) Linux 服务器启动 SSH 服务时,命令行或 secure日志出现类似如下错误信息:

  • FAILED.
  • fatal: Cannot bind any address.
  • address family must be specified before ListenAddress.

问题原因


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

处理办法


要解决该问题,请进行如下配置检查和修改:

  1. 通过 管理终端 进入系统。
  2. 通过 cat 等指令查看 /etc/ssh/sshd_config 中是否包含类似如下配置:
    AddressFamily inet6
    说明:该参数可选值为:
    • inet:使用 IPV4 协议簇,为默认值。
    • inet6:使用 IPV6 协议簇。
    • any:同时启用 IPV4 和 IPV6 协议簇。
  3. 如果需要修改相关策略配置,在继续之前建议进行文件备份。

  4. 使用 vi 等编辑器,将参数值设置为 inet,或者整个删除或注释(在最开头添加 # 号)整行配置。比如:

    # AddressFamily inet
  5. 同时,确保 AddressFamily 参数在ListenAddress 之前配置,比如:

    AddressFamily any   #该行配置在前面
    ListenAddress 0.0.0.0

如果还有问题,可以参阅云服务器 ECS Linux SSH 无法登录问题排查指引做进一步排查分析。

 转载:https://help.aliyun.com/knowledge_detail/13125036.html#SSH%20%E6%9C%8D%E5%8A%A1%E5%90%AF%E5%8A%A8%E6%97%B6%E5%87%BA%E7%8E%B0%E5%A6%82%E4%B8%8B%E9%94%99%E8%AF%AF%EF%BC%9Afatal:%20Cannot%20bind%20any%20address

原文地址:https://www.cnblogs.com/pangguoping/p/5644865.html