VMware 虚拟机(Ubuntu 16.04 LTS)远程连接实训记录
1 实训背景与目标
1.1 背景
实训环境为 VMware 中部署的三台 Ubuntu 虚拟机(hadoop01、hadoop02、hadoop03),共同组成 Hadoop 分布式集群。日常操作中,若每次都要打开虚拟机的图形控制台,在多台节点之间切换很不方便。因此需要从宿主机(Windows)使用 SSH 客户端远程连接和管理三台节点。
1.2 目标
本教程记录使用 FinalShell 通过 SSH 成功连接三台虚拟机的完整过程,包括连接前的环境准备、故障现象、排查思路、解决步骤和最终配置,可作为后续实训中重复使用的操作手册。
2 环境说明
2.1 软件环境
表1 软件环境清单
|--------------------|-------------------------------|------------------------------|
| 软件 | 版本 | 用途 |
| VMware Workstation | --- | 虚拟机平台,承载三台虚拟机 |
| Ubuntu | 16.04 LTS(hadoop01 为 16.04.7) | 集群节点操作系统 |
| FinalShell | 4.6.5 | SSH 客户端,用于远程连接 |
| Windows | --- | 宿主机系统,运行 VMware 与 FinalShell |
2.2 集群角色
表2 集群节点角色
|----------|--------|--------------------------|
| 主机名 | 角色 | 集群职责 |
| hadoop01 | 主节点 | NameNode、ResourceManager |
| hadoop02 | 从节点 | DataNode、NodeManager |
| hadoop03 | 从节点 | DataNode、NodeManager |
说明:本教程只覆盖远程连接的配置与排障,不涉及集群服务本身的安装配置。
3 问题现象
首次使用 FinalShell 连接时,出现以下三类现象:
现象一:FinalShell 新建连接后连接失败,无法进入命令行终端。
现象二:在宿主机 PowerShell 中执行 ping 192.168.91.128,返回请求超时。
现象三:在 hadoop01 上执行 hdfs dfsadmin -report,报错内容为 Call From hadoop01/192.168.91.128 to hadoop01:9000 failed on socket exception: java.net.SocketException: Network is unreachable。
4 排查思路
4.1 分层定位
网络连接问题按从低到高的层次排查:先在宿主机 ping 虚拟机 IP,验证网络层是否可达;若不通,再进入虚拟机图形控制台,用 ip addr 检查网卡的状态和地址配置。
4.2 根因定位
在虚拟机控制台执行 ip addr 后发现,ens33 网卡的状态为 DOWN,且没有配置任何 IPv4 地址,只有链路层地址。网卡未激活、没有 IP,导致宿主机无法访问虚拟机、SSH 无法建立连接,HDFS 客户端按主机名解析到该地址后报网络不可达。
5 解决步骤
5.1 拉起网卡
在虚拟机图形控制台(或已连接的终端)中执行以下命令激活 ens33 网卡:
sudo ip link set ens33 up
执行后会要求输入 hadoop 用户的 sudo 密码。
5.2 获取 IP 地址
sudo dhclient ens33
dhclient 通过 DHCP 为网卡获取 IP 地址。
5.3 确认 IP 地址
hostname -I
5.4 三台机器重复处理
hadoop02、hadoop03 的网卡同样处于 DOWN 状态,按 5.1 至 5.3 的步骤逐台处理,并记录各台机器获取到的 IP 地址。三台机器全部处理完成后,宿主机再次 ping 各 IP 均可正常响应。
6 FinalShell 连接配置
6.1 新建 SSH 连接
打开 FinalShell,在连接管理器中新建连接,填写以下参数:
表3 FinalShell 连接参数
|---------|-----------|------------------|
| 配置项 | 取值 | 说明 |
| 名称 | hadoop1 | 连接名称,可自定义 |
| 主机 | 虚拟机 IP 地址 | 如 192.168.91.128 |
| 端口 | 22 | SSH 默认端口 |
| 用户名 | hadoop | 虚拟机登录用户 |
| 认证方式 | 密码 | 输入对应用户密码 |
6.2 连接验证
点击连接后,若配置正确,将显示连接主机成功并进入终端,可看到 Ubuntu 的欢迎信息(Welcome to Ubuntu 16.04 LTS)。此时即可在宿主机上直接操作虚拟机,无需再打开图形控制台。
7 三台机器 IP 汇总
表4 三台虚拟机 IP 汇总
|----------|-------------------------------|--------|----------|
| 主机名 | IP 地址 | 角色 | 连接状态 |
| hadoop01 | 192.168.91.128 | 主节点 | 连接成功 |
| hadoop02 | 192.168.91.129、192.168.91.131 | 从节点 | 连接成功 |
| hadoop03 | 192.168.91.130、192.168.91.132 | 从节点 | 连接成功 |
说明:hadoop02、hadoop03 各显示了两个 IP 地址,分别来自不同的网络接口,连接时使用其中任一可达地址均可。但集群配置(/etc/hosts、Hadoop 配置文件)中的地址必须与实际 IP 保持一致。
8 常见问题与注意事项
问题一:dhclient 提示 RTNETLINK answers: File exists。表示该 IP 地址已经存在,无需重复获取,直接执行 hostname -I 查看即可。
问题二:sudo 密码输入错误。连续输错会被系统拒绝,注意输入正确密码。
问题三:找不到 /etc/sysconfig/network-scripts/ifcfg-ens33 文件。该路径属于 CentOS 系统,Ubuntu 16.04 不存在此文件属正常现象,Ubuntu 的网络配置使用其他机制,不要误判为文件缺失。
问题四:虚拟机重启后 IP 地址可能发生变化。若重启后连接失败,先用 hostname -I 确认新 IP,再同步更新 /etc/hosts 和 Hadoop 相关配置,避免集群节点之间互相找不到。
问题五:网络能连通但 SSH 连不上。检查 sshd 服务是否运行(systemctl status sshd),未安装时用 apt 安装 openssh-server;实训环境可关闭防火墙(systemctl stop firewalld)或放行 22 端口。
9 经验总结
排查网络问题应分层推进:先 ping 验证网络层,再查网卡状态与地址,最后检查服务与防火墙,避免直接改配置。
虚拟机网卡 DOWN 是最常见也最容易忽视的问题,一条 ip addr 即可定位,拉起网卡并获取 IP 后大部分连接问题都会迎刃而解。
使用 SSH 客户端远程管理集群比图形控制台更高效,配合免密登录(ssh-keygen 生成公钥并分发到各节点)后体验更好。
集群类实训要始终保持 hosts、IP 与配置文件三者同步,任何一处不一致都会引发难以排查的故障。