资讯详情

Ubuntu 20.04 Server + VMware虚拟机最佳实践指南

📅 2026/10/26 18:58:11 | 华诺云谱 👁 阅读
Ubuntu 20.04 Server + VMware虚拟机最佳实践指南
1. 为什么选Ubuntu 20.04 Server VMware这个组合——不是跟风是实测出来的稳Ubuntu 20.04 Server代号Focal Fossa发布于2020年4月官方支持周期长达5年到2025年4月LTS版本的稳定性、内核成熟度和软件包兼容性在实际运维中经受住了大量中小规模生产环境的考验。我参与过的某高校实验室虚拟化平台、某初创公司内部CI/CD测试集群、以及多个边缘计算节点项目都长期运行在20.04 Server上至今未因系统底层问题导致服务中断。它不像18.04那样部分新硬件驱动支持滞后也不像22.00那样在某些老旧VMware版本中存在vSphere Tools兼容性波动——这种“刚刚好”的技术窗口期恰恰是工程落地最需要的平衡点。VMware Workstation Pro或Player作为桌面级虚拟化主力工具对Linux发行版的支持极为成熟。相比VirtualBox它在CPU指令集透传、GPU直通虽Server版不常用、网络桥接模式稳定性、以及快照/克隆操作的原子性方面表现更可靠。尤其在多网卡绑定、SR-IOV模拟、以及与宿主机共享剪贴板/拖拽文件等协作场景下VMware Tools的集成度远超其他方案。这不是理论对比而是我在连续三年维护30台开发测试虚拟机后的真实结论当某次VirtualBox升级后导致Ubuntu 20.04的systemd-networkd服务反复重启时我果断把所有模板镜像迁回VMware——因为故障复现率从每周1次降为零。你可能会问现在都2024年了为什么还要用20.04答案很实在不是守旧而是权衡。很多企业级中间件比如某主流数据库的2.3.x稳定版、某工业协议网关的1.7.x LTS分支的官方文档明确标注“仅验证Ubuntu 20.04/Debian 10”跳过验证直接上22.04意味着你要自己承担驱动兼容、glibc版本冲突、systemd单元文件变更带来的全部风险。而VMware提供的是一个可控、可复现、可快照回滚的沙盒环境——这正是开发、测试、教学场景最核心的需求。所以这个标题背后不是一个简单的安装教程而是一套经过千次重复验证的“最小可行部署范式”用最稳妥的底座搭最干净的起点省下后续90%的排障时间。2. 安装前必须想清楚的5个关键决策点——少一个后面就得多调2小时2.1 磁盘分区方案LVM还是纯ext4别被默认选项带偏Ubuntu Server安装器默认推荐“Use entire disk and set up LVM”。但LVM真适合你的场景吗我建议绝大多数VMware用户关闭LVM选择“Erase disk and install Ubuntu”并手动进入高级选项。原因有三第一VMware虚拟磁盘本身已是逻辑抽象层再叠一层LVM属于过度抽象。LVM的在线扩容优势在虚拟机里几乎无用武之地——你随时可以关机编辑.vmdk文件大小然后进系统resize2fs比lvextendresize2fs少两步命令且无LVM元数据损坏风险。第二LVM默认创建的逻辑卷如ubuntu-vg/ubuntu-lv会占用约2GB空间用于metadata和预留这对起步配置20GB系统盘的测试环境是明显浪费。而纯ext4分区格式化后可用空间能多出1.8GB以上。第三也是最关键的一点LVM在VMware快照链中可能引发不可预测行为。曾有同事在做Ansible自动化部署时因LVM缓存机制与VMware写时复制Copy-on-Write策略冲突导致快照回滚后根文件系统只读挂载失败。最终排查耗时6小时解决方案就是重装为纯ext4。正确做法安装时选择“Something else”新建主分区挂载点为/文件系统选ext4勾选“Format the partition”大小设为分配给虚拟机的磁盘总容量减去2GB留作swap。swap大小按内存比例设≤4GB内存配2GB swap4–16GB内存配1GB swap≥16GB内存可不配swapServer版默认禁用swapfile纯swap分区更可控。2.2 网络配置模式NAT、桥接还是仅主机看你要解决什么问题VMware提供三种典型网络模式选错一种后续SSH连不上、apt更新失败、容器无法拉取镜像等问题就会接踵而至NAT模式默认虚拟机通过VMware NAT服务访问外网宿主机可SSH连接虚拟机但外部网络如你办公室局域网其他电脑无法直连该虚拟机。适合纯本地开发测试无需外部访问的场景。优点是配置最简单IP由VMware DHCP自动分配通常192.168.100.x段缺点是端口转发需手动在VMware网络编辑器中配置。桥接模式Bridged虚拟机如同物理机一样直接接入宿主机所在局域网获取同网段IP如192.168.1.105。外部设备可直接SSH、HTTP访问。适合需要被团队其他成员访问的服务如测试Web API、共享Git仓库。但要注意若宿主机用WiFi连接部分无线路由器会限制桥接设备数量或MAC地址学习导致虚拟机获取不到IP——此时应改用NAT或仅主机模式。仅主机模式Host-only虚拟机与宿主机组成独立私有网络如192.168.150.x无外网访问能力。适合高安全要求的离线环境测试或构建完全隔离的微服务沙盒。但需额外配置宿主机网络共享或代理才能让虚拟机上网。我的实操建议开发阶段一律用NAT调试服务对外暴露时临时切桥接生产模拟环境用仅主机宿主机代理。安装时不必纠结保持默认NAT即可后续通过ip a和nmcli命令行随时切换比图形界面重装快10倍。2.3 OpenSSH服务器必须勾选且要理解它为什么是“初始化配置”的起点安装界面最后一步“Install OpenSSH server”复选框务必打钩。这不是可选项而是整个初始化流程的触发器。原因在于Ubuntu Server安装器在勾选此选项后会自动完成三件事——安装openssh-server包并启用sshd服务生成主机密钥/etc/ssh/ssh_host_*_key避免首次SSH连接时动态生成导致延迟配置/etc/ssh/sshd_config基础参数PermitRootLogin设为prohibit-password禁止root密码登录但允许密钥PasswordAuthentication设为yes保留密码登录方便初期配置。这三点共同构成安全基线既防止暴力破解root不能密码登录又保留快速接入能力普通用户仍可密码登录。如果你跳过此步后续手动安装OpenSSH会发现sshd服务未启用、密钥未生成、配置文件是默认模板——这意味着你得手动执行sudo systemctl enable --now sshd、sudo ssh-keygen -A、再编辑配置文件多出至少5分钟操作且极易遗漏ssh-keygen -A导致SSH连接报错“no hostkey found”。提示安装完成后首次SSH登录用户名是你安装时设置的普通用户非root密码即该用户密码。不要尝试root登录这是Ubuntu Server的安全设计强行开启root密码登录反而破坏整体安全模型。2.4 时区与键盘布局别小看这两个选项它们影响日志分析和远程操作效率安装过程中“Where are you?”和“Choose your keyboard layout”看似无关紧要实则埋着两个大坑时区错误若误选为UTC而非本地时区如Asia/Shanghai会导致系统日志时间戳全错位。当你排查某个凌晨3点发生的crontab任务失败时日志显示却是上午11点这种时间错乱会让问题定位难度指数级上升。更严重的是systemd timer、logrotate、certbot自动续签等依赖系统时间的服务可能因时区偏差触发异常行为。正确做法在安装界面用方向键精准选择“Asia”→“Shanghai”而非随手选“UTC”。键盘布局错配VMware虚拟机默认使用US键盘映射。若你在安装时选了“Chinese (hanyu pinyin)”会导致SSH连接后输入、#、~等符号位置错乱比如本该Shift2输出却输出。这是因为SSH客户端如Windows的PuTTY、macOS的Terminal与服务器键盘映射不一致。解决方案不是改服务器而是统一用US键盘——在安装时就选“English (US)”后续所有操作包括输入密码都按美式键盘习惯一劳永逸。2.5 用户账户设置为什么强烈建议禁用密码复杂度检查安装时创建用户账户环节“Require a strong password?”默认是勾选的。但请立即取消勾选。理由很现实在VMware测试环境中你不需要银行级密码强度。强制要求包含大小写字母数字符号会导致你为每个虚拟机都设一个难以记忆的密码如U20f0cal!F0ss结果就是频繁重置密码、粘贴错误、甚至因输错三次被锁定。这完全违背“快速初始化”的初衷。Ubuntu Server的密码强度由pam_pwquality模块控制默认策略在/etc/pam.d/common-password中。取消勾选只是跳过安装器的交互校验系统仍会接受简单密码如ubuntu。而真正的安全防线在于我们后续会禁用密码登录全面转向SSH密钥认证。所以前期用简单密码是为了降低初始接入门槛后期用密钥认证才是生产级安全。这个分阶段策略比一开始就用复杂密码但始终依赖密码登录要务实得多。3. 安装过程详解从ISO启动到首次SSH登录的每一步拆解3.1 VMware虚拟机创建资源配置的黄金比例在VMware Workstation中点击“Create a New Virtual Machine”选择“Typicalrecommended”然后关键步骤来了Installer disc image file (ISO)指向已下载的ubuntu-20.04.6-live-server-amd64.iso注意选live-server版非desktop版后者含GUI组件Server版更轻量纯净。Guest Operating System选“Linux”Version选“Ubuntu 64-bit”。这里不能选“Other Linux”否则VMware Tools可能无法正确识别内核模块。Processors MemoryCPU2个处理器内核是甜点配置。单核易被apt update卡住后台进程竞争4核及以上对测试环境属资源浪费且可能触发Ubuntu的NUMA调度开销。内存至少2GB。1GB是绝对底线但运行apt update apt upgrade时会因OOM Killer杀掉dpkg进程导致升级中断。实测2GB可流畅完成全量升级Docker安装。Disk Size40GB动态分配。20GB是最低可行值但考虑到后续安装Docker、Node.js、Python包等40GB能避免频繁清理/var/cache/apt/archives/。动态分配确保宿主机磁盘不被立即占满。注意创建完成后务必进入“Virtual Machine Settings” → “Options” → “Advanced” → 勾选“Enable virtual Intel VT-x/EPT or AMD-V/RVI”这是启用KVM加速的前提否则Ubuntu内核会降级为纯软件模拟性能损失达40%以上。3.2 安装界面操作避开3个高频误操作点启动虚拟机后进入Ubuntu Server安装界面基于Subiquity非传统Ubiquity。关键操作序列如下Language → English坚持用英文界面避免中文locale导致部分CLI工具输出乱码Keyboard configuration → Done保持默认US不更改Network connections此处会列出ens33或类似名称网卡。不要点“Edit”默认DHCP配置已足够。若点“Edit”后误操作如手动填错IP会导致安装器无法联网下载软件包卡在“Downloading package lists”步骤。确认右上角显示“Connected”即可。Proxy information留空。除非你公司网络强制走代理否则填错会导致apt源无法访问。Ubuntu archive mirror默认archive.ubuntu.com即可。国内用户可手动改为mirrors.tuna.tsinghua.edu.cn/ubuntu/但需确保网络通畅NAT模式下清华源通常可达。Filesystem setup选择“Use an entire disk”取消勾选“Set up this disk as an LVM group”。点击“Confirm automatic addition”接受默认分区方案/boot单独分区/为主分区。Profile setupYour name随意如devuser此名仅用于登录提示符显示不影响系统Your server’s name建议用有意义的代号如web-test-01、db-staging便于后续批量管理Pick a username设为ubuntu统一命名避免dev、admin等随意名导致Ansible脚本失效Password按前述建议设简单密码如ubuntu取消勾选“Require a strong password?”SSH Setup务必勾选“Install OpenSSH server”这是初始化的生命线。Featured Server Snaps全部取消勾选。Snaps是Ubuntu的容器化包格式Server版默认不启用且Snapd服务会常驻内存占用100MB对测试环境纯属冗余。安装过程约8–12分钟期间会自动重启一次。重启后系统进入登录界面显示ubuntu login:提示符。3.3 首次登录与网络验证确认基础连通性的3条命令在VMware控制台中输入用户名ubuntu和密码ubuntu登录成功后立即执行以下命令验证环境健康度# 1. 查看IP地址确认是否获取到NAT网段地址如192.168.100.15 ip a | grep inet | grep -v 127.0.0.1 # 2. 测试外网连通性ping通DNS服务器即可不必强求google.com ping -c 3 114.114.114.114 # 3. 测试DNS解析验证/etc/resolv.conf是否生效 nslookup archive.ubuntu.com若第1条返回空说明网卡未启动执行sudo ip link set ens33 up若第2条失败检查VMware网络适配器是否启用、NAT设置是否正确若第3条失败检查/etc/resolv.conf内容是否为nameserver 192.168.100.2VMware NAT默认DNS。实操心得我习惯在首次登录后立即运行sudo apt update sudo apt list --upgradable查看是否有待升级包。Ubuntu 20.04.6 ISO内置的内核是5.4.0-150但当前最新稳定版是5.4.0-190升级可获得更好的硬件兼容性和安全补丁。这步操作耗时约5分钟但能避免后续安装Docker时因内核模块缺失报错。4. 初始化配置从裸系统到可交付环境的7项硬核操作4.1 更新系统与内核为什么必须做以及如何避免升级变砖执行sudo apt update sudo apt full-upgrade -y是初始化第一步但很多人忽略两个关键细节full-upgradevsupgradeupgrade只升级现有包不处理依赖冲突full-upgrade会智能移除/安装包以解决依赖确保系统一致性。Server版必须用full-upgrade否则可能遗留旧版内核模块导致后续驱动失效。内核升级后的grub配置升级后会安装新内核如5.4.0-190-generic但默认启动项仍是旧内核。需手动设置默认启动项# 查看所有内核条目 grep menuentry /boot/grub/grub.cfg | cut -d -f2 # 设置最新内核为默认假设最新条目索引为0 sudo sed -i s/GRUB_DEFAULT.*/GRUB_DEFAULT0/ /etc/default/grub sudo update-grub注意升级后务必重启sudo reboot并验证uname -r输出是否为新内核版本。曾有案例因未重启导致Docker daemon启动时报错“kernel version too old”排查耗时2小时才发现内核未生效。4.2 配置静态IPNAT模式下让SSH连接不再随IP漂移NAT模式下VMware DHCP分配的IP每次重启可能变化导致你记不住IPSSH连接失败。配置静态IP一劳永逸# 编辑Netplan配置Ubuntu 20.04默认使用Netplan sudo nano /etc/netplan/00-installer-config.yaml将原内容DHCP模式network: ethernets: ens33: dhcp4: true version: 2替换为静态IP配置以NAT网段192.168.100.0/24为例network: ethernets: ens33: dhcp4: false addresses: [192.168.100.50/24] gateway4: 192.168.100.2 nameservers: addresses: [114.114.114.114, 8.8.8.8] version: 2保存后应用sudo netplan apply验证ip a应显示ens33的IP固定为192.168.100.50ping 192.168.100.2应通。此后你可在宿主机上用ssh ubuntu192.168.100.50稳定连接无需每次查IP。4.3 SSH密钥认证替代密码安全与效率的双重提升密码登录虽方便但不符合生产安全规范。启用SSH密钥认证只需4步在宿主机生成密钥对Windows用PuTTYgenmacOS/Linux用终端# macOS/Linux宿主机执行 ssh-keygen -t ed25519 -C ubuntu-server -f ~/.ssh/id_ed25519_ubuntu密钥保存在~/.ssh/id_ed25519_ubuntu私钥和~/.ssh/id_ed25519_ubuntu.pub公钥。将公钥复制到Ubuntu Server# 宿主机执行自动完成权限设置 ssh-copy-id -i ~/.ssh/id_ed25519_ubuntu.pub ubuntu192.168.100.50在Server端禁用密码登录sudo nano /etc/ssh/sshd_config # 修改两行 # PasswordAuthentication yes → no # ChallengeResponseAuthentication yes → no sudo systemctl restart sshd验证密钥登录# 宿主机执行应无需密码直接登录 ssh -i ~/.ssh/id_ed25519_ubuntu ubuntu192.168.100.50实操心得我习惯在~/.ssh/config中为该虚拟机添加别名避免每次输长串Host ubu20 HostName 192.168.100.50 User ubuntu IdentityFile ~/.ssh/id_ed25519_ubuntu之后只需ssh ubu20即可秒连。4.4 防火墙配置UFW最小化开放原则的实践Ubuntu Server默认不启用防火墙但暴露在局域网中必须设防。UFWUncomplicated Firewall是最佳选择# 启用UFW拒绝所有入站允许所有出站 sudo ufw default deny incoming sudo ufw default allow outgoing # 允许SSH端口22这是唯一必须开放的端口 sudo ufw allow OpenSSH # 若需运行Web服务再开放80/443 # sudo ufw allow 80/tcp # sudo ufw allow 443/tcp # 启用防火墙 sudo ufw enable # 查看状态 sudo ufw status verboseUFW规则按顺序匹配allow OpenSSH会自动映射到22端口。启用后任何未明确允许的端口如Redis的6379、PostgreSQL的5432都将被静默丢弃极大降低攻击面。4.5 时区与Locale标准化消除日志和脚本的时间混乱虽然安装时已设时区但需二次确认并同步硬件时钟# 查看当前时区 timedatectl status | grep Time zone # 若非Asia/Shanghai执行 sudo timedatectl set-timezone Asia/Shanghai # 同步硬件时钟避免虚拟机关机后时间漂移 sudo hwclock --systohc同时标准化系统语言环境避免中文locale导致grep、sort等命令行为异常# 生成en_US.UTF-8 locale sudo locale-gen en_US.UTF-8 # 设为系统默认 sudo update-locale LANGen_US.UTF-8 # 生效 source /etc/default/locale4.6 创建sudo免密用户组提升日常操作效率每次执行sudo都要输密码对开发测试环境是巨大干扰。创建一个免密组仅授权必要命令# 创建组 sudo groupadd adminnopass # 将ubuntu用户加入该组 sudo usermod -aG adminnopass ubuntu # 配置sudoers允许该组执行所有命令但无需密码 echo %adminnopass ALL(ALL) NOPASSWD:ALL | sudo tee /etc/sudoers.d/adminnopass # 验证切换到ubuntu用户执行sudo ls /root 应无需密码注意此配置仅限可信的本地虚拟机环境。生产服务器严禁如此配置应遵循最小权限原则为每个命令单独授权。4.7 安装基础工具链让系统真正“可用”一个刚装好的Ubuntu Server缺少很多开发者习以为常的工具。一次性装齐sudo apt install -y \ curl wget git vim htop tmux jq \ python3-pip python3-venv \ build-essential zlib1g-dev libncurses5-dev \ libgdbm-dev libnss3-dev libssl-dev libreadline-dev \ libsqlite3-dev llvm libffi-dev # 升级pip到最新版 python3 -m pip install --upgrade pip # 配置pip国内源加速包安装 mkdir -p ~/.pip echo [global]\nindex-url https://pypi.tuna.tsinghua.edu.cn/simple/\ntrusted-host pypi.tuna.tsinghua.edu.cn ~/.pip/pip.conf这些工具覆盖了网络调试curl/wget、代码管理git、文本编辑vim、系统监控htop/tmux、JSON处理jq、Python开发pip/venv、C/C编译build-essential、以及各类开发库zlib、openssl等。装完后你就能直接git clone项目、pip install依赖、vim编辑配置真正进入开发状态。5. 常见问题与排查技巧实录那些让你抓狂的“灵异事件”真相5.1 问题安装后无法SSH连接提示“Connection refused”排查路径在VMware控制台登录执行sudo systemctl status sshd确认服务状态为active (running)。若为inactive (dead)执行sudo systemctl start sshd。检查sshd监听端口sudo ss -tlnp | grep :22应看到LISTEN状态。若无输出说明sshd未绑定端口检查/etc/ssh/sshd_config中Port 22和ListenAddress是否被注释或改错。检查防火墙sudo ufw status确认OpenSSH规则为ALLOW。若UFW启用但无此规则执行sudo ufw allow OpenSSH。检查VMware网络在宿主机ping 192.168.100.50若不通进入VMware“Edit”→“Virtual Network Editor”确认NAT设置中子网IP为192.168.100.0NAT设置中网关IP为192.168.100.2。根本原因80%的案例是sshd服务未启用或UFW规则缺失。记住sudo systemctl enable --now sshd和sudo ufw allow OpenSSH是初始化后必须执行的两条命令。5.2 问题apt update报错“Could not resolve ‘archive.ubuntu.com’”排查路径执行cat /etc/resolv.conf确认内容为nameserver 192.168.100.2VMware NAT DNS。若为127.0.0.53说明systemd-resolved接管了DNS需修改echo nameserver 192.168.100.2 | sudo tee /etc/resolv.conf检查网络连通性ping 192.168.100.2若不通重启VMware NAT服务Windows服务管理器中重启VMware NAT ServicemacOSsudo /Applications/VMware\ Fusion.app/Contents/Library/vmnet-cli --stop sudo /Applications/VMware\ Fusion.app/Contents/Library/vmnet-cli --start。检查源地址cat /etc/apt/sources.list确认所有http://archive.ubuntu.com已替换为http://mirrors.tuna.tsinghua.edu.cn/ubuntu/国内用户。避坑技巧我习惯在初始化脚本开头就固化DNSecho nameserver 114.114.114.114 | sudo tee /etc/resolv.conf echo nameserver 8.8.8.8 | sudo tee -a /etc/resolv.conf双DNS配置避免单点故障。5.3 问题VMware Tools安装失败提示“Kernel headers not found”现象在VMware菜单中点击“Install VMware Tools”挂载光盘后运行sudo ./vmware-install.pl报错The path is not valid path to the kernel header。解决方案# 安装对应内核的头文件以5.4.0-190-generic为例 uname -r # 查看当前内核 sudo apt install linux-headers-$(uname -r) # 重新运行VMware Tools安装 sudo ./vmware-install.pl -d原理VMware Tools需编译内核模块如vmhgfs共享文件夹驱动必须有匹配的linux-headers包。-d参数表示全自动默认安装避免交互式提问。5.4 问题共享文件夹Shared Folders在Ubuntu中不可见前提已成功安装VMware Tools见5.3。排查步骤在VMware设置中确认“Options”→“Shared Folders”已启用且添加了共享路径如/home/user/shared。在Ubuntu中执行sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid1000挂载uid1000对应ubuntu用户。创建永久挂载编辑/etc/fstab添加一行.host:/ /mnt/hgfs fuse.vmhgfs-fuse allow_other,uid1000,gid1000,umask022 0 0创建挂载点并挂载sudo mkdir -p /mnt/hgfs sudo mount -a。关键点必须指定uid和gid否则挂载后文件属主为rootubuntu用户无法读写。5.5 问题系统时间持续慢于宿主机重启后更严重原因Ubuntu Server默认启用systemd-timesyncd但VMware虚拟机应优先使用VMware Tools的时间同步功能。解决方法# 停用systemd-timesyncd sudo systemctl stop systemd-timesyncd sudo systemctl disable systemd-timesyncd # 启用VMware Tools时间同步需先安装Tools sudo vmware-toolbox-cmd timesync enable验证sudo vmware-toolbox-cmd timesync status应返回Enabled。此后虚拟机时间将与宿主机严格同步避免因时间差导致HTTPS证书失效、JWT token过期等诡异问题。6. 初始化完成后的3个高价值延展方向——让这台虚拟机不止于“能用”6.1 构建可复现的环境快照链从“一次安装”到“无限克隆”VMware快照不是备份而是开发流程的加速器。我建立的标准快照链如下Snapshot 0: Base Install—— 完成上述所有初始化配置后创建第一个快照。命名“202405-base-ubuntu2004”描述“Clean install SSH key UFW tools”。这是所有后续环境的黄金母版。Snapshot 1: Docker Ready—— 在Base基础上安装Docker CE、docker-compose配置daemon.json启用IPv6创建docker用户组并加ubuntu用户。命名“202405-docker-ready”。Snapshot 2: Dev Stack—— 再基于Docker Ready预装Node.js 18、Python 3.10、Java 11、PostgreSQL 14配置好环境变量。命名“202405-dev-stack”。每次新项目启动只需克隆“Dev Stack”快照5分钟内即可获得完整开发环境。而Base快照永远保持纯净用于验证新工具链兼容性。这种分层快照策略让我在3个月内快速迭代了12个不同技术栈的演示环境零重复劳动。6.2 自动化初始化脚本把50分钟操作压缩到1分钟将前述所有手动操作静态IP、SSH密钥、UFW、工具安装等写成Bash脚本存为init-ubuntu2004.sh#!/bin/bash # Ubuntu 20.04 Server 初始化脚本 set -e # 任一命令失败即退出 echo 步骤1更新系统 sudo apt update sudo apt full-upgrade -y echo 步骤2配置静态IPNAT模式 cat /tmp/00-netplan.yaml EOF network: ethernets: ens33: dhcp4: false addresses: [192.168.100.50/24] gateway4: 192.168.100.2 nameservers: addresses: [114.114.114.114, 8.8.8.8] version: 2 EOF sudo mv /tmp/00-netplan.yaml /etc/netplan/00-installer-config.yaml sudo netplan apply echo 步骤3SSH密钥与防火墙 sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow OpenSSH sudo ufw enable echo 步骤4安装基础工具 sudo apt install -y curl wget git vim htop tmux jq echo 初始化完成重启以应用网络设置 sudo reboot将脚本上传到新装系统chmod x init-ubuntu2004.sh sudo ./init-ubuntu2004.sh全程无人值守。脚本中set -e确保任一环节失败立即停止避免半残环境。6.3 与宿主机深度协同打造无缝开发工作流VMware的真正威力在于与宿主机的协同。我常用的三个技巧共享剪贴板与拖拽在VMware设置中启用“Enable drag and drop”和“Enable copy and paste”。安装VMware Tools后宿主机CtrlC复制的文本可在Ubuntu终端CtrlShiftV粘贴注意是ShiftV非CtrlV反之亦然。这比SCP传文件快10倍。共享文件夹自动挂载如前所述配置/etc/fstab后每次开机自动挂
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑