列出网络硬件 - 为什么 Ubuntu 有时会隐藏 eth0 直到它连接上?

列出网络硬件 - 为什么 Ubuntu 有时会隐藏 eth0 直到它连接上?

我的笔记本电脑上装有 Ubuntu 14.04。这台笔记本电脑既有用于有线以太网的 RJ45 连接器,也有用于无线/WiFi 的连接器。然而,我注意到,在这台笔记本电脑上,重启后,我只看到以下内容:

$ ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:608 errors:0 dropped:0 overruns:0 frame:0
          TX packets:608 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:76086 (76.0 KB)  TX bytes:76086 (76.0 KB)

wlan0     Link encap:Ethernet  HWaddr XX:71:XX:XX:b1:XX  
          inet addr:YY.0.XX.XX  Bcast:YY.0.XX.XX  Mask:255.255.0.0
          inet6 addr: fe80::XXXX:XXXX:fe3f:b1db/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2589 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2044 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1458453 (1.4 MB)  TX bytes:292837 (292.8 KB)

事实上,如果我从网络管理器小程序中关闭无线/取消选中“启用 Wi-Fi”,我只会得到这些:

$ ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:1794 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1794 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:178068 (178.0 KB)  TX bytes:178068 (178.0 KB)

ifconfig从上面的转储中可以看出,eth0根本没有列出与有线以太网相对应的网络!事实上,直到我将笔记本电脑连接到路由器/交换机,笔记本电脑获得 IP 地址后,它才会出现!?事实上,虽然 RJ45 连接器上没有连接任何东西,但笔记本电脑会通过以下方式报告此信息lshw

$ sudo lshw -c network
  *-network               
       description: Wireless interface
       product: AR9485 Wireless Network Adapter
       vendor: Qualcomm Atheros
       physical id: 0
       bus info: pci@0000:01:00.0
       logical name: wlan0
       version: 01
       serial: XX:71:XX:XX:b1:XX
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list rom ethernet physical wireless
       configuration: broadcast=yes driver=ath9k driverversion=4.2.0-42-generic firmware=N/A ip=YY.0.XX.XX latency=0 link=yes multicast=yes wireless=IEEE 802.11bgn
       resources: irq:16 memory:f7c00000-f7c7ffff memory:f7c80000-f7c8ffff

请注意,有线/eth0适配器没有在任何地方列出?!

否则,当我通过网线将笔记本电脑的 RJ45 连接器连接到路由器或互联网电缆时,我会得到ifconfig如下条目:

eth0      Link encap:Ethernet  HWaddr XX:XX:2b:XX:XX:XX
          inet6 addr: fe80::YYYY:YYYY:fe0a:YYYY/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6 errors:0 dropped:0 overruns:0 frame:0
          TX packets:61 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1980 (1.9 KB)  TX bytes:12108 (12.1 KB)

事实上,在上面的代码片段中,它eth0甚至没有分配 IP4 地址;所以显然重要的是它以某种方式连接到以太网网络。

请注意,这台笔记本电脑上/etc/network/interfaces仅包含:

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

...但是,我添加了auto eth0最后一行,保存并重新启动 - 并且行为没有任何变化(即eth0仍然隐藏,直到连接)。

现在,另一方面,我将一台台式机作为 Ubuntu 服务器(也是 14.04)进行管理,并且我总是看到它eth0出现ifconfig- 即使我已经从台式机的 RJ45 连接器上拔出了网线?!

我的问题是:

  • 为什么 Ubuntu 有时会“隐藏” eth0(或其他网络接口)直到它们连接 - 以及为什么它不一致(即在桌面上它总是显示,在笔记本电脑上它直到连接才显示)?
  • 在像这样“隐藏”网络接口的 Ubuntu 上,我如何列出所有网络硬件 - 如上所示,在这种情况下甚至不起作用sudo lshw

答案1

ifconfig默认情况下仅显示处于 Up 状态的接口。要查看所有接口(包括处于 down 状态的接口):

ifconfig -a

请注意,在 GNU/Linux 中,不推荐ifconfig使用 (附带net-tools),而推荐使用较新的ip(附带iptoute2)。ip您可以使用它执行以下操作:

ip addr show

速记:

ip a

检查man ip以获得更多想法。

相关内容