ssh连不上虚拟机怎么办,防火墙配置错误如何排查?

ssh连不上虚拟机,绝大多数卡在网卡、端口和防火墙三处

遇到ssh连不上虚拟机,不要先怀疑系统坏了,按“网络通不通 → 端口通不通 → 服务起没起 → 防火墙拦没拦”的顺序排查,多数问题五分钟内能定位,下面直接按这个顺序拆解。

判断ssh连不上虚拟机是网络问题还是服务问题

先分清现象,不同报错指向完全不同的故障点,打开终端执行 ssh user@虚拟机IP,看报错:

ssh远程连接不上虚拟机解决办法
加载中
ssh远程连接不上虚拟机解决办法
  • Connection timed out(超时):数据包根本没到达虚拟机,问题出在网络链路或防火墙丢弃
  • Connection refused(拒绝连接):数据包到了,但22端口没监听或被防火墙拒绝
  • Permission denied(认证失败):网络和端口都正常,问题在密码、密钥或sshd配置

超时和拒绝是两类不同的问题,前者先查网卡和路由,后者直接检查ssh服务和防火墙规则,很多人一上来就重启sshd,结果浪费大量时间。

用ping测试虚拟机网络连通性

从宿主机执行 ping 虚拟机IP:

  • ping通:说明二层网络没问题,转向查端口和服务
  • ping不通:检查虚拟机IP地址是否配错,网卡是否处于启用状态

注意,某些云环境或开启了禁ping策略的虚拟机,即使网络正常也不回显ICMP包,如果ping不通,不要直接断定网络有问题,改用其他方式验证。

ssh连接虚拟机超时,先从网卡和IP配置下手

虚拟机的网卡模式选错了,怎么配都白搭

用VMware或VirtualBox创建虚拟机时,网卡模式直接影响ssh可达性,用表格对比几种常见模式:

网卡模式 宿主机能否访问 局域网其他机器能否访问 典型用途
NAT 能 不能 虚拟机上网为主
桥接 能 能 虚拟机需要局域网互通
仅主机 能 不能 隔离调试环境

如果用NAT模式连不上,先看虚拟网卡是否被禁用,Windows下打开“网络适配器选项”,找到VMware Network Adapter VMnet8或VirtualBox Host-Only Network,右键启用,这个步骤很多人忽略,尤其是重装系统或更新驱动之后。

ip addr查看IP是否在同一网段

登录虚拟机控制台(VMware界面或VNC),执行:

ssh连不上虚拟机怎么办,防火墙配置错误如何排查?

ip addr

看eth0(或ens33等)是否有IP地址,如果网卡没获取到IP,执行 dhclient 或 systemctl restart network 重新获取。虚拟机和宿主机必须能互相路由,这是ssh连通的最低要求。

检查默认网关:

ip route

如果默认网关缺失,虚拟机只能访问宿主机,访问局域网其他机器会失败,ssh同理。

宿主机防火墙拦了虚拟网卡流量

Windows宿主机自带的防火墙有时会拦截VMware或VirtualBox的虚拟网卡流量,排查方法:

  • 打开“Windows Defender防火墙” → “允许应用通过防火墙”
  • 找到VMware或VirtualBox相关进程,确认专用和公用都有勾选
  • 如果找不到对应条目,手动添加入站规则,放行虚拟机网卡所在网段

Linux宿主机检查 iptables -L -n 和 firewall-cmd --list-all,确认没有DROP规则。

检查ssh端口是否打开:一条命令分清故障段

用nc或telnet测试22端口连通性

在宿主机上执行:

nc -vz 虚拟机IP 22

或者:

telnet 虚拟机IP 22

端口开着:输出显示Connected(连接成功),直接跳到ssh服务本身去排查。连接超时:防火墙DROP了包,查iptables和firewalld。立即拒绝:sshd没监听或端口配置不是22。

sshd服务状态和监听地址确认

登录虚拟机控制台,执行:

systemctl status sshd

确认服务是active(running)状态,然后检查监听地址:

ss -tlnp | grep 22

如果监听地址是0.0.0.0或::,说明sshd在所有网卡上监听,问题不在服务端。如果监听地址是127.0.0.1,说明sshd只允许本机连接,修改配置文件后重启服务即可。

修改sshd监听地址的方法:

vi /etc/ssh/sshd_config

找到 ListenAddress 行,改成 0.0.0,保存后执行 systemctl restart sshd。

firewall-cmd和iptables规则逐一核对

CentOS/RHEL/Fedora系用firewalld:

firewall-cmd --list-all

确认 services: ssh 或 ports: 22/tcp 是否有输出,没有就执行:

firewall-cmd --permanent --add-service=ssh
firewall-cmd --reload

Ubuntu/Debian系用ufw:

ufw status

输出为active的话,执行

ssh连不上虚拟机怎么办,防火墙配置错误如何排查?

ufw allow 22/tcp 放行。

老系统用的iptables:

iptables -L -n --line-numbers

看INPUT链是否有DROP或REJECT策略优先于放行规则。规则顺序很重要,DROP放在放行规则前面会直接丢弃流量。

云平台安全组是虚拟防火墙的最后一关

如果用的是云虚拟机(简米云、酷番云、AWS等),宿主机防火墙之外还有安全组隔离层,登录云控制台,找到安全组规则,确认入方向放行了TCP 22端口。安全组规则修改后通常立即生效,不用重启实例。

常见坑是:自己用iptables放行了22端口,但安全组没放行,结果ssh还是连不上,反过来,安全组放行了22端口,但虚拟机内部firewalld拦了,同样连不上。两层都要检查。

虚拟机的防火墙规则改了,ssh反而连不上了

排查思路从“网络”转到“服务”

如果之前ssh能正常连,改完防火墙规则后突然连不上,大概率是防火墙策略调整时误删了放行规则,或者添加了错误规则,逐个排查:

  • firewalld:firewall-cmd --list-all 查看当前放行列表,确认ssh服务还在
  • iptables:iptables -L INPUT -n --line-numbers 查看每条规则顺序
  • ufw:ufw status verbose 看入站策略是allow还是deny

确认sshd没有更改端口编号

改过sshd_config里 Port 配置后发现ssh连不上,先确认改动是否正确:

grep -E "^Port" /etc/ssh/sshd_config

如果显示端口为2200,执行ssh时要用 ssh -p 2200 user@IP。还要确认防火墙已经放行新端口,firewalld只放行了22的话,改完sshd端口后必然连不上。

改回方法:把Port改回22,systemctl restart sshd。

SELinux导致ssh端口异常

CentOS开启SELinux的话,即使防火墙放行了新端口,SELinux也会拦截,查看SELinux状态:

getenforce

输出Enforcing的话,执行:

semanage port -a -t ssh_port_t -p tcp 新端口号

让SELinux放行自定义端口,也可以临时关闭SELinux测试(setenforce 0),但生产环境不建议长期关闭。

密钥登录场景下ssh连不上虚拟机的排查重点

authorized_keys权限不对,密钥校验直接失败

用密钥登录时,ssh对文件权限要求严格。任何目录权限过宽都会导致登录被拒绝,逐一检查:

ssh连不上虚拟机怎么办,防火墙配置错误如何排查?

chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys chmod 600 ~/.ssh/id_rsa(私钥)

另外确认sshd_config里 PubkeyAuthentication yes 没有注释掉。

密码登录和密钥登录互斥时怎么处理

有时为了安全把 PasswordAuthentication 设成no,但密钥又缺失或损坏,结果ssh连不上虚拟机,恢复方法:

  • 通过云控制台的VNC/管理终端登录虚拟机
  • 改回 PasswordAuthentication yes
  • 重启sshd后再用密码登录检查密钥问题

这类问题在线上运维中很常见,建议修改配置前先备份原始文件。

局域网常见场景:vmware虚拟机ssh网络配置怎么改才能通

反应最多的是VMware里创建的Linux虚拟机,用NAT模式能上网,但宿主机ssh连不上,按这个顺序操作:

  • 看虚拟网络编辑器:在VMware菜单栏选“编辑”→“虚拟网络编辑器”,确认VMnet8的网段,比如192.168.88.0
  • 看虚拟机IP:登录虚拟机执行 ip addr,确认IP属于VMnet8网段,比如192.168.88.128
  • 看宿主机VMnet8适配器IP:Windows下执行 ipconfig,确认宿主机的VMnet8地址也是192.168.88.1,三者同网段才能互通

如果改了虚拟网络编辑器网段,宿主机VMnet8的IP地址要同步修改,否则网络不通,这个同步动作经常被忽略,修改完重启VMware DHCP服务后才能生效。

常见问题排查

为什么ssh连接虚拟机总是显示Connection timed out

Connection timed out说明数据包发出去了但没有响应,优先检查虚拟机IP是否变化(DHCP重新分配了地址)、宿主机到虚拟机之间是否有路由、虚拟网卡是否被宿主机防火墙拦截,逐项排除后,多数情况能定位到具体环节。

虚拟机防火墙关闭后ssh还是连不上怎么查

关闭防火墙后仍连不上,问题基本不在iptables或firewalld层面,检查sshd服务是否正常运行、监听地址是否正确、SELinux是否拦截,同时确认网卡BRIDGE或NAT模式是否和IP地址匹配,桥接模式下虚拟机IP如果和其他机器冲突,也会导致ssh连接异常。

VMware虚拟机用NAT模式ssh不通,桥接反而能通是怎么回事

这类情况多半是VMnet8网段和宿主机虚拟网卡配置不一致,或者VMware NAT服务异常,可以在Windows服务管理器里重启VMware NAT Service和DHCP Service,再检查VMnet8的IP和虚拟机IP是否同网段,桥接模式走物理网卡,绕过了虚拟NAT层,所以连通性更直接。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/ssh%e8%bf%9e%e4%b8%8d%e4%b8%8a%e8%99%9a%e6%8b%9f%e6%9c%ba%e6%80%8e%e4%b9%88%e5%8a%9e%ef%bc%8c%e9%98%b2%e7%81%ab%e5%a2%99%e9%85%8d%e7%bd%ae%e9%94%99%e8%af%af%e5%a6%82%e4%bd%95%e6%8e%92%e6%9f%a5/

赞 (0)
iptables按域名精确匹配地址怎么做?,命令是什么
上一篇 2026年9月7日 16:57
域名通配符与正则如何匹配多个子域名,子域名匹配方法有哪些
下一篇 2026年9月7日 17:05

相关推荐

  • 服务器有声音正常吗?有哪些静音型号推荐?

    服务器发出声音的本质是硬件在“自报家门”:风扇转动、硬盘读写、蜂鸣器报警和电源电流声,这四类声音来源几乎覆盖了所有服务器的“开口”场景,你听到的嗡嗡声、咔嗒声或者短促的滴滴声,背后对应着不同的硬件状态,有些属于正常运转,有些则是故障前的提醒信号,先分清四种“说话方式”:服务器声音都从哪来服务器的声音不是无缘无故……

    2026年9月27日
    000
  • 广州大带宽租用规模如何估算?,多少钱一个月

    广州大带宽租用规模估算的核心在于精准评估业务峰值带宽需求与月均流量,再结合冗余和未来扩展,才能避免过度采购或性能不足,广州大带宽租用规模怎么估算?从业务需求出发估算带宽规模,第一步就是搞清楚你的业务到底需要多少带宽,不同业务类型对带宽需求差异很大,比如视频流媒体、游戏加速、企业办公、电商平台,各有各的消耗模型……

    2026年8月11日
    900
  • 亿万流量服务器究竟有哪些,大流量网站服务器怎么选?

    能承载亿万流量的服务器不是某一款型号,而是一套由大带宽物理服务器、高防清洗、云主机集群、CDN边缘节点、负载均衡和对象存储拼起来的架构, 你在供应商页面看到的“亿万流量服务器”,通常分成大带宽独服、高防服务器、云服务器集群、CDN加速和容器集群几类,把它们按入口、计算、缓存、存储拆开选,比盯着CPU型号更有效……

    服务器宽带 2026年10月29日
    000
  • 南京独立服务器租用有哪些注意事项,价格多少?

    南京独立服务器租用,签约前务必确认带宽是否独享、IP数量是否充足、硬件配置是否达标、合同条款是否清晰,避免后期出现限速、加价、售后无门等问题,南京独立服务器租用注意事项:硬件配置与带宽选择CPU和内存:别被“核心数”迷惑很多供应商在宣传时强调核心数多,但实际用的是超线程虚拟核心,物理性能并不高,签约前要问清楚是……

    2026年8月9日
    600
  • HTML5怎么查数据库?前端直接连接数据库可行吗

    HTML5本身无法直接查询数据库,必须通过后端服务器(如Node.js、Python或PHP)作为中间层进行数据交互,前端仅负责发起请求和展示结果,很多初学者容易陷入一个误区,认为HTML5像SQL语句一样可以直接连接MySQL或Oracle,HTML5是一套用于构建网页结构和内容的标记语言,它运行在浏览器端……

    服务器宽带 2026年6月6日
    3800
  • 服务器里到底需要安装哪些软件,服务器必备软件有哪些?

    服务器里需要装哪些,答案不是一张越长越好的软件清单,而是按服务器角色做最小化安装:操作系统、运行环境、安全基线、监控备份、远程管理五层够用即可, 装得多不等于稳,装得准才省心,服务器里需要装哪些:先定角色,再列清单一台服务器落地前,先问清楚它要干什么,Web 前端、数据库、文件共享、虚拟化宿主机、域控,角色不同……

    服务器宽带 2026年10月24日
    000
  • SecureCRT和Xshell哪个好用?远程连接工具怎么选

    对于绝大多数国内开发者而言,Xshell 在界面友好度、免费政策及中文本地化上更具优势;而 SecureCRT 则在企业级稳定性、脚本自动化深度及跨平台兼容性上占据绝对权威,两者选择取决于你是追求“开箱即用”的便捷还是“极致掌控”的专业,终端模拟软件是运维人员和开发者的日常利器,但面对 SecureCRT 和……

    2026年6月20日
    2510
  • mobi域名能备案吗?域名备案需要什么条件

    可以备案,但仅限通过工信部指定的少数几家国内接入服务商进行接入备案,且必须确保网站内容符合中国法律法规,个人主体通常无法备案.mobi域名,.mobi域名虽然起源于国际通用顶级域,但在国内互联网生态中有着特殊的备案路径,很多站长在选购域名时,往往因为“.com”或“.cn”的稀缺性而转向.mobi,却忽略了备案……

    2026年6月19日
    3000
  • html空间怎么变html服务器控件,html控件与服务器控件区别

    将普通的HTML空间标签转换为服务器控件,核心在于在标签中显式添加 runat=”server” 属性,并配合 id 属性以便后端代码访问,这是ASP.NET Web Forms架构下实现前后端交互的基础操作,在早期的Web开发实践中,HTML元素默认只是静态的文本或结构展示,服务器无法直接感知它们的存在,这种……

    2026年6月10日
    3300
  • 宝塔Linux面板企业版免费14天试用怎么领取?宝塔面板企业版免费试用领取方法

    宝塔Linux面板企业版目前提供14天免费试用,通过官方渠道注册账号并领取试用资格即可解锁全部高级功能,无需付费即可体验企业级安全防护与自动化运维能力,对于许多中小型企业运维人员或独立开发者而言,如何在有限的预算下获得稳定、高效的服务器管理工具,一直是困扰日常工作的核心痛点,宝塔面板作为国内市场占有率极高的服务……

    2026年6月26日
    1800

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注