ifconfig and interfaces

55

我的问题很简单。在我的 Mac 上使用 ifconfig 命令时,我会得到以下接口:

  • en0
  • en1
  • lo0
  • fw0
  • vment0
  • vment1

我不理解为什么会有这么多接口。我知道 eth0 是用于 LAN 连接的,en0 是无线连接。但 MacBook 只有一个 Airport,所以为什么还有 en1?而 vment 又是干什么用的呢?


1
我想你可能已经安装了某种形式的VWare以获取vment*条目(这些通常是VM服务器的NAT或桥接接口)。之前有一个类似的问题http://superuser.com/questions/267660/mac-os-x-please-explain-ifconfig-output。 - Drav Sloan
抱歉!你是对的。我只在 Stack Overflow 上搜索了。 - lollercoaster
只是关闭主题而不是迁移,以避免创建重复内容。 - Bill the Lizard
2个回答

57

在OS X的默认配置中没有 eth0 接口。默认情况下,en0en1 是您的物理网络连接(有线和无线局域网)。lo0 是回环接口。fw0 是IP over Firewire接口;而 vmnet 接口是由VMware安装用于与虚拟机进行网络通信。


1
所以我可以拥有5个IP地址吗?(如果你计算127.0.0.1的话)我可以在网络中看起来像是5台电脑吗? - lollercoaster
1
是的,@lollercoaster。这些网络不一定相关。此外,您可以在物理接口上创建虚拟接口,并在单个基础适配器上拥有多个IP地址。 - Mehrdad Afshari
@Merhrdad 我明白了。就像虚拟 Apache 服务器一样?你所说的“这些网络不一定相关”是什么意思? - lollercoaster
1
@lol 1) 我不确定你所说的虚拟Apache服务器是什么意思,但是Apache可以通过两种方式进行多路复用;第一种方式是在单个IP端点(IP和端口组合)上托管多个域,在HTTP级别实现,而不是TCP(即单个套接字将监听所有域的连接);第二种方式是让Apache在不同的IP端点(无论是端口还是实际地址)上侦听。对于后者,可以利用在单个网络接口上拥有多个地址。-- 2) 我的意思是,你将拥有5个地址,但每个地址只在其相应的网络上有效... - Mehrdad Afshari
1
在单个物理网络接口上实现多个IP地址是很容易的。在以太网协议中,IP地址完全无关紧要。内核需要做一些事情:接收和处理针对多个IP地址的数据包,并使用相同的MAC地址响应发送到这些IP地址的ARP数据包。 - Mehrdad Afshari

21

en0en1是你的物理有线/无线网卡。

lo0是环回设备,用于完全内部通信,即在运行在您的PC上的两个应用程序之间。

fw0用于通过Firewire进行网络连接。

vment* - 由VMWare Fusion用于为虚拟机提供网络连接,每个设置的虚拟机可能会有一个。


哦,好的。那么当我运行 ifconfig 时,为什么我没有获得本地IP地址(192.168.x.x)?我只看到我的实际IP地址1x.196.x.x。 - lollercoaster
@lollercoaster 你看的是哪个接口?此外,有几个不同的本地IP范围(10.x,192.168.x和另一个),你可能只是在不同的私人范围内。 - Matthew Scharley

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