xshell不在一个网段怎么连接vmware虚拟机
Xshell6是一个强大的安全终端模拟软件。 Xshell6支持SSH1,SSH2和TELNET 协议。用户可以通过家里的网络连接远程主机,方便用户在家处理突发事情,可以让用户轻松管理远程主机。 Xshell6还可以上传下载文件,非常方便。
解决 Xshell 与 VMware 虚拟机 IP 不在同一网段的连接问题。通过 NAT 模式直连或配置宿主机端口映射,实现跨网段 SSH 远程登录 Ubuntu 虚拟机,包含详细步骤与防火墙设置指南。
Xshell 和 VMware 虚拟机的 IP 不在同一网段,仍然可以建立 SSH 连接,关键是选对可达地址。本例先在宿主机上直连 NAT 虚拟机,再为另一台电脑增加端口映射,最终在 Xshell 中进入同一台 Ubuntu 的终端。
以下以 Windows 上的 VMware Workstation Pro 17、Xshell 8 和 Ubuntu 22.04 虚拟机为例。需要能够管理虚拟机及相关防火墙;所有 IP 都是示例,填写时换成自己的实际值。

VMware 虚拟网络编辑器中 VMnet8 的 NAT 配置界面
1. 确认虚拟机接入 VMnet8
在 Workstation 中选中 Ubuntu 虚拟机,打开【虚拟机→设置】,在【硬件】中选择【网络适配器】,确认使用【NAT:用于共享主机的 IP 地址】,并保持网络适配器连接。若要切换网络类型,先正常关闭虚拟机,保存设置后再启动。
在宿主机打开【编辑→虚拟网络编辑器】,选中默认 NAT 网络 VMnet8,记录子网地址。假设这里是 192.168.189.0,子网掩码为 255.255.255.0。同时确认【将主机虚拟适配器连接到此网络】已勾选;需要修改时先点击【更改设置】取得管理权限,再应用。
在 Windows 命令提示符运行 ipconfig,分别找出物理网卡和【VMware Network Adapter VMnet8】的 IPv4 地址。本例宿主机物理网卡为 192.168.10.20,VMnet8 为 192.168.189.1。这两个地址属于不同网段,是两个网卡各自的地址。
打开 Ubuntu 的 VMware 控制台,在终端运行:
ip -4 addr show
找到实际联网网卡的 inet 地址,忽略回环接口 lo。下文假设虚拟机获得 192.168.189.128/24。它与 VMnet8 同属 NAT 子网,因此宿主机可以通过虚拟网卡访问它,无需把 Ubuntu 强行改成 192.168.10.x。若实际虚拟机地址不属于所选 NAT 子网,先处理网卡连接和地址分配,再继续。

1. 确认虚拟机接入 VMnet8
2. 在 Ubuntu 中准备 SSH 服务
仍在 Ubuntu 控制台操作,确认已有可登录的普通用户。本例沿用用户名 demo,它必须是 Ubuntu 中真实存在的账户,不能填写 Windows 的用户名来代替。
如果尚未安装 OpenSSH 服务端,在能够访问软件源的前提下执行:
sudo apt update sudo apt install openssh-server sudo systemctl restart ssh.service sudo ss -lntp
查看监听列表,确认 SSH 使用的 TCP 端口,本例保持默认 22。应允许通过虚拟机网卡访问该端口;如果仅监听 127.0.0.1:22,外部连接无法使用它。已经修改过 SSH 端口的环境,应把后文的虚拟机端口一起换成实际值。
运行 sudo ufw status 查看 Ubuntu 防火墙状态。如果 UFW 已启用,并且现有规则尚未允许这次 SSH 访问,可按自己的访问策略添加 SSH 规则,例如 sudo ufw allow 22/tcp。有更严格来源限制时沿用相应限制,不为排错关闭整个防火墙。此处放行的是 Ubuntu 内的 22 端口,后面宿主机使用的 2222 是另一个入口。

Ubuntu 终端中检查 SSH 端口监听和防火墙状态
3. 先从宿主机验证直连地址
在运行 VMware 的 Windows 宿主机上打开 PowerShell,执行:
Test-NetConnection -ComputerName 192.168.189.128 -Port 22
检查 TcpTestSucceeded 字段。它为 True,说明本机到目标 TCP 端口的连接测试成功,可以继续配置 SSH 登录;这还不能证明用户名和认证信息正确。单独 ping 不通,也不能直接断定 SSH 端口不可达。
如果这里失败,先核对虚拟机是否开机、VMnet8 主机适配器是否连接、Ubuntu 的地址与监听端口是否正确,再检查现有防火墙和 网络工具 路由是否影响这段连接。本机尚不能到达虚拟机时,先解决这一段,不急着增加外部转发。
Xshell 就安装在这台宿主机上的读者,后面直接使用 192.168.189.128 和端口 22,可跳过下一节的跨电脑映射。物理网卡的 192.168.10.20 不需要与虚拟机处于同一网段。
4. 为另一台电脑添加 NAT 端口映射
如果 Xshell 在另一台 Windows 电脑上,就要区分外部入口和虚拟机地址。本例另一台电脑为 192.168.20.30,要求它与宿主机 192.168.10.20 之间已经存在可用的路由或获准使用的 网络工具。端口映射解决进入 NAT 虚拟机的问题,不会自动打通两台电脑之间原本不通的网络。
先记下 Ubuntu 当前地址并正常关机。在宿主机进入【编辑→虚拟网络编辑器】,按需点击【更改设置】,选中 VMnet8,打开【NAT 设置→添加】,填写:
| 项目 | 本例设置 |
|---|---|
| 主机端口 | 2222,须未被其他服务或规则占用 |
| 类型 | TCP |
| 虚拟机 IP 地址 | 192.168.189.128 |
| 虚拟机端口 | 22 |
| 描述 | Ubuntu-SSH |
依次确认并应用,再启动 Ubuntu。请求路径变为“另一台电脑→宿主机 2222→Ubuntu 22”。VMnet8 的网关地址不用填写到 Xshell 的主机栏,也不需要因添加映射而改动网关。

在 VMware NAT 设置中添加主机端口到虚拟机端口的映射
在宿主机按 Win+R,输入 wf.msc 打开高级安全 Windows 防火墙。在【入站规则→新建规则】中选择【自定义】,程序选择【所有程序】,协议选择 TCP,本地端口限定为 2222。在【作用域】把远程 IP 限定为实际客户端地址,本例为 192.168.20.30,操作选择【允许连接】,配置文件只勾选这条连接实际使用且获准放行的网络类型,最后命名为 VMware-SSH-2222。有组织策略管理的设备应使用获准的规则配置。
回到另一台电脑,运行:
Test-NetConnection -ComputerName 192.168.10.20 -Port 2222
确认 TcpTestSucceeded 为 True 后再登录。若宿主机直连 22 成功而这里失败,应检查两台电脑之间的网络、宿主机防火墙、端口占用以及 NAT 映射目标,而不是先修改 Ubuntu 密码。跨互联网访问还涉及额外的网关和访问控制,不属于仅添加 VMware 映射就能完成的场景。
5. 在 Xshell 中登录并保存会话
打开 Xshell,选择【文件→新建】,为会话命名,例如 Ubuntu-SSH,协议选择 SSH。主机和端口按当前电脑的位置填写,两个入口最终指向同一台 Ubuntu:
| Xshell 所在位置 | 主机 | 端口号 |
|---|---|---|
| 运行 VMware 的宿主机 | 192.168.189.128 | 22 |
| 已能访问宿主机的另一台电脑 | 192.168.10.20 | 2222 |
在【用户身份验证】中填写 Ubuntu 的真实用户名,本例为 demo。按照服务器允许的方式使用密码或公钥认证;未启用密码登录的系统应使用已配置的用户密钥。确认保存后,从【文件→打开】选择这个会话并连接。
首次出现主机密钥提示时,先与虚拟机控制台或管理员提供的对应算法指纹核对,一致后再接受。端口映射不会把 Ubuntu 的账户变成宿主机账户。若已经进入身份验证但登录失败,应检查 Ubuntu 用户名、密码、公钥和 SSH 认证策略。
进入终端后执行 hostname、whoami 和 ip -4 addr show,与 VMware 控制台中的主机名、账户及网卡地址对应,确认连接的确是目标 Ubuntu。关闭本次连接,再通过保存的会话连接一次,能重新进入目标终端,才完成本篇的连接验证。

Xshell 中配置 SSH 会话的主机和端口信息
保留 Xshell 会话和 NAT 映射记录。以后 Ubuntu 地址发生变化,要同步更新直连会话或映射目标并重新验证;不能只保留旧 IP。这样即使两端看到的地址属于不同网段,也能沿着明确的直连或转发路径访问虚拟机。

































