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 协议没有得到有效配置,就可能会导致出现该问题。
处理办法
要解决该问题,请进行如下配置检查和修改:
- 通过 管理终端 进入系统。
- 通过 cat 等指令查看 /etc/ssh/sshd_config 中是否包含类似如下配置:
说明:该参数可选值为:AddressFamily inet6
- inet:使用 IPV4 协议簇,为默认值。
- inet6:使用 IPV6 协议簇。
- any:同时启用 IPV4 和 IPV6 协议簇。
-
如果需要修改相关策略配置,在继续之前建议进行文件备份。
-
使用 vi 等编辑器,将参数值设置为 inet,或者整个删除或注释(在最开头添加 # 号)整行配置。比如:
# AddressFamily inet
-
同时,确保 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
UnixFBI 运维特工
www.unixfbi.com