Interfaces
In arbitrary order of my familarity / widespread relevance:
lo0
is loopback.
en0
at one point “ethernet”, now is WiFi.
en1
and en2
offer IP over Thunderbolt, according to for IF in en1 en2; do ifconfig -v $IF; done
. H/T @Mojo66 below.
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 as a virtual interface with different semantics than awdl
.
utun#
interfaces, utun0
, utun1
, …: These are tun/tap interfaces used by 3rd party networking applications to offer interfaces that support full use of the macOS networking stack (more or less). Many VPNs, for example WireGuard, (managed version) TailScale, or ZeroTier, will add these devices, utun#
or utap#
as TUN(L3/IP) / TAP (L2/Ethernet) kernel virtual networking devices.
Update 2023-03:
bridge0
interface, introduced sometime before macOS 12.6.3, into my default macOS configuration, bridging en1
and en2
.
llw0
is a low-latency WAN interface, wow, may be part of exciting new Apple home IoT integrations, the unified, system-managed, but uniformly addressable data channel for coming use alongside ultra-wideband physical localization.
Note also
-
See the “Network” panel in System Preferences to see what network devices “exist” or “can exist” with current configuration.
-
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.
See also, tools
Some extra notes for the interested:
networksetup
provides more access to system settings. (See-help
orman
page, invalid arguments yield a compact grep-able representation). I like to usenetworksetup -getdnsservers <networkservice>
andnetworksetup -setdnsservers <networkservice> <dns1> [dns2] [...]
at the granularity of (and using the name specified in) the interface list in System Preferences > Network.
- Setting up preferred DNS configurations, at home and for coffeeshop wifi redirects, or quick debugging. The
empty
keyword is critical but not documented.alias networksetup-dns-cf="networksetup -setdnsservers Wi-Fi 1.1.1.1 1.0.0.1 2606:4700:4700::1111 2606:4700:4700::1001"
alias networksetup-dns-empty='networksetup -setdnsservers Wi-Fi empty'
ifconfig
ifconfig -l
will list just the names. So nice, and rare, not to need to text-mangle results.ifconfig -v [ifname]
shows more verbose information under thetype:
key. It’s also pretty cool to see the scheduler (e.g. FQ_CODEL), low power mode, QoS marking, neighbor discovery settings (for IPv6).