如何知道我的计算机正在使用哪个网络接口?


24

在MBP(OS X 10.6.2)上,我已经设置了有线以太网和无线机场配置,以对路由器使用相同的静态IP(例如,如http://forums.macrumors.com/archive/index所述) .php / t-708685.html)。我还设置了服务订单,以使有线连接高于机场(例如,如插入Mac OS X所述,如果插入了以太网电缆,则自动关闭机场)。

这似乎是“有效的”:当我插入并拔出以太网电缆时,与远程位置的打开ssh连接会保持正常。但是,由于机场卡保持活动状态(并已连接到路由器),而不管是否存在有线连接,我如何才能知道有线接口在可用时实际上是“活动”连接?由于两者的IP地址相同,是否可以确保无法使用无线接口?还有其他方法可以判断此接口是否正在使用吗?

PS。我将在发布此内容后立即发布(部分)答案,因为撰写本文并检查所有事实的行为使我获得了一些见解。(更有趣和未回答的部分在上方以粗体显示。)

Answers:


26

有关诸如“哪个接口将用于访问主机wxyz?”之类问题的权威参考。对于任何给定的时间或情况,请参考路由表。

[mini-nevie:~] nevinwilliams% route get 10.10.10.10
   route to: 10.10.10.10
destination: default
       mask: default
    gateway: 192.168.2.1
  interface: en0
      flags: <UP,GATEWAY,DONE,STATIC,PRCLONING>
 recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
       0         0         0         0         0         0      1500         0 

我同时启用了en0和en1,并且en0在服务订单中排名第一。拔出我的以太网,不做任何其他更改,相同的命令给出:

mini-nevie:~] nevinwilliams% route get 10.10.10.10
   route to: 10.10.10.10
destination: default
       mask: default
    gateway: 192.168.2.1
  interface: en1
      flags: <UP,GATEWAY,DONE,STATIC,PRCLONING>
 recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
       0         0         0         0         0         0      1500         0 

12

我用这个:

if=$(route -n get 0.0.0.0 2>/dev/null | awk '/interface: / {print $2}')

if [ -n "$if" ]; then
    echo "Default route is through interface $if"
else
    echo "No default route found"
fi

2
iface(){ route get 0.0.0.0 2>/dev/null | awk '/interface: / {print $2}'; }
mralexgray 2014年

8

这是ifconfig -a每种情况下的转储(我将在后面强调差异):

以太网电缆已插入:

lo0:标志= 8049 mtu 16384
        inet6 :: 1前缀len 128
        inet6 xxxx :: 1%lo0 prefixlen 64 scopeid 0x1
        inet 127.0.0.1网络掩码0xff000000
gif0:标志= 8010 mtu 1280
stf0:标志= 0 mtu 1280
en0:标志= 8863 mtu 1500
        inet6 xxxx%en0 prefixlen 64作用域ID 0x4
        inet 192.168.0.110网络掩码0xffffff00广播192.168.0.255
        以太xx:xx:xx:xx:xx:xx:xx
        媒体:自动选择(100baseTX)状态:有效
        支持的介质:无自动选择10baseT / UTP 10baseT / UTP 10baseT / UTP 10baseT / UTP 100baseTX 100baseTX 100baseTX 100baseTX 1000baseT 1000baseT 1000baseT 
fw0:标志= 8863 mtu 4078
        lladdr xx:xx:xx:xx:xx:xx
        媒体:自动选择状态:无效
        支持的媒体:自动选择 
en1:标志= 8863 mtu 1500
        inet6 xxxx%en1 prefixlen 64 scopeid 0x6
        inet 192.168.0.110网络掩码0xffffff00广播192.168.0.255
        以太xx:xx:xx:xx:xx:xx:xx
        媒体:自动选择状态:有效
        支持的媒体:自动选择

以太网电缆已拔出:

lo0:标志= 8049 mtu 16384
        inet6 :: 1前缀len 128
        inet6 xxxx :: 1%lo0 prefixlen 64 scopeid 0x1
        inet 127.0.0.1网络掩码0xff000000
gif0:标志= 8010 mtu 1280
stf0:标志= 0 mtu 1280
en0:标志= 8863 mtu 1500
        以太xx:xx:xx:xx:xx:xx:xx
        媒体:自动选择状态:无效
        支持的介质:无自动选择10baseT / UTP 10baseT / UTP 10baseT / UTP 10baseT / UTP 100baseTX 100baseTX 100baseTX 100baseTX 1000baseT 1000baseT 1000baseT 
fw0:标志= 8863 mtu 4078
        lladdr xx:xx:xx:xx:xx:xx
        媒体:自动选择状态:无效
        支持的媒体:自动选择 
en1:标志= 8863 mtu 1500
        inet6 xxxx%en1 prefixlen 64 scopeid 0x6
        inet 192.168.0.110网络掩码0xffffff00广播192.168.0.255
        以太xx:xx:xx:xx:xx:xx:xx
        媒体:自动选择状态:有效
        支持的媒体:自动选择

diff plugged unplugged 显示有线连接在可用时确实变为活动状态:

8,9d7
<   inet6 xxxx%en0 prefixlen 64 scopeid 0x4 
<   inet 192.168.0.110 netmask 0xffffff00 broadcast 192.168.0.255
11c9
<   media: autoselect (100baseTX <full-duplex,flow-control>) status: active
---
>   media: autoselect status: inactive

1
附录:通过第三方扩展“ MenuMeters”(ragingmenace.com/software/menumeters),可以看到哪个是“活动”接口,以及所有接口之间正在使用的带宽,这很清楚插入并拔下有线连接时,接口确实可以正确切换(根据需要)。
以太2010年

6

有几件事。Mac将始终按照“网络连接”配置文件中列出的顺序使用网络连接。例如,如果以太网位于无线网络之上,则以太网将接管。

我不确定SSH的工作原理,但是根据我的经验。如果一个连接失败或断开连接,则SSH将使用另一个连接。

如果您确实想查看连接是否处于活动状态,则应使用带宽监视器实用程序。iStat(http://www.islayer.com/apps/istatmenus/)是一个很好的例子。


1
我不小心读得太快了,是的...我说的是服务订单。您应该真正查看带宽监视器,以查看所有连接之间的情况。
史蒂文·卢

ssh是我用来测试网络的工具,但实际上任何TCP(持久)会话都可以。
以太2010年

0

我使用建议使以太网和WiFi的IP地址相同,按照建议设置服务顺序,仅在en0和en1上使用了Network Utility> Info。

我启动了一个TimeMachine备份,在“网络实用程序”>“信息”>“ en0以太网”下,我可以看到成千上万的数据包正在通过以太网连接传输,而“网络实用程序”>“信息”>“ en1 WiFi”却没有任何变化。

感谢您让我指出正确的方向。完成TimeMachine备份后,我将恢复为单独的IP地址,并查看Mac是否仍自动通过以太网移动所有内容。

最初的问题是“如何确定我的计算机正在使用哪个网络接口?” 网络实用程序为我工作。

Macbook Pro 17英寸2010年中,山狮

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.