You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用/etc/hosts配置IPv6主机名SSH连接闲置1分钟被断开如何解决

可能的原因

  1. 地址配置不一致:/etc/hosts中填写的IPv6地址为台式机的公网IPv6地址,你直接连接时使用的是内网IPv6地址(ULA/链路本地地址)。公网IPv6链路通常会被运营商或家庭路由器设置60秒的会话闲置超时,无流量就会自动切断连接,而内网IPv6不受该规则限制。
  2. SSH配置差异化:你的Mac本地~/.ssh/config文件中针对该主机名存在单独配置,未启用SSH保活机制,而直接连接IP时走全局配置,默认开启了保活,所以不会断连。
  3. 地址解析优先级问题:/etc/hosts中该主机名同时绑定了IPv4和IPv6地址,SSH默认优先走IPv4链路,而你的IPv4链路存在闲置超时规则。

解决方法

方案1:配置SSH保活机制(通用,适配所有场景)

直接在Mac侧配置SSH主动发送保活包,避免闲置断连:

  1. 打开终端编辑SSH配置文件:nano ~/.ssh/config(如果文件不存在会自动新建)
  2. 添加以下内容:
Host 你配置的主机名
  ServerAliveInterval 30
  ServerAliveCountMax 2
  AddressFamily inet6

参数说明:

  • 每30秒向服务端发送一次保活探测包
  • 连续2次探测无响应才会断开连接
  • AddressFamily inet6强制走IPv6连接,避免解析到IPv4地址出问题
  1. 保存退出后重新连接即可生效。

如果需要对所有SSH连接生效,把第一行Host 你配置的主机名改为Host *即可。

也可以选择在Ubuntu服务端配置,修改/etc/ssh/sshd_config添加:

ClientAliveInterval 30
ClientAliveCountMax 2

修改完成后执行sudo systemctl restart sshd生效。

方案2:修正/etc/hosts配置

核对你直接连接时使用的IPv6地址,替换掉/etc/hosts中原来的公网IPv6地址,优先使用固定的内网ULA地址(fc00::/7开头)或者链路本地地址,避免走公网链路。

内容的提问来源于stack exchange,提问作者rainboat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 06:27:02