VMware Ubuntu虚拟机配置与优化全指南
2026/9/20 8:52:58 网站建设 项目流程

1. VMware Ubuntu 虚拟机配置全攻略

作为一名长期使用Ubuntu进行开发的工程师,我深知在VMware中配置Ubuntu虚拟机时可能遇到的各种"坑"。本文将分享我从零开始配置Ubuntu虚拟机的完整经验,涵盖从基础设置到高级优化的方方面面。

2. 虚拟机基础配置

2.1 VMware Tools安装与配置

在虚拟机中安装VMware Tools是首要任务,它能显著提升虚拟机的使用体验。我推荐使用开源版本的open-vm-tools,因为它与Ubuntu的兼容性更好,且能自动接收更新。

安装命令如下:

sudo apt update sudo apt install open-vm-tools open-vm-tools-desktop -y sudo systemctl restart open-vm-tools

安装完成后,验证服务状态:

systemctl status open-vm-tools

如果看到"active (running)"状态,说明安装成功。

注意:如果安装后复制粘贴功能仍然不工作,可以尝试重启虚拟机。我在实际使用中发现,有时需要完全重启才能生效。

2.2 鼠标捕获问题解决

新手常遇到的一个问题是鼠标被虚拟机"捕获"后无法返回宿主机。标准的Ctrl+Alt组合键确实可以释放鼠标,但还有更优雅的解决方案:

  1. 在VMware菜单中选择"虚拟机"→"设置"
  2. 选择"选项"标签页
  3. 点击"客户机隔离"
  4. 确保"启用拖放"和"启用复制粘贴"都已勾选

这样设置后,鼠标可以在虚拟机和宿主机之间自由移动,无需频繁按组合键。

3. 网络配置详解

3.1 网络模式选择

VMware提供多种网络模式,对于开发环境,我强烈推荐使用NAT模式。这种模式下:

  • 虚拟机可以访问外部网络
  • 外部网络无法直接访问虚拟机
  • 虚拟机与宿主机可以互相通信
  • 多个虚拟机可以组成局域网

配置步骤:

  1. 关闭虚拟机
  2. 右键虚拟机→设置→网络适配器
  3. 选择"NAT模式"
  4. 打开VMware→编辑→虚拟网络编辑器→还原默认设置

3.2 静态IP配置

对于开发环境,使用静态IP比DHCP更稳定。以下是两种配置方法:

方法一:使用nmcli(推荐)
sudo nmcli con mod ens33 \ ipv4.addresses 192.168.xxx.xxx/24 \ ipv4.gateway 192.168.xxx.1 \ ipv4.dns "8.8.8.8 114.114.114.114" \ ipv4.method manual sudo nmcli con down ens33 && sudo nmcli con up ens33
方法二:使用netplan
sudo nano /etc/netplan/01-network-manager-all.yaml

添加以下内容:

network: version: 2 renderer: NetworkManager ethernets: ens33: dhcp4: no addresses: [192.168.xxx.xxx/24] routes: - to: default via: 192.168.xxx.1 nameservers: addresses: [8.8.8.8, 114.114.114.114]

然后应用配置:

sudo netplan apply

经验分享:如果遇到"Permissions for ... are too open"错误,执行sudo chmod 600 /etc/netplan/*.yaml即可解决。

4. SSH服务配置

4.1 安装与启用SSH服务

Ubuntu默认不安装SSH服务器,需要手动安装:

sudo apt update sudo apt install openssh-server -y sudo systemctl start ssh sudo systemctl enable ssh

验证SSH服务状态:

sudo systemctl status ssh --no-pager

应该看到"active (running)"状态。

4.2 Windows端SSH连接问题

Windows用户常遇到的SSH配置文件权限问题可以通过以下命令解决:

takeown /f C:\Users\你的用户名\.ssh\config icacls C:\Users\你的用户名\.ssh\config /reset icacls C:\Users\你的用户名\.ssh\config /grant "你的用户名:F"

或者直接删除配置文件(如果有备份):

del C:\Users\你的用户名\.ssh\config

4.3 SSH连接优化

为了提高SSH连接体验,可以在本地~/.ssh/config文件中添加以下配置:

Host ubuntu-vm HostName 虚拟机IP User 用户名 IdentityFile ~/.ssh/id_rsa ServerAliveInterval 60 TCPKeepAlive yes

这样只需输入ssh ubuntu-vm即可连接。

5. Python环境配置

5.1 解决GI模块导入错误

当遇到ImportError: cannot import name '_gi' from 'gi'错误时,可以尝试以下解决方案:

sudo apt install --reinstall python3-gi python3-gi-cairo gir1.2-gtk-3.0 sudo find /usr -name "*.pyc" -delete sudo find /usr -name "__pycache__" -type d -exec rm -rf {} +

5.2 ESP-IDF环境隔离

对于ESP32开发者,正确的环境隔离方法是在~/.bashrc中添加:

alias get_idf='. ~/esp32/esp-idf/export.sh'

使用时:

get_idf idf.py build

这样可以避免污染全局Python环境。

6. 桌面环境优化

6.1 解决终端无法打开问题

如果gnome-terminal无法打开,可以尝试:

sudo apt install --reinstall gnome-terminal

然后检查/usr/bin/gnome-terminal文件,确保第一行是#!/usr/bin/python3

6.2 关闭自动锁屏

对于开发环境,关闭自动锁屏可以提高效率:

gsettings set org.gnome.desktop.screensaver lock-enabled false gsettings set org.gnome.desktop.screensaver ubuntu-lock-on-suspend false gsettings set org.gnome.desktop.session idle-delay 0

6.3 sudo免密码配置

仅在开发虚拟机中建议配置sudo免密码:

sudo visudo

添加以下内容:

your_username ALL=(ALL) NOPASSWD: ALL

7. 系统语言设置

7.1 切换为中文界面

安装中文语言包:

sudo apt install language-pack-zh-hans sudo update-locale LANG=zh_CN.UTF-8 gnome-session-quit --no-prompt

如果界面仍未完全切换为中文:

  1. 打开设置→Region & Language
  2. 将"汉语"拖到语言列表顶部
  3. 点击"应用到整个系统"

8. 网络切换场景配置

8.1 多网络配置方案

对于需要在不同网络环境(如家庭和公司)切换的用户,可以创建多个网络配置:

家庭网络配置:

sudo nmcli con add type ethernet con-name home ifname ens33 \ ipv4.addresses 192.168.xxx.xxx/24 \ ipv4.gateway 192.168.xxx.1 \ ipv4.dns "8.8.8.8" \ ipv4.method manual

公司DHCP配置:

sudo nmcli con add type ethernet con-name office ifname ens33 \ ipv4.method auto

切换网络:

sudo nmcli con up home # 回家使用 sudo nmcli con up office # 公司使用

9. 常见问题排查

9.1 apt被锁问题

当遇到"无法获得锁 /var/lib/dpkg/lock-frontend"错误时:

sudo killall unattended-upgrades sudo rm /var/lib/dpkg/lock-frontend sudo rm /var/lib/dpkg/lock sudo rm /var/cache/apt/archives/lock sudo dpkg --configure -a

9.2 网络管理服务冲突

如果netplan apply报错,可能是因为NetworkManager和systemd-networkd冲突。解决方案:

使用NetworkManager(桌面版推荐):

sudo systemctl stop systemd-networkd sudo systemctl disable systemd-networkd sudo systemctl restart NetworkManager

或者使用systemd-networkd(服务器风格):

sudo systemctl stop NetworkManager sudo systemctl disable NetworkManager sudo systemctl restart systemd-networkd

10. 一键诊断脚本

创建一个check.sh脚本用于快速诊断虚拟机状态:

#!/bin/bash echo "========== 系统信息 ==========" echo "主机名: $(hostname)" echo "用户: $(whoami)" echo "系统: $(lsb_release -d | cut -f2)" echo -e "\n========== 网络状态 ==========" echo "IP地址: $(ip -4 addr show | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | head -1)" echo "网关: $(ip route | grep default | awk '{print $3}')" ping -c 1 8.8.8.8 >/dev/null 2>&1 && echo "外网: ✓" || echo "外网: ✗" echo -e "\n========== SSH 服务 ==========" systemctl is-active ssh >/dev/null 2>&1 && echo "SSH: ✓ 运行中" || echo "SSH: ✗ 未运行" echo "SSH 命令: ssh $(whoami)@$(hostname -I | awk '{print $1}')" echo -e "\n========== Python环境 ==========" echo "Python版本: $(python3 --version 2>&1)" python3 -c "from gi.repository import GLib; print('GI模块: ✓')" 2>/dev/null || echo "GI模块: ✗" echo -e "\n========== 桌面配置 ==========" echo "锁屏: $(gsettings get org.gnome.desktop.screensaver lock-enabled)" echo "自动登录: $(grep -q "AutomaticLogin" /etc/gdm3/custom.conf && echo "✓" || echo "✗")" echo "sudo免密码: $(sudo -n true 2>/dev/null && echo "✓" || echo "✗")" echo -e "\n========== VMware工具 ==========" dpkg -l | grep -q open-vm-tools-desktop && echo "VMware Tools: ✓" || echo "VMware Tools: ✗"

运行脚本:

bash check.sh

经过以上配置,你的Ubuntu虚拟机应该已经成为一个稳定、高效的开发环境。在实际使用中,我发现定期更新系统和备份虚拟机镜像可以避免很多问题。特别是进行重要配置更改前,建议先做一个虚拟机快照,这样一旦出现问题可以快速回滚。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询