Linux服务器修改IP后SSH无法连接的排查与解决方法

admin
Linux服务器修改IP后SSH无法连接,需依次排查:首先确认IP配置正确,使用ip addr检查新IP是否生效,子网掩码、网关是否设置无误;其次检查SSH服务状态,systemctl status sshd确保服务运行,未启动则执行systemctl start sshd并设为开机自启;然后检查防火墙规则,firewall-cmd --list-ports确认22端口开放,未开放则添加;最后排查SELinux,getenforce查看状态,临时关闭setenforce 0或配置相应策略;同时验证客户端连接命令IP及端口是否正确,确保网络互通。

在服务器运维中,修改IP地址是常见操作,但有时会出现修改后无法通过SSH连接的情况,这通常与网络配置、SSH服务设置或安全策略有关,本文将系统分析可能导致该问题的原因,并提供详细的排查步骤和解决方案。

问题现象描述

当用户修改Linux服务器的IP地址后,尝试通过SSH客户端(如ssh username@new_ip)连接时,可能会遇到以下情况:

  • 连接超时(Connection timed out);
  • 连接被拒绝(Connection refused);
  • 或提示“Name or service not known”(若使用域名连接)。

这些问题会导致远程运维中断,需快速定位并解决。

Linux服务器修改IP后SSH无法连接的排查与解决方法

常见原因及排查步骤

网络配置错误(最常见原因)

修改IP后,若网络配置文件存在错误(如IP地址、子网掩码、网关设置不当),会导致服务器本身网络异常,自然无法接收SSH连接请求。

排查步骤:

  • 检查当前网络配置
    使用命令查看当前IP配置,确认是否与修改后的IP一致:

    # CentOS/RHEL
    ip addr show
    # 或
    ifconfig
    # Ubuntu
    ip addr show
    # 或
    ifconfig

    检查eth0(或默认网卡)的inet地址是否为修改后的新IP,子网掩码(netmask)和广播地址(broadcast)是否正确。

  • 检查网络配置文件
    根据Linux发行版不同,配置文件路径不同:

    • CentOS/RHEL 7+/etc/sysconfig/network-scripts/ifcfg-eth0(网卡名可能为ens33等,需根据实际调整)
      cat /etc/sysconfig/network-scripts/ifcfg-eth0

      确认以下参数正确:

      TYPE=Ethernet
      BOOTPROTO=static  # 静态IP
      IPADDR=新IP地址    # 如192.168.1.100
      NETMASK=子网掩码    # 如255.255.255.0
      GATEWAY=网关地址    # 如192.168.1.1
      DNS1=DNS服务器      # 如8.8.8.8
      ONBOOT=yes         # 开机启动
    • Ubuntu 18.04+/etc/netplan/目录下的yaml文件(如01-netcfg.yaml
      cat /etc/netplan/01-netcfg.yaml

      确认配置格式正确(注意缩进):

      network:
        version: 2
        ethernets:
          eth0:
            dhcp4: no
            addresses: [新IP地址/子网掩码长度]  # 如192.168.1.100/24
            gateway4: 网关地址                  # 如192.168.1.1
            nameservers:
              addresses: [DNS服务器]            # 如8.8.8.8
  • 重启网络服务
    修改配置文件后,需重启网络服务使配置生效:

    # CentOS/RHEL
    systemctl restart network
    # 或
    service network restart
    # Ubuntu
    netplan apply
    # 或
    systemctl restart systemd-networkd

    重启后再次通过ip addr确认IP是否生效。

  • 测试网络连通性
    在服务器上ping网关或外部地址(如ping 8.8.8.8),确认网络可达:

    ping 网关地址  # 如ping 192.168.1.1
    ping 8.8.8.8   # 测试外网连通性

    ping不通,说明网络配置存在错误(如网关错误、网线松动等),需先修复网络基础连通性。

SSH服务配置问题

修改IP后,若SSH服务的监听地址或端口配置不当,可能导致客户端无法连接。

排查步骤:

  • 检查SSH服务状态
    确认SSH服务是否正在运行:

    systemctl status sshd  # CentOS/RHEL (OpenSSH)
    # 或
    systemctl status ssh   # Ubuntu (OpenSSH)

    若未运行,启动服务并设置为开机自启:

    systemctl start sshd
    systemctl enable sshd
  • 检查SSH配置文件
    SSH主配置文件为/etc/ssh/sshd_config,重点检查以下参数:

    cat /etc/ssh/sshd_config | grep -E "ListenAddress|Port|PermitRootLogin"
    • ListenAddress:默认为0.0.0(监听所有IP),若修改为特定IP(如ListenAddress 127.0.0.1),则仅允许该IP连接,若新IP未在ListenAddress中,需添加或修改为0.0.0
      ListenAddress 0.0.0.0  # 监听所有IP(推荐)
      # 或
      ListenAddress 新IP地址   # 仅监听新IP
    • Port:默认为22,若修改了非默认端口,客户端需使用-p参数指定(如ssh -p 2222 username@new_ip)。
    • PermitRootLogin:若禁止root用户登录,需使用普通用户连接。
  • 重启SSH服务

文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码