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

The -v flag provides a type info on some interfaces, for example 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

These are your network interfaces. Some are physical interfaces, and others are logical (virtual) interfaces.

en0..X refer to your physical network interfaces. Most new Mac devices will just have en0 - your WiFi. en0 is the first device to start, en1 the second, etc.

lo0 is the 'loopback' interface. Otherwise known as localhost, or 127.0.0.1. The others are virtual interfaces.


In arbitrary order of my familarity / widespread relevance:

lo0 is loopback.

en0 at one point "ethernet", now is WiFi (and I have no idea what extra en1 or en2 are used for).

fw0 is the FireWire network interface.

stf0 is an IPv6 to IPv4 tunnel interface to support the transition from IPv4 to the IPv6 standard.

gif0 is a more generic tunneling interface [46]-to-[46].

awdl0 is Apple Wireless Direct Link

p2p0 is related to AWDL features. Either as an old version, or virtual interface with different semantics than awdl.


Note also,

  • the "Network" panel in System Preferences to see what network devices "exist" or "can exist" with current configuration.
  • many VPNs will add additional devices, often "utun#" or "utap#" following TUN/TAP (L3/L2) virtual networking devices.
  • use netstat -nr to see how traffic is currently routed via network devices according to destination.
  • interface naming conventions started in BSD were retained in OS X / macOS, and now there also additions.

Also answered in part on Apple SE here and there.