排查步骤
1. 检查虚拟机是否启用了 SSH 服务
WinSCP 连接虚拟机需要 SSH 服务在虚拟机中运行。
检查 SSH 服务状态:
在虚拟机中执行以下命令:sudo systemctl status ssh
-
如果 SSH 服务未启动:
sudo systemctl start ssh
sudo systemctl enable ssh # 设置开机自启
-
如果未安装 SSH:
sudo apt update
sudo apt install openssh-server
2. 确保虚拟机防火墙未阻止 SSH 端口(22)
在虚拟机中执行:
sudo ufw allow ssh
sudo ufw enable
sudo ufw status
确保状态显示 22/tcp ALLOW
。
3. 检查宿主机和虚拟机之间的连通性
- 虚拟机中(linux系统)通过ifconfig查看ens33的inet部分即虚拟机IP
- 在 宿主机 中 Ping 虚拟机 IP:
如果 Ping 不通:ping 192.168.160.128(
虚拟机 IP)
- 检查虚拟机是否正确联网(例如:NAT 或桥接模式)。
- 检查是否启用了 VMware 的网络适配器。
注意:在ifconfig之后
(1)如果只显示lo(lookback接口)
是网络配置问题
解决方案
1. 检查虚拟机网络适配器是否启用
在 VMware 或 VirtualBox 中:
- 确保网络适配器已启用。
- 如果是 VMware,检查设置中是否勾选了 Connect at power on。
2. 重启网络服务
在虚拟机内运行以下命令重启网络服务:
sudo systemctl restart NetworkManager
sudo service networking restart
3. 检查网络接口信息
ip link show
- 确保网络接口(例如
eth0
、ens33
等)处于 UP 状态。 - 如果接口显示为 DOWN,可以手动启用:
sudo ip link set <interface> up
4. 手动获取 IP 地址
尝试使用 dhclient
请求 IP 地址:
sudo dhclient <interface>
5. 安装和检查驱动
确保虚拟机中安装了正确的网络驱动(例如 VMware Tools 或 VirtualBox Guest Additions)。
sudo apt-get install open-vm-tools-desktop # VMware
sudo apt-get install virtualbox-guest-dkms # VirtualBox
个人是在4. 手动获取 IP 地址 这个方法解决
(2)如果只有Ipv6地址,需要请求DHCP重新分配Ipv4
ifconfig
的输出结果显示 ens33
网络接口只展示了 IPv6 地址,而没有显示 IPv4 地址。可能是由于网络配置不当或 DHCP(动态主机配置协议)没有成功分配 IPv4 地址。
原因分析
-
未获取到 DHCP 分配的 IPv4 地址:
虚拟机的网络适配器配置成了 DHCP 自动获取 IP,但没有成功分配 IPv4 地址。 -
虚拟机的网络设置有误:
可能虚拟机的网络模式(如 NAT、桥接模式等)配置错误。 -
NetworkManager 或网络服务未正确启动:
网络管理服务未能正常工作,导致网络接口没有获取到 IPv4 地址。
解决方案
1. 重新请求 DHCP 获取 IPv4 地址
在虚拟机中,尝试重新请求 DHCP 分配 IP 地址。
sudo dhclient ens33
执行完后,再次运行 ifconfig
查看是否有 IPv4 地址。
2. 检查虚拟机的网络模式
- 如你使用 VMware 或 VirtualBox,确保虚拟机的网络模式配置正确:
- NAT:虚拟机可以通过主机的网络访问外网。
- 桥接模式(Bridged):虚拟机直接连接到物理网络,与主机在同一网段。
修改网络设置后,重启虚拟机的网络服务或重启虚拟机。
3. 重启网络服务
尝试重启虚拟机的网络服务:
sudo systemctl restart NetworkManager
或者:
sudo service networking restart