执行ifconfig后显示的en0、en1、p2p等是什么?

What are en0, en1, p2p, and so on, that are displayed after executing ifconfig?

当我在 Mac 终端上键入 ifconfig 时,会打印出几条信息。但我不明白它们是什么。谁能简要地告诉我它们是什么?什么是 lo0gif0en0 等等?

这是我终端的结果。

  Last login: Wed Apr 29 21:22:21 on ttys000
  gim-yeongdeog-ui-MacBook-Air:~ KimYoungDirk$ ifconfig
  lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
       options=3<RXCSUM,TXCSUM>
       inet6 ::1 prefixlen 128 
       inet 127.0.0.1 netmask 0xff000000 
       inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 
       nd6 options=1<PERFORMNUD>
  gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
  stf0: flags=0<> mtu 1280
  en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
       ether 64:76:ba:ae:a3:02 
       inet6 fe80::6676:baff:feae:a302%en0 prefixlen 64 scopeid 0x4 
       inet 172.30.7.47 netmask 0xffff0000 broadcast 172.30.255.255
       nd6 options=1<PERFORMNUD>
       media: autoselect
       status: active
  en1: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
       options=60<TSO4,TSO6>
       ether 32:00:1b:3e:80:00 
       media: autoselect <full-duplex>
       status: inactive
  p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
        ether 06:76:ba:ae:a3:02 
        media: autoselect
        status: inactive
 awdl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1452
        ether 0e:f1:59:ca:a5:30 
        inet6 fe80::cf1:59ff:feca:a530%awdl0 prefixlen 64 scopeid 0x7 
        nd6 options=1<PERFORMNUD>
        media: autoselect
        status: active
bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
         options=63<RXCSUM,TXCSUM,TSO4,TSO6>
         ether 66:76:ba:ea:38:00 
        Configuration:
            id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
            maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
            root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
            ipfilter disabled flags 0x2
        member: en1 flags=3<LEARNING,DISCOVER>
               ifmaxaddr 0 port 5 priority 0 path cost 0
        nd6 options=1<PERFORMNUD>
        media: <unknown type>
        status: inactive
  gim-yeongdeog-ui-MacBook-Air:~ KimYoungDirk$ 

这些是您的网络接口。有些是物理接口,有些是逻辑(虚拟)接口。

en0..X 指的是你的物理网络接口。大多数新 Mac 设备将只有 en0 - 您的 WiFi。 en0 是第一个启动的设备,en1 第二个,依此类推。

lo0是'loopback'接口。否则称为 localhost,或 127.0.0.1。其他的是虚拟接口。

以我的熟悉度/广泛相关性的任意顺序:

lo0是环回。

en0 曾经 "ethernet",现在是 WiFi(我不知道额外的 en1en2 有什么用)。

fw0 是 FireWire 网络接口。

stf0 是从 IPv4 到 IPv6 标准的IPv6 to IPv4 tunnel interface to support the transition

gif0 更像是 generic tunneling interface [46] 到 [46]。

awdl0Apple Wireless Direct Link

p2p0 与 AWDL 功能有关。作为旧版本,或者与 awdl 具有不同语义的虚拟接口。


另请注意,

  • 系统偏好设置中的 "Network" 面板可以查看当前配置的网络设备 "exist" 或 "can exist"。
  • 许多 VPN 会添加额外的设备,通常是 "utun#" 或 "utap#" 在 TUN/TAP (L3/L2) 虚拟网络设备之后。
  • 使用 netstat -nr 查看当前如何根据目的地通过网络设备路由流量。
  • 在 BSD 中开始的接口命名约定在 OS X / macOS 中保留,现在也有添加。

也在 Apple SE here and there 上回答了部分问题。

-v 标志提供了一些接口的类型信息,例如 IP over Thunderbolt for en2:

ifconfig -v en2                              
en2: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500 index 6
    eflags=41000080<TXSTART,ECN_ENABLE,FASTLN_ON>
    options=460<TSO4,TSO6,CHANNEL_IO>
    ether 82:02:9f:a3:0c:00 
    netif: EF77BC13-3B69-466C-8BA2-591CCA2D6C44
    flowswitch: C155EE61-3E2C-465E-9AFB-17C36ECD8F8C
    media: autoselect <full-duplex>
    status: inactive
    type: IP over Thunderbolt
    agent domain:Skywalk type:NetIf flags:0xa443 desc:"Userspace Networking"
    agent domain:Skywalk type:FlowSwitch flags:0x4403 desc:"Userspace Networking"
    state availability: 0 (true)
    scheduler: FQ_CODEL 
    qosmarking enabled: yes mode: none
    low power mode: disabled
    multi layer packet logging (mpklog): disabled
    routermode4: disabled
    routermode6: disabled