ifconfig 的输出解析

337 阅读8分钟

在MacOS系统上,执行 ifconfig 命令。
所输出的 lo0 gif0 stf0 en1 en2 fw0 p2p0 awdl0 bridge0 到底表示什么?

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
        options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP>
        inet 127.0.0.1 netmask 0xff000000 
        inet6 ::1 prefixlen 128 
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 
        nd6 options=201<PERFORMNUD,DAD>
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        options=400<CHANNEL_IO>
        ether 78:4f:43:77:59:a2 
        inet6 fe80::8db:16b3:4028:d13c%en0 prefixlen 64 secured scopeid 0x5 
        inet 192.168.0.100 netmask 0xffffff00 broadcast 192.168.0.255
        nd6 options=201<PERFORMNUD,DAD>
        media: autoselect
        status: active
en3: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
        options=460<TSO4,TSO6,CHANNEL_IO>
        ether 82:41:84:02:dc:01 
        media: autoselect <full-duplex>
        status: inactive
en1: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
        options=460<TSO4,TSO6,CHANNEL_IO>
        ether 82:41:84:02:dc:00 
        media: autoselect <full-duplex>
        status: inactive
en4: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
        options=460<TSO4,TSO6,CHANNEL_IO>
        ether 82:41:84:02:dc:05 
        media: autoselect <full-duplex>
        status: inactive
en2: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
        options=460<TSO4,TSO6,CHANNEL_IO>
        ether 82:41:84:02:dc:04 
        media: autoselect <full-duplex>
        status: inactive
bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        options=63<RXCSUM,TXCSUM,TSO4,TSO6>
        ether 82:41:84:02:dc: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 0x0
        member: en1 flags=3<LEARNING,DISCOVER>
                ifmaxaddr 0 port 7 priority 0 path cost 0
        member: en2 flags=3<LEARNING,DISCOVER>
                ifmaxaddr 0 port 9 priority 0 path cost 0
        member: en3 flags=3<LEARNING,DISCOVER>
                ifmaxaddr 0 port 6 priority 0 path cost 0
        member: en4 flags=3<LEARNING,DISCOVER>
                ifmaxaddr 0 port 8 priority 0 path cost 0
        nd6 options=201<PERFORMNUD,DAD>
        media: <unknown type>
        status: inactive
p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
        options=400<CHANNEL_IO>
        ether 0a:4f:43:77:59:a2 
        media: autoselect
        status: inactive
awdl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1484
        options=400<CHANNEL_IO>
        ether 02:e0:77:f0:58:0c 
        inet6 fe80::e0:77ff:fef0:580c%awdl0 prefixlen 64 scopeid 0xc 
        nd6 options=201<PERFORMNUD,DAD>
        media: autoselect
        status: active
llw0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        options=400<CHANNEL_IO>
        ether 02:e0:77:f0:58:0c 
        inet6 fe80::e0:77ff:fef0:580c%llw0 prefixlen 64 scopeid 0xd 
        nd6 options=201<PERFORMNUD,DAD>
        media: autoselect
        status: active
utun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1380
        inet6 fe80::3bca:f772:ff73:db0e%utun0 prefixlen 64 scopeid 0xf 
        nd6 options=201<PERFORMNUD,DAD>
utun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 2000
        inet6 fe80::34b3:90a7:1d8c:1396%utun1 prefixlen 64 scopeid 0x10 
        nd6 options=201<PERFORMNUD,DAD>
utun2: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1380
        inet6 fe80::98ec:588f:c80b:bad%utun2 prefixlen 64 scopeid 0x11 
        nd6 options=201<PERFORMNUD,DAD>
en5: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        ether ac:de:48:00:11:22 
        inet6 fe80::aede:48ff:fe00:1122%en5 prefixlen 64 scopeid 0x4 
        nd6 options=201<PERFORMNUD,DAD>
        media: autoselect
        status: active
  • stf0 = 6to4 tunnel interface
  • fw0 = Firewire
  • vmnet8 = Virtual Interface
  • vmnet1 = Virtual Interface
UP代表网卡开启
RUNNING 代表这个网卡是处于网络连接状态
MULTICAST:代表这个网卡是支持组播的
BROADCAST:有广播地址,支持发广播包
mtu 1500:代表这个网卡最大的单元传输为1500字节
inet 192.168.8.247 netmask 0xffffff00 broadcast 192.168.8.255:这里不多说都知道
inet6 fe80::10b6:81e9:32b2:aa9f%en7 prefixlen 64 secured scopeid 0xa:这里不多说都知道
media: autoselect—— 网络媒介类型 (可手动指定)
status: active—— 激活状态

RX packets 网卡接收数据包的的信息
RX errors 网卡接收数据时错误的信息
TX packets 169114 bytes 12443628 (11.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
TX packets 网卡发送数据包的信息
TX errors 网卡发送数据是错误的信息

lo

lo 表示主机的回环地址(loopback) 或 本地主机(localhost)
一般用来测试一个网络程序,但又不想让局域网或外网用户能够查看,只能在此台主机上运行和查看所用的网络接口。
比如把 http服务器的指定到回坏地址,在浏览器输入127.0.0.1就能看到你所架WEB网站了。但只是您能看得到,局域网的其它主机或用户无从知道。

 # lo: loopback 本机回环地址
 
 # flag=8049 网络设备状态标识
 # UP:网卡处于启动状态
 # LOOPBACK:IP数据包回送到本机上,通常用于测试网络配置和本地程序之间通信用
 # RUNNING:代表网卡的网线被接上
 # MULTICAS:网卡支持发送多播、组播包
 # mtu:最大传输单元(这里设置的16384是否以太网设置的?)
 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAS> mtu 16384

 # 参数? 可以设置值
 options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP>
 
 # ipv4地址 127.0.0.1 子网掩码 255.0.0.0
 inet 127.0.0.1 netmask 0xff000000

 inet6 ::1 prefixlen 128

 # ipv6地址
 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1

 nd6 options=201<PERFORMNUD,DAD>

gif = Software Network Interface

通用 IP-in-IP隧道(RFC2893)
git = software network interface 网络接口
没明白 gif 怎么成为跟Software Network Interface的缩写的,完全不沾边啊

# POINTOPOINT: 允许2台机器点对点直连
# MULTICAS:网卡可以发送多播包
# mtu:最大传输单元(这里设置的1280是否以太网设置的?)
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280

stf

6to4连接(RFC3056)
six to four --> stf

# stf 6to4 tunnel interface 配置隧道 
stf0: flags=0<> mtu 1280

en(Ethernet 以太网)

en0 --> Ethernet 0 --> 以太网0
到底是什么?
eth0 表示序号为0的网卡,也就是第一块网卡,
其中HWaddr表示网卡的物理地址

那为什么 en0 en1 en2 en3 en4 这么多网卡?

运行命令行,可查看具体接口是做什么操作的

networksetup -listallhardwareports

具体结果

Hardware Port: Wi-Fi
Device: en0
Ethernet Address: f4:5c:89:ba:7c:f7

Hardware Port: iPhone USB
Device: en5
Ethernet Address: 72:f0:87:7a:ab:48

Hardware Port: Bluetooth PAN
Device: en3
Ethernet Address: f4:5c:89:ba:7c:f8

Hardware Port: Thunderbolt 1
Device: en1
Ethernet Address: 82:13:15:bc:5a:80

Hardware Port: Thunderbolt 2
Device: en2
Ethernet Address: 82:13:15:bc:5a:81

Hardware Port: Thunderbolt Bridge
Device: bridge0
Ethernet Address: 82:13:15:bc:5a:80

VLAN Configurations
===================

原来是Wi-Fi,蓝牙,thunderbolt

以太网或802.11接口

en0

# en0: 以太网0
# flags=8863:网络状态标识
# BROADCAST:有广播地址,支持发广播包
# SMART:
# RUNNING:代表网卡的网线被接上
# MULTICAS:网卡可以发送多播包
# mtu: 最大传输单元
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether c4:b3:01:ce:06:11
# ipv4地址          子网掩码             广播地址
inet 192.168.1.11  netmask 0xffffff00  broadcast 192.168.1.255
# 网络媒介类型 (可手动指定)
media: autoselect
# 激活状态
status: active

en1、en2

# en1: 以太网1 雷电口1
en1: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
options=60<TSO4,TSO6>
ether 4a:00:07:5c:bd:00
media: autoselect <full-duplex>
status: inactive

en2: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
options=60<TSO4,TSO6>
ether 4a:00:07:5c:bd:01
media: autoselect <full-duplex>
status: inactive

XHC20

# XHC20 
XHC20: flags=0<> mtu 0

fw

IP over FireWire(IEEE-1394), macOS特有

p2p

Point-to-Point 协议

# p2p0:Point-to-Point 协议
p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
ether 06:b3:01:ce:06:11
# 网络媒介类型
media: autoselect
# 闲置的
status: inactive

awdl

airdrop peer to peer(一种mesh network), apple airdrop设备特有

# awdl0: airdrop peer to peer(一种mesh network),apple airdrop设备特有
# Apple: 无线直接链接
# PROMISC: 允许混杂的模式(全部的数据会被接口接收)
awdl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1484
ether a6:04:50:c4:66:92
inet6 fe80::a404:50ff:fec4:6692%awdl0 prefixlen 64 scopeid 0x7
nd6 options=201<PERFORMNUD,DAD>
# 网络媒介类型
media: autoselect
# 激活状态
status: active

bridge

第2层桥接

# 具体google下桥接知识
bridge0: flags=8822<BROADCAST,SMART,SIMPLEX,MULTICAST> mtu 1500
options=63<RXCSUM,TXCSUM,TSO4,TSO6>
ether 4a:00:07:5c:bd: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 8 priority 0 path cost 0
member: en2 flags=3<LEARNING,DISCOVER>
        ifmaxaddr 0 port 9 priority 0 path cost 0
media: <unknown type>
status: inactive

vlan

虚拟局域网络 在iOS设备(支持cellular)上还能看到

pdp_ip

蜂窝数据连接