在现代开发、测试和学习环境中,虚拟机(VM)扮演着不可或缺的角色。无论是使用 VMware Workstation/Player 还是 VirtualBox,在本地局域网(LAN)内搭建并管理多台虚拟机集群已成为常态。而 FinalShell 作为一款功能强大、界面友好的 SSH 客户端和服务器管理工具,无疑是连接和管理这些虚拟机的理想选择。

本文将作为一份详尽的指南,深入探讨如何利用 FinalShell 轻松连接局域网内的 VMware 和 VirtualBox 虚拟机。我们将从网络模式的基础知识讲起,逐步深入到具体的配置步骤、常见问题排查,并分享 FinalShell 的一些高级功能,旨在为您提供最全面、最具操作性的解决方案。

理解虚拟机网络模式:连接局域网的基础

要让 FinalShell 能够连接到局域网内的虚拟机,首先需要正确配置虚拟机的网络模式。虚拟机软件(VMware 和 VirtualBox)提供了多种网络模式,每种模式都有其独特的应用场景。对于局域网内的连接,我们主要关注以下两种:

1. 桥接模式 (Bridged Networking)

2. NAT 模式 (Network Address Translation)

3. 仅主机模式 (Host-only Networking)

总结:对于 "FinalShell 连接局域网内的虚拟机" 这一主题,桥接模式是首选且最推荐的网络模式。如果出于特殊原因必须使用 NAT 模式,则需要额外配置端口转发。

连接准备:FinalShell 及虚拟机环境配置

在开始 FinalShell 连接之前,请确保您的环境已准备就绪:

1. 安装 FinalShell 客户端

如果您尚未安装 FinalShell,请前往其官方网站下载并安装最新版本。FinalShell 兼容 Windows、macOS 和 Linux。

2. 准备虚拟机 (VMware/VirtualBox)

桥接模式下 FinalShell 连接虚拟机指南 (推荐)

桥接模式是实现局域网内虚拟机连接最直接、最推荐的方式。

1. 配置虚拟机的网络适配器为桥接模式

a. VMware Workstation/Player

  1. 选中目标虚拟机,点击 "编辑虚拟机设置" (Edit virtual machine settings)
  2. 在硬件列表中选择 "网络适配器" (Network Adapter)
  3. 在右侧的网络连接类型中,选择 "桥接模式(B): 直接连接物理网络" (Bridged: Directly connect to the physical network)
  4. 勾选 "复制物理网络连接状态" (Replicate physical network connection state) (通常可不勾选,但部分复杂网络环境可能需要)。
  5. 点击 "确定" (OK) 保存设置。

b. VirtualBox

  1. 选中目标虚拟机,点击 "设置" (Settings)
  2. 在左侧菜单中选择 "网络" (Network)
  3. 选择 "网卡1" (Adapter 1) 选项卡。
  4. "连接方式" (Attached to) 下拉菜单选择为 "桥接网卡" (Bridged Adapter)
  5. "名称" (Name) 下拉菜单中选择您的物理网卡(例如:您的以太网卡或 Wi-Fi 网卡)。
  6. 点击 "确定" (OK) 保存设置。

2. 配置虚拟机操作系统的网络 (获取IP地址)

在虚拟机内部,您需要确保操作系统能够通过 DHCP 获取 IP 地址,或者手动配置一个静态 IP 地址。

a. 动态获取 IP (DHCP)

这是最常见的配置。在大多数 Linux 发行版中,默认情况下都会配置为 DHCP。

  1. 启动虚拟机。
  2. 登录虚拟机系统。
  3. 通过以下命令获取 IP 地址:
    • Linux (旧版本)ifconfig
    • Linux (新版本)ip aip addr show 查找形如 inet 192.168.1.XXX 的 IP 地址,这通常就是您虚拟机在局域网中的 IP。

b. 配置静态 IP 地址 (推荐用于服务器)

如果您希望虚拟机拥有一个固定的 IP 地址,避免每次重启后 IP 变化,可以配置静态 IP。

  1. 确定局域网信息:了解您的宿主机 IP 地址、子网掩码、网关和 DNS 服务器。例如:
    • 宿主机 IP: 192.168.1.100
    • 子网掩码: 255.255.255.0
    • 网关: 192.168.1.1
    • DNS: 192.168.1.1 或 8.8.8.8
  2. 选择一个未被占用的静态 IP:例如 192.168.1.200。
  3. 配置虚拟机:根据您的 Linux 发行版不同,配置方式略有差异。
    • Ubuntu/Debian (Netplan):编辑 /etc/netplan/*.yaml 文件。
      network:
        version: 2
        renderer: networkd
        ethernets:
          eth0: # 或您的网卡名称,如 enp0s3, ens33
            dhcp4: no
            addresses: [192.168.1.200/24]
            gateway4: 192.168.1.1
            nameservers:
              addresses: [192.168.1.1, 8.8.8.8]
      
      保存后,运行 sudo netplan apply
    • CentOS 7/RHEL 7 (NetworkManager/ifcfg):编辑 /etc/sysconfig/network-scripts/ifcfg-eth0 (或相应的网卡文件)。
      TYPE=Ethernet
      BOOTPROTO=static
      NAME=eth0
      DEVICE=eth0
      ONBOOT=yes
      IPADDR=192.168.1.200
      NETMASK=255.255.255.0
      GATEWAY=192.168.1.1
      DNS1=192.168.1.1
      DNS2=8.8.8.8
      
      保存后,运行 sudo systemctl restart networksudo nmcli c reload
  4. 验证 IP:运行 ip aifconfig 确保新 IP 已生效。

3. 使用 FinalShell 连接虚拟机

现在,您可以打开 FinalShell 并添加一个新的连接:

  1. 打开 FinalShell。
  2. 点击左上角的 "文件夹" 图标 或右键空白处选择 "新建连接"
  3. 在弹出的对话框中,填写以下信息:
    • 名称:为您的连接起一个易于识别的名称(如 "Ubuntu Server VM")。
    • 协议:选择 SSH
    • 主机:输入您虚拟机获取到的 IP 地址(例如 192.168.1.200)。
    • 端口:SSH 默认端口是 22。如果虚拟机上的 SSH 服务使用了其他端口,请在此处填写。
    • 认证方式:选择 密码
    • 用户名:输入您虚拟机系统的用户名(例如 youruser)。
    • 密码:输入该用户的密码。
  4. 点击 "确定" 保存连接。
  5. 双击列表中新建的连接,FinalShell 将尝试连接到您的虚拟机。如果一切顺利,您将看到一个 SSH 终端界面,表示连接成功。

NAT 模式下 FinalShell 连接虚拟机指南 (需要端口转发)

如果您选择使用 NAT 模式,那么必须配置端口转发才能从宿主机(以及局域网内其他设备,通过宿主机 IP)连接到虚拟机。

1. 配置虚拟机的网络适配器为 NAT 模式

a. VMware Workstation/Player

  1. 选中目标虚拟机,点击 "编辑虚拟机设置" (Edit virtual machine settings)
  2. 在硬件列表中选择 "网络适配器" (Network Adapter)
  3. 在右侧的网络连接类型中,选择 "NAT 模式(N): 用于共享主机的IP地址" (NAT: Used to share the host's IP address)
  4. 点击 "确定" (OK) 保存设置。

b. VirtualBox

  1. 选中目标虚拟机,点击 "设置" (Settings)
  2. 在左侧菜单中选择 "网络" (Network)
  3. 选择 "网卡1" (Adapter 1) 选项卡。
  4. "连接方式" (Attached to) 下拉菜单选择为 "网络地址转换 (NAT)" (Network Address Translation (NAT))
  5. 点击 "确定" (OK) 保存设置。

2. 配置虚拟机软件的端口转发规则

端口转发的目的是将宿主机的一个端口映射到虚拟机的 SSH 端口 (22)。

a. VMware Workstation/Player

  1. 在 VMware Workstation 主界面,点击 "编辑" (Edit) > "虚拟网络编辑器" (Virtual Network Editor)
  2. 选择 "VMnet8 (NAT 模式)",确保其 "连接到:NAT" 已勾选。
  3. 点击右下角的 "NAT 设置..." (NAT Settings...)
  4. 在 NAT 设置窗口中,点击 "添加..." (Add...)
  5. 在端口转发中输入:
    • 协议:TCP
    • 主机端口:例如 2222 (宿主机上未被占用的端口,建议选择非 22 端口以避免冲突)。
    • 虚拟机 IP 地址:您虚拟机在 NAT 网络中的 IP 地址(可以通过虚拟机内部 ip aifconfig 查看到,通常是 192.168.X.Y 系列)。
    • 虚拟机端口22 (SSH 服务的默认端口)。
    • 描述:FinalShell SSH to VM
  6. 点击 "确定" > "确定" > "应用" > "确定" 保存所有设置。

b. VirtualBox

  1. 选中目标虚拟机,点击 "设置" (Settings)
  2. 在左侧菜单中选择 "网络" (Network)
  3. 选择 "网卡1" (Adapter 1) 选项卡。
  4. 点击右侧的 "端口转发" (Port Forwarding) 按钮。
  5. 在弹出的窗口中点击 "添加新转发规则" (Adds new port forwarding rule) 图标。
  6. 填写规则信息:
    • 名称:SSH_VM
    • 协议:TCP
    • 主机IP:留空(表示监听所有宿主机 IP)或填写宿主机 IP。
    • 主机端口:例如 2222 (宿主机上未被占用的端口)。
    • 子系统IP:留空(表示虚拟机默认 IP)或填写虚拟机在 NAT 网络中的 IP。
    • 子系统端口22
  7. 点击 "确定" 保存设置。

3. 使用 FinalShell 连接虚拟机 (通过宿主机IP和转发端口)

配置好端口转发后,您需要使用宿主机的 IP 地址和您设置的转发端口来连接虚拟机。

  1. 打开 FinalShell。
  2. 新建连接,填写信息:
    • 名称:VMware NAT VM / VirtualBox NAT VM
    • 协议:SSH
    • 主机:填写您宿主机的 IP 地址(例如 192.168.1.100)。
    • 端口:填写您设置的主机端口(例如 2222)。
    • 用户名:虚拟机用户名。
    • 密码:虚拟机密码。
  3. 点击 "确定",然后双击连接。

常见连接问题排查

如果在连接过程中遇到问题,请按照以下步骤进行排查:

FinalShell 的高级功能与虚拟机管理

FinalShell 不仅仅是一个 SSH 客户端,它还提供了许多高级功能,能极大提升您管理虚拟机的效率。

1. 文件传输 (SFTP)

FinalShell 内置了 SFTP 功能,您可以在左侧的文件浏览器中轻松地在宿主机和虚拟机之间拖拽文件,或进行文件上传下载。

2. 内存、CPU、网络实时监控

连接成功后,FinalShell 会在终端底部提供虚拟机的 CPU、内存、网络 IO 等实时数据,方便您快速了解虚拟机运行状况。

3. 公钥/私钥认证 (Passwordless Login)

使用 SSH 密钥对可以实现免密码登录,提高安全性和便捷性。

  1. 在 FinalShell 中生成密钥对 (工具 -> 密钥管理 -> 新建)。
  2. 将公钥上传到虚拟机的 ~/.ssh/authorized_keys 文件中。
  3. 在 FinalShell 连接设置中,将认证方式改为 "公钥",并选择您的私钥文件。

FinalShell PublicKey PrivateKey Passwordless 图示:FinalShell 支持公钥/私钥认证,实现安全高效的无密码登录。

4. 批量操作与命令发送

FinalShell 提供了批量管理功能,尤其适合您拥有大量虚拟机时。

FinalShell 核心功能界面演示 图示:FinalShell 的批量修改服务器密码功能,简化多服务器管理任务。

5. 自定义命令和快捷键

您可以将常用命令保存为自定义命令,并通过快捷键快速执行,进一步提高操作效率。

6. 隧道代理 (SSH Tunnel)

当虚拟机位于防火墙后或无法直接访问时,FinalShell 的隧道代理功能可以帮助您建立一个安全的通道,实现间接连接。

结语

通过本文的详细指南,相信您已经掌握了如何利用 FinalShell 连接局域网内的 VMware 和 VirtualBox 虚拟机。无论是选择直接的桥接模式,还是通过端口转发的 NAT 模式,关键在于理解其网络原理并进行正确的配置。FinalShell 强大的功能集,从基本的 SSH 连接到高级的批量管理和安全认证,都将显著提升您的虚拟机管理体验。

花时间确保您的虚拟机网络配置和 SSH 服务处于最佳状态,将为您未来的开发、测试和运维工作打下坚实的基础。祝您在 FinalShell 和虚拟机的使用中一切顺利!