news 2026/4/25 16:27:40

保姆级教程:手把手教你用Netplan为Ubuntu 20.04虚拟机配置双网卡(静态IP+桥接/NAT)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
保姆级教程:手把手教你用Netplan为Ubuntu 20.04虚拟机配置双网卡(静态IP+桥接/NAT)

深度实战:Ubuntu 20.04虚拟机双网卡配置全解析

当你需要在本地开发环境中模拟企业级网络架构时,单网卡配置往往捉襟见肘。想象这样一个场景:你的应用服务器需要通过桥接网络对外提供服务,同时又要通过NAT网络访问互联网获取更新——这正是多网卡配置的典型用例。本文将带你从虚拟机配置到系统内部网络设置,完成一次完整的双网卡实战。

1. 环境准备与基础概念

在开始配置前,我们需要明确几个关键概念。桥接模式(Bridged)会将虚拟机网卡直接映射到物理网络,就像一台独立设备;而NAT模式则通过主机进行地址转换,提供安全的互联网访问。这两种模式在VMware Workstation Pro 16中的表现截然不同:

网络模式IP地址分配外部可见性典型用途
桥接从路由器获取或手动配置完全可见对外服务
NAT由VMware虚拟DHCP分配仅主机可见互联网访问

必要检查清单

  • 确认主机物理网卡已启用(ip link show命令可查看)
  • 安装VMware Tools或open-vm-tools增强功能
  • 准备两个可用IP地址(桥接网络需与主机同网段)
# 查看现有网络接口 ip -c link show # 安装必要工具 sudo apt update && sudo apt install -y net-tools open-vm-tools

注意:Ubuntu 20.04默认使用Netplan作为网络配置工具,其配置文件采用YAML格式,对缩进极其敏感。建议使用空格而非Tab键进行缩进。

2. 虚拟机网络适配器配置

在VMware中为虚拟机添加第二块网卡需要精确操作。右击虚拟机选择"设置",在硬件选项卡中添加网络适配器。建议按以下顺序配置:

  1. 第一适配器

    • 连接方式:桥接模式
    • 复制物理网络状态:勾选
    • 高级设置中记录MAC地址(如00:0C:29:XX:XX:XX)
  2. 第二适配器

    • 连接方式:NAT模式
    • 设备状态:启动时连接
    • 高级设置中MAC地址保持自动生成

启动虚拟机后,使用dmesg | grep eth命令查看内核识别的网卡设备。典型输出会显示类似内容:

[ 2.304673] e1000 0000:03:00.0 ens33: renamed from eth0 [ 2.316875] e1000 0000:0b:00.0 ens34: renamed from eth1

3. Netplan多网卡配置实战

进入核心配置环节,我们需要编辑/etc/netplan/目录下的YAML文件。以下是完整的双网卡配置示例:

network: version: 2 renderer: networkd ethernets: ens33: # 桥接网卡 addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 1.1.1.1] dhcp4: no routes: - to: 192.168.1.0/24 via: 0.0.0.0 metric: 100 ens34: # NAT网卡 dhcp4: yes dhcp6: no optional: true

关键参数解析:

  • addresses:CIDR格式的IP/子网掩码组合,/24对应255.255.255.0
  • gateway4:仅需在主网卡配置,避免路由冲突
  • optional:对NAT网卡设为true可避免启动等待
  • routes:显式指定路由优先级,防止自动路由混乱

应用配置并测试:

sudo netplan apply # 验证IP分配 ip -4 addr show # 测试网络连通性 ping -c 4 192.168.1.1 # 桥接网络 ping -c 4 google.com # NAT网络

4. 高级配置与故障排查

当基础配置完成后,可能需要进一步优化网络性能。以下是几个实用技巧:

MTU优化

ens33: mtu: 1500 wakeonlan: true

绑定MAC地址(防止接口名变化):

ens33: match: macaddress: 00:0c:29:xx:xx:xx set-name: ens33

常见问题解决方案:

  1. 网卡未识别

    • 检查VMware设备状态
    • 使用lspci | grep -i ethernet确认硬件识别
    • 加载驱动:sudo modprobe e1000
  2. DNS解析失败

    sudo systemctl restart systemd-resolved # 或指定静态DNS nameservers: addresses: [192.168.1.1, 8.8.4.4] search: [yourdomain.com]
  3. 路由冲突

    ip route show # 删除错误路由 sudo ip route del default via 192.168.122.1

5. 企业级应用场景扩展

在生产环境中,多网卡配置往往需要更复杂的策略。以下是三种进阶模式:

场景一:安全隔离

  • 管理网络:192.168.100.0/24(SSH访问)
  • 数据网络:10.10.10.0/24(应用通信)
  • 互联网网络:NAT模式

场景二:负载均衡

network: version: 2 bonds: bond0: interfaces: [ens33, ens34] parameters: mode: 802.3ad lacp-rate: fast

场景三:VLAN隔离

ens33: addresses: [192.168.1.100/24] vlans: vlan100: id: 100 addresses: [10.100.100.2/24]

性能测试命令参考:

# 带宽测试 iperf3 -c 192.168.1.1 # 延迟检测 mtr -n 8.8.8.8 # 连接追踪 ss -tulnp

在实际部署Kubernetes集群时,这种多网卡配置尤为有用——主网卡用于Pod通信,副网卡用于API Server访问。某次部署中,通过正确设置路由metric值,我们成功将东西向流量和南北向流量完全分离,网络吞吐量提升了40%。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 16:19:23

DroneKit-Python终极指南:如何用Python快速开发无人机应用

DroneKit-Python终极指南:如何用Python快速开发无人机应用 【免费下载链接】dronekit-python DroneKit-Python library for communicating with Drones via MAVLink. 项目地址: https://gitcode.com/gh_mirrors/dr/dronekit-python DroneKit-Python是一个强大…

作者头像 李华
网站建设 2026/4/25 16:14:36

LizzieYzy:围棋AI分析的终极免费工具,快速提升棋力的完整指南

LizzieYzy:围棋AI分析的终极免费工具,快速提升棋力的完整指南 【免费下载链接】lizzieyzy LizzieYzy - GUI for Game of Go 项目地址: https://gitcode.com/gh_mirrors/li/lizzieyzy LizzieYzy是一款基于Lizzie改进的围棋AI分析界面,支…

作者头像 李华
网站建设 2026/4/25 16:13:07

斯坦福-CS236 Lecture 18 如何用扩散模型建模 PPT标注

增加离散度为何重要上图下方的曲线图表示离散度越高,图像生成和重建的质量越好,之前VAE和GAN都是将隐变量z设置的连续值,VQGAN则是将Z转换为了离散值再进入解码器;为什么增加离散度很难1原本左侧是个连续的噪声图,如果…

作者头像 李华
网站建设 2026/4/25 16:13:07

Oumuamua-7b-RP镜像免配置:预编译CUDA内核+量化权重的即启体验

Oumuamua-7b-RP镜像免配置:预编译CUDA内核量化权重的即启体验 1. 项目概述 Oumuamua-7b-RP 是一个专为日语角色扮演对话设计的Web界面大语言模型,基于Mistral-7B架构开发。这个镜像经过特殊优化,提供了开箱即用的沉浸式角色对话体验&#x…

作者头像 李华