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

如何在AKS上为回环IP 127.0.0.1开放22端口

问题根因

AKS默认节点镜像(Ubuntu/Azure Linux)和普通自建Linux VM的默认配置存在两处差异,会导致回环IP 22端口连接被关闭:

  • sshd服务默认仅监听节点主网卡IP,未绑定回环地址127.0.0.1
  • 节点内置的iptables/nftables规则默认拦截lo接口上未显式放行的22端口TCP流量,连接会被直接重置返回Connection closed报错

解决方案

根据操作场景选择对应配置即可:

场景1:节点主机层面访问127.0.0.1:22

  • 修改sshd监听配置
    可通过kubectl debug启动特权Pod挂载节点文件系统、或通过Azure串口控制台/SSH直连节点,编辑/etc/ssh/sshd_config文件,在原有ListenAddress配置下新增一行:
    ListenAddress 127.0.0.1
    
    不要删除原有节点主网卡IP的ListenAddress配置,避免影响节点正常SSH登录能力。
  • 添加防火墙放行规则
    执行对应命令添加lo接口22端口的放行规则:
    # Ubuntu节点使用iptables
    iptables -I AKS-INPUT -i lo -p tcp --dport 22 -j ACCEPT
    
    # Azure Linux节点使用nftables
    nft add rule inet filter AKS-INPUT iif lo tcp dport 22 accept
    
    上述规则临时生效,节点重启、kubelet重置规则后会失效,持久化可通过特权DaemonSet配置开机/规则重置时自动重添。
  • 重启sshd加载配置
    执行systemctl restart sshd,之后再通过telnet 127.0.0.1 22测试即可正常连通。

场景2:Pod内部访问自身回环IP的22端口

  • 先执行ss -tulnp | grep :22确认Pod内是否有进程监听127.0.0.1:22,无监听则先在Pod内启动sshd服务并配置绑定回环地址。
  • 若已存在监听仍报错,先检查Pod是否配置hostNetwork: true使用主机网络,是则参考场景1配置节点防火墙规则;若为普通Pod网络,检查是否启用了服务网格Sidecar(Istio/Linkerd等)拦截22端口流量,临时关闭Sidecar注入重建Pod即可验证。

注意:不要直接清空AKS节点默认防火墙规则做全放行,节点升级、kubelet重启时会自动重置默认规则,所有自定义节点配置建议通过DaemonSet做常驻同步,避免配置丢失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 13:48:23