服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-11-09 简米科技 4,148 字 10 分钟阅读

如何链接Linux虚拟机?,Linux虚拟机连接步骤有哪些?

导读连接Linux虚拟机最直接的方法是使用SSH(安全外壳协议),在Windows上用PowerShell或PuTTY,在macOS/Linux上直接用终端,输入ssh 用户名@IP地址即可,整个过程分三步:确认虚拟机网络模式、获取IP地址、建立SSH连接,下面按新手最容易踩坑的顺序,把每一步的操作细节和常见问题拆……

连接Linux虚拟机最直接的方法是使用SSH(安全外壳协议),在Windows上用PowerShell或PuTTY,在macOS/Linux上直接用终端,输入ssh 用户名@IP地址即可。整个过程分三步:确认虚拟机网络模式、获取IP地址、建立SSH连接,下面按新手最容易踩坑的顺序,把每一步的操作细节和常见问题拆开讲清楚。

先搞懂虚拟机三种网络模式,避免连不上的尴尬

很多新手卡在第一步,不是命令敲错,而是虚拟机的网络模式没选对,VMware和VirtualBox都提供三种网络模式,它们的区别直接决定你能不能从宿主机连进去。

  • NAT模式(默认):虚拟机通过宿主机上网,对外访问互联网没问题,但宿主机想主动连虚拟机,需要端口转发,这是新手最常用的模式,适合只需要虚拟机上网、不需要外部设备访问的场景。
  • 桥接模式:虚拟机在局域网里拥有独立IP,和宿主机平级,其他电脑也能直接访问虚拟机,如果你需要让虚拟机当作一台真实服务器,供局域网测试用,选这个。
  • 仅主机模式:虚拟机和宿主机组成一个封闭内网,不能访问外网,但宿主机可以稳定连接虚拟机,适合不需要联网、只做本地测试的场景。

行业共识是:新手练习SSH连接,优先用桥接模式或NAT模式配合端口转发,VMware的“虚拟网络编辑器”里可以切换模式,VirtualBox则在“设置→网络”里改,改完模式需要重启虚拟机才能生效。

获取虚拟机IP地址的三种方法

连接的前提是知道IP地址,注意,VMware里那个“IP地址”显示有时候不准,要以虚拟机系统内的实际IP为准。

命令行直接查看

进入虚拟机终端,输入:

ip addr

或者老一些的系统用:

ifconfig

找eth0或ens33这类网卡下的inet字段,形如168.x.x就是IP地址。lo回环地址不是,别搞混了。

路由表确认连通性

输入ip route,看默认网关是不是和你在同一个网段,如果网关显示不通,说明网卡配置有问题。

桌面环境查看

装了图形界面的Ubuntu或CentOS,点击右上角网络图标,在连接信息里直接能看到IPv4地址。

拿Ubuntu Server举例,安装时默认用DHCP自动分配IP,如果你要用桥接模式,建议在/etc/netplan/目录下把IP改成静态的,文件一般是01-network-manager-all.yaml,改完后执行sudo netplan apply让配置生效。

Windows怎么连接Linux虚拟机:SSH实操步骤

确认IP后,在Windows 10/11上不需要额外装软件,系统自带OpenSSH客户端。

  1. 打开PowerShell或CMD,输入:

    ssh 用户名@IP地址

    比如ssh root@192.168.1.100。

  2. 第一次连接会提示确认主机指纹,输入yes回车。

  3. 输入密码,注意,Linux终端输密码是不显示任何字符的,别以为键盘坏了。

  4. 看到Welcome to Ubuntu或类似的欢迎信息,就说明连接成功了。

用macOS或Linux系统的用户,直接打开终端,命令完全一样。

用PuTTY连接的情况:有些Windows版本没装OpenSSH,或者你想保存多个连接配置,可以用PuTTY,下载绿色版后,Host Name填IP,Port填22,Connection type选SSH,点Open,然后输入用户名密码,PuTTY的优势在于能保存会话,下次双击直接连。

Windows下还有个细节:新版Windows Terminal比传统CMD好用得多,支持多标签、复制粘贴快捷键也更顺手,建议用这个。

常见故障排查:linux虚拟机连不上ssh的六大原因

敲了ssh命令后卡住不动,或者直接报错Connection refused、Connection timed out,别慌,按下面顺序依次检查。70%以上的连接失败都出在SSH服务没启动和防火墙拦截这两块。

检查顺序和对应命令:

故障现象 检查项 排查命令 解决方式
Connection refused SSH服务是否运行 systemctl status sshd sudo systemctl start sshd
Connection refused SSH服务是否开机自启 systemctl is-enabled sshd sudo systemctl enable sshd
Connection timed out 防火墙拦截22端口 sudo ufw status sudo ufw allow 22/tcp
Connection timed out 虚拟机和宿主机网络不通 ping 宿主机IP 检查VMware网络模式是否一致
密码明明对却进不去 是否允许root登录 检查/etc/ssh/sshd_config 将PermitRootLogin改为yes(不推荐生产环境)
连接后立刻断开 IP地址冲突 ip addr检查网卡IP 重启网络服务或改用静态IP

具体操作说明:

第一步,确认虚拟机装了SSH服务,Ubuntu Server默认装了openssh-server,但Ubuntu桌面版默认没装,如果没装,执行:

sudo apt update
sudo apt install openssh-server -y

CentOS/RHEL系用sudo yum install openssh-server -y。

第二步,确认服务在跑,执行systemctl status sshd,看到active (running)是正常的,如果显示inactive (dead),先启动服务再设成开机自启。

第三步,关防火墙或放行22端口,Ubuntu用ufw,执行sudo ufw allow 22/tcp,CentOS用firewall-cmd,执行:

sudo firewall-cmd --permanent --add-port=22/tcp
sudo firewall-cmd --reload

第四步,检查网络模式,这是最容易被忽视的地方,VMware里把网络模式改成桥接后,虚拟机可能还保留着原来的NAT IP,需要重启虚拟机或执行sudo dhclient重新获取IP。

最后确认宿主机和虚拟机互通:在宿主机Ping虚拟机的IP,如果Ping通了连不上SSH,问题在SSH服务或端口;如果Ping不通,问题在网络配置,回第一步重新检查。

进阶:配置SSH密钥登录,免密更安全

密码登录虽然简单,但每次都要输密码,而且root密码暴露在公网上容易被暴力破解,行业共识是用SSH密钥对替代密码登录。

操作分三步:

  1. 在宿主机生成密钥对(Windows PowerShell或macOS终端):

    ssh-keygen -t rsa -b 4096

    一路回车,默认保存到~/.ssh/id_rsa,公钥是id_rsa.pub,私钥自己留着别给别人。

  2. 把公钥复制到虚拟机:

    ssh-copy-id 用户名@IP地址

    Windows没有ssh-copy-id命令,可以手动操作:读一下id_rsa.pub,复制到虚拟机的~/.ssh/authorized_keys文件里。

  3. 修改SSH配置文件禁用密码登录(可选):

    sudo vi /etc/ssh/sshd_config

    把PasswordAuthentication改成no,重启SSH服务生效,这样暴力破解就没戏了。

密钥登录配置好后,日常操作体验会好很多,尤其适合需要频繁管理多台Linux服务器的场景。

没有桌面环境怎么连接:无头服务器的连接技巧

很多Linux服务器为了节省资源不装图形界面,装完后黑屏一个终端,这种情况下,你依然可以用SSH连接它,前提是装系统时选装了openssh-server。

连接方式和前面完全一样,唯一需要注意的是,无头服务器的IP地址获取方式,安装系统时如果选的DHCP,路由器分配的IP可能会变,建议在路由器后台绑定MAC地址,或者在系统安装时直接配静态IP。

某些云计算平台和VPS厂商(比如简米云、酷番云、AWS),默认不允许root直接SSH登录,需要用普通用户登录后再su -切换,或者先在网页控制台里改好SSH配置。国内云服务器,新人往往容易卡在这一步安全组没放行22端口,控制台上要单独配置安全组规则。

常见问题Q&A

Q:虚拟机和宿主机能互相ping通,但SSH连接总是超时,是怎么回事?

A:检查虚拟机的防火墙是否拦截了22端口,执行sudo ufw status或sudo firewall-cmd --list-all,部分云镜像默认开启了SELinux,执行getenforce确认是否Enforcing模式,临时测试可以setenforce 0。

Q:NAT模式下怎么让宿主机直接SSH连接虚拟机?

A:NAT模式下需要设置端口转发,VMware在“编辑→虚拟网络编辑器→NAT设置”里,添加一条规则,宿主机端口映射到虚拟机22端口,VirtualBox在“设置→网络→高级→端口转发”里配置,宿主机访问localhost:映射端口即可。

Q:ssh端口还是2万,怎么切换?

A:修改/etc/ssh/sshd_config里的Port字段,改成比如22222,重启SSH服务,然后宿主机连接时指定端口:ssh -p 22222 用户@IP,注意防火墙放行新端口。

如果连不上,先从这几件事入手:确认虚拟机网络模式、确认SSH服务状态、确认防火墙规则,这三项检查完毕后,绝大多数连接问题都能定位到根因,掌握了SSH连接,后续的文件传输、远程运维、跑服务都顺手了。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱