插件窝 干货文章 linux下的虚拟网卡是什么

linux下的虚拟网卡是什么

网络 虚拟 sudo 网卡 746    来源:    2025-04-14

Linux下的虚拟网卡详解

虚拟网卡(Virtual Network Interface)是Linux系统中一种模拟物理网络接口的软件抽象,它不依赖于物理硬件,但能像真实网卡一样工作。

主要类型

  1. TUN/TAP设备

    • TUN:模拟三层网络设备,处理IP数据包
    • TAP:模拟二层网络设备,处理以太网帧
    • 常用于VPN实现(如OpenVPN)
  2. 虚拟以太网设备(veth)

    • 成对出现的虚拟设备,一端发送的数据会从另一端接收
    • 常用于容器网络(如Docker)和网络命名空间间通信
  3. 桥接设备(bridge)

    • 模拟物理交换机,可连接多个网络接口
    • 常用于虚拟机网络(KVM等)
  4. MACVLAN/MACVTAP

    • 允许单个物理接口拥有多个MAC地址
    • 可用于容器直接连接到物理网络
  5. IPVLAN

    • 类似MACVLAN,但共享MAC地址
    • 更高效但功能受限

常见用途

  • 容器网络隔离(Docker, LXC等)
  • 虚拟机网络连接(KVM, VirtualBox等)
  • VPN连接
  • 网络测试和模拟
  • 负载均衡和高可用性设置

基本操作命令

# 创建TUN设备
sudo ip tuntap add dev tun0 mode tun

# 创建veth对
sudo ip link add veth0 type veth peer name veth1

# 创建网桥
sudo ip link add br0 type bridge

# 启用/禁用虚拟网卡
sudo ip link set dev tun0 up
sudo ip link set dev tun0 down

# 查看所有网络接口
ip link show

# 删除虚拟网卡
sudo ip link delete dev tun0

实际应用示例

创建并配置TAP设备

sudo ip tuntap add dev tap0 mode tap
sudo ip addr add 192.168.100.1/24 dev tap0
sudo ip link set tap0 up

创建veth对并连接网络命名空间

sudo ip link add veth0 type veth peer name veth1
sudo ip netns add ns1
sudo ip link set veth1 netns ns1

虚拟网卡为Linux提供了强大的网络虚拟化能力,是容器化、云计算和网络隔离等技术的基础组件。