新闻详情

新闻详情

首页 / 资讯中心 / 详情

XShell连接Linux虚拟机全指南:网络配置、SSH服务与问题排查

发布时间:2026/10/2 1:44:39来源:尧图网络
XShell连接Linux虚拟机全指南:网络配置、SSH服务与问题排查
平时开发、测试我习惯在VMware里开一台Linux虚拟机。系统装好之后图形界面打开越用越卡复制粘贴命令还经常出各种怪问题。次数多了我干脆把所有操作都挪到XShell里做——用XShell远程连接虚拟机终端然后所有敲命令的操作都在这个轻量的终端窗口里完成。这篇文章给准备用XShell连虚拟机、却被各种报错卡住的朋友会把网络配置、SSH服务、IP获取、连接配置、问题排查这些环节从头到尾捋一遍既适合完全没有远程连接经验的新手也适合遇到连接失败想找完整排查思路的同行。先说明适用范围本机装VMware Workstation或VirtualBox虚拟机里跑Ubuntu或CentOS然后从宿主机发起连接。这套方法对云服务器、局域网内其他Linux主机同样成立只是IP地址的来源和获取方式略有不同。整体操作链路其实不复杂就三步先让虚拟机的网络通、SSH服务就绪再拿到虚拟机的IP最后在XShell里建会话连上去。真正让人卡住的从来都不是这三步本身而是细节——网络模式选错、服务没启动、防火墙挡端口、IP找错、密码被系统策略锁住这些坑我会一个一个展开讲。1. 为什么绕不开XShell虚拟机终端连接的真实场景1.1 图形界面很好但日常操作我更信任终端虚拟机里的图形桌面能干很多事浏览器、编辑器、文件管理器都很直观。但在真正的服务器管理场景里绝大多数操作还是在终端里完成的。原因很朴素轻、快、可复制。轻是说XShell这个客户端本身只有几十兆跑起来占用资源特别少不像虚拟机图形界面那样吃内存和CPU。我本地一台机器同时开两个虚拟机如果都用图形桌面鼠标拖一下都费劲关掉图形桌面只跑命令行负载肉眼可见地降下去。快是说命令行的操作路径比鼠标点选短得多。查日志、改配置、重启服务、批量操作文件几个命令就完成了不用在窗口里一层层点目录。可复制这个体验差异最明显。XShell里从网页、文档复制一段命令直接CtrlV就进去了格式不会乱反过来从终端复制输出也直接就是纯文本不像在VMware图形窗口里复制经常把带高亮颜色的乱码也粘进来。所以我现在的习惯是虚拟机装好之后图形界面只用来做初始配置日常管理一律通过XShell远程连终端来完成。这种方式也更接近生产环境的管理方式——在真实服务器上你可能根本没有图形界面可以打开。1.2 XShell、VMware自带终端、Windows Terminal、VS Code Remote怎么选有朋友问过我既然Windows自带的终端能用ssh命令VS Code也能远程连服务器为什么还要单独装XShell这几种方案各有适用场景我说下自己的取舍。工具适用场景短板XShell日常运维、批量管理多台主机、传文件商业软件个人免费商业使用需授权VMware原生控制台虚拟机开机引导、图形界面救援、没装SSH时的紧急入口窗口体验差复制粘贴别扭每台虚拟机都要单独开窗口Windows Terminal ssh命令临时连一两台机器不想装额外软件会话管理弱机器一多就乱密钥配置也要手动搞VS Code Remote-SSH边写代码边连服务器需要图形化编辑器启动重纯终端操作不如XShell轻便多会话管理一般我的建议是如果你只是偶尔在虚拟机里敲两行命令Windows Terminal完全够用如果你要频繁连接多台虚拟机还要传文件、保存会话、记录操作日志XShell的效率要高得多。文章后面讲的排查思路对所有SSH客户端都通用不是只能用在XShell上。1.3 XShell免费版够用吗XShell有两个版本商业版和个人版。个人使用、家庭使用、学生使用不收费功能上日常最常用的都有——SSH、SFTP、多标签页、密钥管理、快速命令、日志记录免费版全都有。只有商业用途需要购买授权。说白了绝大多数人用到的就是SSH终端SFTP传文件这两块免费版绰绰有余。没必要一上来就找破解或者老版本用官网的个人版功能正常、安全更新也有保障。2. 连接前必须搞定的三件事网络模式、SSH服务、IP地址2.1 虚拟机网络模式到底怎么选NAT、桥接、仅主机这一节是最多人踩坑的地方。很多人虚拟机装好了打开XShell输IP怎么都连不上问题就出在网络模式上。VMware里给虚拟机配置虚拟网卡时有三种模式NAT、桥接、仅主机。NAT模式是VMware的默认模式。虚拟机的网卡通过宿主机的VMnet8虚拟网卡做网络地址转换虚拟机可以访问宿主机也可以通过宿主机上网但外界访问不到虚拟机。听起来好像很封闭但对XShell远程连接虚拟机这件事来说完全不耽误——因为连接是从宿主机发起的宿主机和虚拟机在同一个虚拟网络VMnet8网段里宿主机可以直接访问虚拟机的IP。这是最推荐的模式网络环境简单不需要依赖外部路由器的DHCP。桥接模式相当于虚拟机直接接入了你所在局域网它有自己的局域网IP看起来就像房间里的另一台电脑。好处是局域网里的其他机器也能访问它比如你手机、另一台工作电脑也想连这台虚拟机桥接就合适。但桥接模式依赖外部网络环境如果路由器没开DHCP、办公楼网络有端口隔离虚拟机可能拿不到IP反而增加连接难度。仅主机模式的虚拟机只能和宿主机通信不能上网主要用于做网络实验、测试隔离环境日常管理没必要选。很多新手容易犯的错是在NAT模式下顺手给虚拟机配了一个和宿主机同网段的静态IP结果虚拟机既上不了网宿主机也ping不到它。记住NAT模式下虚拟机的IP属于VMnet8网段不是你的局域网网段让它自动获取或者按VMnet8网段手动配置都行就是别按局域网网段瞎配。2.2 给虚拟机安装并启动SSH服务XShell连接虚拟机走的是SSH协议所以虚拟机里必须装了SSH服务端。很多精简版系统镜像、或者你在安装时没选SSH组件系统里压根没有这个服务表现出来就是XShell提示远程计算机拒绝连接。Ubuntu/Debian系列安装和启动就几条命令sudo apt update sudo apt install -y openssh-server sudo systemctl enable --now sshenable是设置开机自启now是立即启动。装完检查一下服务状态和端口监听systemctl status ssh ss -tlnp | grep 22看到22端口有监听就对了。CentOS/RHEL系列略有区别服务名是sshdsudo yum install -y openssh-server sudo systemctl enable --now sshdCentOS还要注意防火墙。有防火墙就放行SSH没有就直接跳过sudo firewall-cmd --permanent --add-servicessh sudo firewall-cmd --reloadUbuntu如果启用了UFW防火墙也要放行sudo ufw allow 22/tcp这里提一个实践上的建议如果就是想快速跑通连接可以先临时关掉防火墙把链路打通之后再考虑安全加固。等确认XShell能连上再按上面的命令放行端口或者重新开启防火墙避免防火墙规则写错导致排障时分不清是网络问题还是服务问题。2.3 三种方式拿到虚拟机的IPSSH服务装好了下一步是知道往哪里连。虚拟机里执行下面任何一个命令都能看到IPip addr show重点看ens33、eth0、ens160这种网卡的inet字段类似192.168.xxx.xxx这样的就是虚拟机的IP。如果ip命令的输出看着费劲也可以hostname -I这条命令会直接列出一行IP地址没有其他干扰信息拿来填XShell的主机地址正合适。传统ifconfig命令在新系统里默认没有需要装net-tools包能不装就不装用ip命令就行。拿到IP之后从宿主机验证一下网络通不通ping 192.168.xxx.xxx能ping通则网络正常接着打开XShell建会话。连不通则按本文第4节的排查思路走。这里多说一句很多人搞不清拿到了IP为什么还是连不上——IP只是找到主机能不能连上还要看SSH服务听没听、防火墙放没放行所以拿到IP之后先ping再继续排障是效率最高的顺序。3. XShell端配置实战新建会话、连接参数与首次握手3.1 新建会话的完整流程打开XShell主界面文件菜单里选择新建或者直接点工具栏上的新建按钮。我习惯用快捷键CtrlN速度最快。会话属性窗口里需要填的内容并不多核心就这几个配置项推荐值说明协议SSH加密传输登录后数据不会被抓包看到明文主机虚拟机的IP地址填2.3节里拿到的IP端口号22SSH默认端口改了服务端配置就填对应端口用户名你的Linux登录用户名例如ubuntu、root、centos认证方法Password密码第一次连接先用密码登录后面可以换成密钥填好之后点连接第一次连接一个全新主机XShell会弹出提示问你是否接受这台主机的SSH主机密钥。这里直接接受并保存就行它的作用相当于确认我连的就是我以为是的那台机器防止中间人冒充。接着就是输入密码。密码正确就进入了虚拟机的终端界面。看到类似rootubuntu:~#的提示符说明连接已经成功。首次连接顺利的话整个过程也就十几秒。3.2 连接参数与终端外观的细节XShell连接成功后有几个参数值得根据使用习惯调整不然用起来总觉得别扭。编码设置很关键。默认会话如果终端里中文全是乱码多半是编码不对。在会话属性里把终端页面的编码设置为UTF-8基本能解决99%的乱码问题。Ubuntu和CentOS现在的默认语言环境都是UTF-8这块设置好以后中文文件名、中文日志输出都能正常显示。终端类型保持xterm就行不用改这个参数影响的是终端模拟器对特殊键位、颜色控制序列的支持xterm兼容性最好。外观设置比较个性化字体推荐Consolas或者等宽字体字号看个人习惯我一般用11号或12号。配色方案XShell自带了几个深色背景配浅色文字用久了眼睛舒服一些。光标类型我喜欢用竖线选中文本时高亮颜色要明显方便监听状态时扫过去就能看见输出。还有一个容易被忽略的选项会话属性里的连接设置默认有个保持活着的选项。VMware虚拟机跑久了、宿主机休眠过SSH连接容易断。把保持活着的间隔设置成60秒左右XShell会定时发一个空包维持连接避免敲着敲着就卡住等半天才断开。3.3 新版XShell的界面变化与安装失败处理XShell 8相比老版本界面确实做了一些调整默认配色更偏暗色风格按钮排布也更紧凑。老用户刚上手可能有点不习惯但功能入口大方向没变新建会话、快速命令、密钥管理器这些核心功能都还在原来的菜单逻辑里。另外有不少朋友反映XShell安装失败。就我接触到的案例最常见的原因有三个一是安装包下载过程不完整文件损坏导致安装程序无法解压二是杀毒软件或系统安全策略拦截了安装程序三是之前装过老版本残留的配置文件冲突。对应的处理办法也很直接去官网重新下载安装包确认文件大小和官网显示一致安装时暂时关闭杀毒软件的实时防护先卸载旧版本清理干净安装目录和注册表相关项再装新的。安装路径尽量用纯英文不要带中文目录能省掉很多莫名其妙的权限问题。顺便提一下XShell 7里增加的密码查看器功能。它可以查看当前会话保存的账号密码确实方便但这也意味着密码在会话文件里是可逆存储的。我的建议是自己电脑上用没问题但别在公用电脑上保存虚拟机或服务器的登录密码尤其是root密码。要么每次输入要么改用密钥登录——这也是我推荐密钥登录的原因之一第三部分会详细讲。4. 连接失败排查实录拒绝、超时、认证三座大山4.1 远程计算机拒绝连接到底是谁在拒绝这个报错出现时第一反应不应该是虚拟机拒绝了我而是XShell根本没有找到能说话的对象。绝大多数情况下原因是目标端口上没有服务在监听——也就是SSH服务没装或者没启动。排查链路非常简单先在虚拟机本机执行ss -tlnp | grep 22如果有输出说明SSH服务正在监听22端口问题不在服务端如果没有任何输出说明服务没起按2.2节的安装启动命令处理。还有一种可能是端口被改了比如有人把SSH端口改成了22022那你在连接时要把端口号也改过来。确认服务正常后再从宿主机测试能不能连到该端口。Windows下可以用Test-NetConnection命令Test-NetConnection 192.168.xxx.xxx -Port 22返回TcpTestSucceeded为True说明宿主机的网络能到达这个端口。为False则问题出在网络层或防火墙继续看4.2。4.2 连接超时先查网络可达性连接超时和连接拒绝是两类完全不同的问题。拒绝说明端口是通的、服务在应答超时说明数据包发出去之后根本没有回应像石沉大海。先检查虚拟机状态。虚拟机如果处于挂起、已关机状态任何连接都会超时先把它开机。这是很多人容易忽略的特别是装完系统后测试时顺手点了挂起回头再连就忘了。网络模式也要再确认。NAT模式下虚拟机的网卡要启用VMware的VMnet8虚拟网卡在宿主机里也要保持启用状态。打开Windows的更改适配器选项能看到VMware Network Adapter VMnet8如果被禁用了虚拟机网络就断开了。接着ping一遍虚拟机IP从宿主机执行ping 192.168.xxx.xxx能ping通说明网络通路没问题问题可能出在防火墙层面。能ping通但22端口不通在CentOS上要检查firewalld在Ubuntu上要检查UFW具体命令2.2节里已经有了。还有一点有些环境下防火墙默认策略是丢弃DROP而不是拒绝REJECT表现就是连接超时而不是连接拒绝别被表象带偏。如果ping不通重点检查虚拟机网卡状态和IP配置。在虚拟机图形界面或者原生控制台里执行ip addr看网卡是不是没有IP地址、或者处于DOWN状态。很多精简版系统网卡默认没启用需要自己配置。Ubuntu的netplan配置文件在/etc/netplan/CentOS的在/etc/sysconfig/network-scripts/ifcfg-ens33改了配置后记得重启网络服务或者直接重启虚拟机。4.3 认证失败密码、用户名和PAM策略连接通了、服务也在却卡在输入密码这一步提示认证失败这属于第三座大山。最简单的原因是密码输错了。SSH里的密码是回显不出来的输入时看着像没反应其实字符都进去了。确认CapsLock没开确认输入时用的是英文半角状态。第二个原因是用户名不对。XShell新建会话时填的用户名必须和虚拟机里实际存在的用户一致。很多人填写时习惯性填root但Ubuntu默认安装时并不启用root登录——安装时创建的那个普通用户才是应该填的用户名。root能不能登录还取决于SSH配置里的PermitRootLogin策略默认在某些发行版里是prohibit-password禁止root用密码登录。第三个原因相对隐蔽多见于CentOS系统的SELinux或PAM策略限制。遇到这种问题先用虚拟机图形界面的原生终端登入系统在本地执行passwd给当前用户重新设置一个明确知道的密码然后再连接。修改密码之后顺手看一眼SSH配置文件/etc/ssh/sshd_config里PasswordAuthentication的配置确保是yes。改完配置记得重启服务sudo systemctl restart ssh还要提醒一句别为了省事把PermitRootLogin直接打开尤其是在能连到外网的机器上。本地虚拟机测试还好但养成习惯后放到生产环境风险很大。4.4 主机密钥不匹配虚拟机重装之后的老问题如果你以前连过这台虚拟机后来虚拟机重装或者系统被重置了再次连接时XShell可能会提示主机密钥发生了变化拒绝连接。这个是安全机制在起作用——它怀疑这台机器已经不是原来那台了。解决办法是在会话属性里清除旧的密钥记录。具体入口在XShell的工具、选项或会话属性里找到主机密钥相关设置删除对应主机的记录重新连接时接受新的主机密钥就行。有些版本会直接弹窗让你选择是接受新密钥还是拒绝接受即可。这类提示在真正的生产服务器上要格外谨慎。如果一台服务器没重装系统却突然提示主机密钥变了大概率是网络被劫持或者机器被人做了手脚必须通过带外管理方式核实清楚再处置。这也是为什么我建议每次连接新主机时保存主机密钥的习惯要养成——安全机制只有在被认真对待时才有意义。5. 把连接体验再拉高一截密钥登录、XFTP与多会话管理5.1 用密钥免密登录一次配置长期省心密码登录用久了最大的问题是麻烦和安全性的平衡。每次都要输密码还担心密码泄露、被暴力破解。换成密钥登录两个字省心。XShell里自带密钥管理器在工具菜单下找到用户密钥管理器。生成一对RSA密钥长度选2048或4096生成时可以给私钥加一个保护密码。密钥对生成后需要把公钥内容加到虚拟机里对应用户的authorized_keys文件中。在虚拟机终端里执行mkdir -p ~/.ssh chmod 700 ~/.ssh touch ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys然后用编辑工具打开authorized_keys把XShell里生成并复制好的公钥内容粘贴进去保存。回到XShell会话属性认证方法选择Public Key右边选择刚生成的密钥。连接时就不再要密码了。整个过程如果觉得手动粘贴公钥麻烦XShell的XFTP组件可以把公钥文件直接拖拽到虚拟机里再在虚拟机里追加到authorized_keys。这里补充一个常见问题配完密钥还是要密码。绝大多数原因是~/.ssh目录或authorized_keys文件的权限不对。SSH服务端对权限有严格要求~/.ssh目录必须是700authorized_keys必须是600用户主目录本身不能对其他用户可写。权限错了SSH会直接忽略这个密钥文件等于白配。5.2 CtrlAltF在会话里直接调出XFTP传文件XShell最大的加分项之一是内置XFTP。一个会话连上虚拟机后快捷键CtrlAltF可以直接在当前会话对应的服务器上打开一个SFTP文件窗口和XShell里的终端会话共用同一个连接。拖拽就能上传下载文件不需要再单独配一个FTP客户端。对日常管理虚拟机来说传配置文件、传安装包、拉取日志都特别方便。比如在虚拟机里编辑/etc/nginx/nginx.conf本地改好了直接拖上去或者把应用日志拖回来分析比在终端里cat再复制轻松得多。XFTP的协议选SFTP端口默认也是22和SSH共用不需要额外开放其他端口安全上也比FTP明码传输好得多。5.3 会话管理、快速命令栏和日志记录机器一多会话管理就显得重要了。XShell支持把会话按文件夹归类比如按项目、按环境测试服务器、预发布、生产分组。双击一个会话就连接不用每次重新填IP和账号。连接失败的会话可以标记颜色状态一目了然。快速命令栏是个容易忽略的好功能。把高频命令做成按钮放到底部栏比如查看磁盘占用、查看内存、刷新系统更新、查日志尾部。在XShell的设置里编辑快速命令输入命令文本点击就能发给当前会话执行。对经常在几台机器之间重复敲同样命令的人来说这个功能能省下大量时间。日志记录功能适合需要留痕的场景。把SSH会话的全过程记录到本地日志文件包括屏幕输出对事后复盘、排查问题都有用。入口在XShell的工具、选项里设置日志文件路径和记录策略确认开启后每次会话输出都会写入文件。这个功能我建议一直开着反正日志文件不大关键时刻可能救你一命。5.4 最后分享两个我自己常用的习惯第一新开虚拟机后直接把SSH服务装好、IP固定下来顺手把XShell会话建好并改名成有意义的名称别等到要连的时候才手忙脚乱。第二每次改完sshd_config或防火墙规则先在虚拟机本机重启服务并验证端口再走人别让一个简单的配置改动变成两个小时排障的开端。说回远程连接这件事本身它就是一套组合拳网络模式选对SSH服务在跑IP地址清晰XShell会话顺手。把这几个基础环节打牢你连的就不只是那一台虚拟机而是拿到了一把适用于任何Linux机器的钥匙。云服务器、家里机房的机器、公司内网的主机流程一模一样最多就是IP来源、安全策略略有不同。下次再遇到哪台机器连不上按本文第4节的链路走一遍八成能直接定位问题。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Windows提示文件含病毒无法打开:Defender排除与误报排查指南 2026/10/2 3:31:40

Windows提示文件含病毒无法打开:Defender排除与误报排查指南

双击一个刚拷过来的小工具,屏幕上直接弹出红字:无法成功完成操作,因为文件包含病毒或潜在垃圾软件。换右键以管理员身份运行,还是这行字,甚至连文件都打不开。这种情况我这些年遇到太多次了,从自己攒的小脚…

阅读更多 →
基于YOLOv8的视觉驱动游戏自动化测试与质量评估系统实践 2026/10/2 3:31:40

基于YOLOv8的视觉驱动游戏自动化测试与质量评估系统实践

简介:面向游戏开发者、测试工程师与计算机视觉学习者的YOLOv8游戏自动化测试与质量评估系统资料包,聚焦游戏画面识别、实时目标检测、自动化测试脚本与性能分析等核心场景,可帮助快速搭建从模型训练到部署测试的完整流程。压缩包共753个文件&…

阅读更多 →
风电光伏储能联合调度与混合储能优化建模实践 2026/10/2 3:31:40

风电光伏储能联合调度与混合储能优化建模实践

1. 为什么要把风电、光伏和储能放到一起调度做新能源调度的朋友应该都有同感:风电和光伏单独拿出来看,出力曲线都“不太听话”。风电靠天吃饭,来一阵风就满发,风停了出力能掉到个位数;光伏更直接,日出而作日…

阅读更多 →
PS工具栏加深工具怎么用?从参数到实战的局部压暗全攻略 2026/10/2 3:31:40

PS工具栏加深工具怎么用?从参数到实战的局部压暗全攻略

前阵子我把自己的照片整理了一遍,发现好几张构图、光线都挺好的片子,偏偏局部亮得刺眼——天空白花花一片,人物的额头反光抢了整张脸的风头。那时候我只知道CtrlM拉曲线,一拉就是全局变暗,暗部直接沉底,惨不…

阅读更多 →
用 OpenAPI(Swagger)或 GraphQL 为 Node.js API 编写错误文档:一份面向调用方的错误契约指南 2026/10/2 3:31:40

用 OpenAPI(Swagger)或 GraphQL 为 Node.js API 编写错误文档:一份面向调用方的错误契约指南

文档教程后端 【免费下载链接】nodebestpractices ✅ The Node.js best practices list (July 2026) 项目地址: https://gitcode.com/GitHub_Trending/no/nodebestpractices 点击查看 免费下载 REST API 用 HTTP 状态码返回结果,但仅仅约定“成功时的返…

阅读更多 →
企业智能体接ERP/OA/CRM:API够用吗?中间层补位实战 2026/10/2 3:31:33

企业智能体接ERP/OA/CRM:API够用吗?中间层补位实战

做企业智能体项目,最常被问到的问题就是标题这句:“接ERP、OA、CRM,API够用吗?”问的人有CIO、有业务负责人,也有刚被拉进项目的开发。我通常不会直接回答够或不够,因为这三个系统的API成熟度、开放方式、数…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉