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

49

当我在我的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$ 

3
http://superuser.com/questions/267660/mac-os-x-please-explain-ifconfig-output - baf
4个回答

45

接口

按照我熟悉程度和广泛适用性的任意顺序:

lo0 是环回接口。

en0 曾经是“以太网”,现在是 WiFi。

en1en2 提供 Thunderbolt 上的 IP,根据 for IF in en1 en2; do ifconfig -v $IF; done。感谢下面的 @Mojo66。

fw0 是 FireWire 网络接口。

stf0 是一个 IPv6 到 IPv4 隧道接口,用于支持从 IPv4 到 IPv6 标准的过渡

gif0 是一个更通用的隧道接口 [46]-to-[46]。

awdl0Apple Wireless Direct Link

p2p0 与 AWDL 功能相关。它可以是旧版本,也可以是具有不同语义的虚拟接口,与 awdl 不同。

utun# 接口,utun0utun1,...:这些是由第三方网络应用程序使用的 tun/tap 接口,用于提供完全使用 macOS 网络堆栈的接口(或多或少)。许多 VPN,例如 WireGuard、(托管版本)TailScale 或 ZeroTier,会添加这些设备,utun#utap# 作为 TUN(L3/IP) / TAP (L2/Ethernet) 内核虚拟网络设备。

2023-03 更新:

bridge0 接口在 macOS 12.6.3 之前引入了,我将其添加到我的默认 macOS 配置中,用于桥接 en1en2

llw0 是一个低延迟广域网接口,可能是令人兴奋的新苹果家庭物联网集成的一部分,它是统一的、系统管理的、但具有统一寻址的数据通道,将与超宽带物理定位一起使用。

还要注意

  • 在“系统偏好设置”的“网络”面板中查看当前配置下存在或可以存在的网络设备。

  • 使用netstat -nr查看当前如何通过目标路由流量。

  • OS X / macOS 中保留了 BSD 中开始的接口命名约定,并增加了一些内容。

也可在 Apple SE 这里那里找到部分答案。

另请参阅,工具

对于感兴趣的人还有一些额外的注释:

  • networksetup 提供更多对系统设置的访问。 (查看 -help 或者 man 页面,无效参数将产生一个紧凑的可搜索表示)。我喜欢在系统偏好设置 > 网络中使用接口列表中指定的名称,并以此为粒度来使用 networksetup -getdnsservers <networkservice>networksetup -setdnsservers <networkservice> <dns1> [dns2] [...]
  • 设置首选 DNS 配置,家庭和咖啡店 WiFi 重定向,或快速调试。关键字 empty 是关键但没有记录文档。
    • 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 只会列出名字。很好,也很罕见,不需要对结果进行文本处理。
    • ifconfig -v [ifname]type: 键下显示更详细的信息。看到调度器(例如 FQ_CODEL),低功耗模式,QoS 标记和 neighbor discovery 设置(用于 IPv6)也非常酷。

13

这些是您的网络接口,其中一些是物理接口,而另一些是逻辑(虚拟)接口。

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

lo0 是“环回”接口。 也称为localhost或127.0.0.1。其他的都是虚拟接口。


5
-v 标志可以为一些接口提供类型信息,例如 en2 上的 Thunderbolt 上的 IP
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

0

补充信息。 有时,通过USB插入Mac的设备会被分配一个虚拟的enX设备和IP地址。例如,即使您仅插入iPhone进行充电并且没有进行任何操作,它也可能会这样做。


这非常重要。帮助我追踪了一个错误,其中选择并显示了错误的“可用”IPAddress给用户。谢谢,Geoff! - FromTheStix

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接