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

linux下的虚拟网卡是什么

网络 虚拟 sudo 网卡    来源:    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提供了强大的网络虚拟化能力,是容器化、云计算和网络隔离等技术的基础组件。