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

反向SSH隧道为何绑定IPv6地址?如何切换为IPv4?

SSH反向代理绑定IPv6而非IPv4的原因及解决办法

原因

  • SSH反向代理未指定监听地址时,默认遵循sshd的配置策略:若系统开启IPv6支持,且sshd配置中AddressFamily设为默认的any,或ListenAddress包含::(IPv6任意地址),SSH会优先创建IPv6套接字。
  • 部分系统中localhost解析优先返回::1(IPv6回环地址),导致反向代理绑定到IPv6回环。另外,Linux下默认tcp6类型的套接字若未开启IPV6_V6ONLY选项,其实也能接收IPv4连接,只是netstat显示为tcp6。

解决办法

  • 强制指定IPv4监听地址:修改反向代理命令,明确绑定IPv4的任意地址或具体地址,比如:
    ssh -R 0.0.0.0:15:localhost:15 Machine2-IPv4
    
    这样会在Machine2上绑定IPv4的0.0.0.0:15,之后用telnet Machine2-IPv4 15即可连通。
  • 调整sshd配置:编辑Machine2上的/etc/ssh/sshd_config:
    • 将AddressFamily改为inet,限制sshd仅处理IPv4连接;
    • 或添加ListenAddress 0.0.0.0,让sshd只监听IPv4地址,重启sshd服务生效。
  • 验证兼容性:如果只是netstat显示tcp6,可以先测试telnet Machine2-IPv4 15,若能连通说明套接字兼容IPv4,无需修改也能满足需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 13:45:45