蚊章汇 - 网卡
type: channel
link: https://linuxcn.bwsl.wang/tag/%E7%BD%91%E5%8D%A1/
items: 硬核观察 #504 微软 Exchange 服务器出现 “2022 年错误”
items: 如何使用 ethtool 命令管理以太网卡
items: 如何在 Linux 上检查网卡信息
items: Linux 中如何启用和禁用网卡？
items: 如何在 Linux 中查看可用的网络接口
items: Caffeinated 6.828：实验 6：网络驱动程序
items: 检查 Linux 系统上的网络连接
items: 如何在Ubuntu上找出可用的网络适配器

硬核观察 #504 微软 Exchange 服务器出现 “2022 年错误”
type: item
date: 2022-01-03T03:10:28+08:00
description: 微软 Exchange 服务器出现 “2022 年错误”许多使用 Exchange 邮件系统公司在元旦期间接到了一条 错误报告： “FIP-FS 扫描引擎加载失败，无法将 2201010001 转换为长整型。”这是因为微软在 2022 年伊始发布了新的更新：2201010001 其中 220101 代表 2022 年元旦。而微软在内部使用了一个 32 位的有符号长整型来存储这个版本号，但是有符号的长整型最大值为 2,147,483,647，因此这个版本号溢出了，出现了没有预料到的 “2022 年错误”。为了解决该问题，微软发布了 新的更新 2112330001 —— 嗯这意思 2021 年 12 月 33 日吧。老王点评：之前我们刚刚说过 glibc 还没默认解决 2038 年错误，没想到微软就赶快站出来表示 2022 年也有问题。Nvidia 称其智能网卡速度已经超过了存储的世界纪录Nvidia 的智能网卡配置的 Bluefield 包括了一颗不错的 CPU ，因此它可以运行防火墙或加密引擎等工作负载，这样主板的 CPU 就可以被释放出来用于更重要的任务。在 Nvidia 的一些测试中，数据的移动速度比使用英特尔的 Optane 存储级内存的本地存储更快。Nvidia 称，该结果轻松地超过了“以前使用专有存储产品创造的 1000 万 IOPS 的世界纪录”，达到了 4150 万 IOPS，可以使 400Gb/s 的网络达到饱和。当然，他们也承认，这项测试并没有模拟真实世界的工作负载。老王点评：智能网卡技术是近年来的网络技术发展的重要发现，这个技术突破很厉害。Haiku 可以通过 Wine 运行 Windows 应用程序作为 BeOS 的继任者，Haiku 已经开发了 20 年，在将 Wine 移植到 Haiku 上运行方面正在取得 巨大进展，能够通过 Wine 运行 Windows 应用程序。老王点评：作为小众操作系统，兼容主流操作系统是非常有必要的。

如何使用 ethtool 命令管理以太网卡
type: item
date: 2020-06-07T06:34:00+08:00
description: ethtool 用于查看和修改网络设备（尤其是有线以太网设备）的驱动参数和硬件设置。你可以根据需要更改以太网卡的参数，包括自动协商、速度、双工和局域网唤醒等参数。通过对以太网卡的配置，你的计算机可以通过网络有效地进行通信。该工具提供了许多关于接驳到你的 Linux 系统的以太网设备的信息。在这篇文章中，我们将告诉你如何更改以下的参数以及如何查看这些参数。这篇文章将帮助你在 Linux 系统中排除与以太网卡相关的问题。下面的信息将帮助你了解以太网卡的工作原理。半双工：半双工模式允许设备一次只能发送或接收数据包。全双工：全双工模式允许设备可以同时发送和接收数据包。自动协商：自动协商是一种机制，允许设备自动选择最佳网速和工作模式（全双工或半双工模式）。速度：默认情况下，它会使用最大速度，你可以根据自己的需要改变它。链接检测：链接检测可以显示网卡的状态。如果显示为 no，请尝试重启网卡。如果链路检测仍显示 no，则检查交换机与系统之间连接的线缆是否有问题。如何在 Linux 上安装 ethtool默认情况下，大多数系统上应该已经安装了 ethtool。如果没有，你可以从发行版的官方版本库中安装。对于 RHEL/CentOS 6/7 系统，请使用 yum 命令 安装 ethtool：$ sudo yum install -y ethtool对于 RHEL/CentOS 8 和 Fedora 系统，请使用 dnf 命令 安装 ethtool：$ sudo dnf install -y ethtool对于基于 Debian 的系统，请使用 apt 命令 或 apt-get 命令 安装 ethtool：$ sudo apt-get install ethtool对于 openSUSE 系统，使用 zypper 命令 安装 ethtool：$ sudo zypper install -y ethtool对于 Arch Linux 系统，使用 pacman 命令 安装 ethtool：$ sudo pacman -S ethtool如何检查 Linux 上的可用网络接口你可以使用 ip 命令或 ifconfig 命令（在现代发行版中已被淘汰）来验证可用的、活动的网卡的名称和其他细节：# ip a 或 # ifconfig 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 2: eth0: mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:10:22:35:23:sf brd ff:ff:ff:ff:ff:ff inet 192.164.23.100/24 brd 192.164.23.255 scope global eth0 valid_lft forever preferred_lft forever如何检查 Linux 上的网卡（NIC）信息掌握了以太网卡名称后，就可以使用 ethtool 命令轻松查看其详细信息，如下所示。在 Linux 系统中，每个网卡（NIC）都被分配了唯一的名称，如 ethX、enpXXX 等。旧的 Linux 发行版使用的是 eth[X] 格式。例如，RHEL 6 和它们的旧版本。现代的 Linux 发行版使用 enp[XXX] 或 ens[XXX] 格式。例如，大多数现代 Linux 发行版都使用这种格式，包括 RHEL 7、Debian 10、Ubuntu 16.04 LTS。# ethtool eth0 Settings for eth0: Supported ports: [ TP ] Supported link modes: 1000baseT/Full 10000baseT/Full Supported pause frame use: No Supports auto-negotiation: No Supported FEC modes: Not reported Advertised link modes: Not reported Advertised pause frame use: No Advertised auto-negotiation: No Advertised FEC modes: Not reported Speed: 10000Mb/s Duplex: Full …

如何在 Linux 上检查网卡信息
type: item
date: 2020-04-30T05:48:47+08:00
description: 默认情况下，在设置服务器时你会配置主网络接口。这是每个人所做的构建工作的一部分。有时出于各种原因，你可能需要配置额外的网络接口。这可以是通过网络 绑定 bonding / 协作 teaming 来提供高可用性，也可以是用于应用需求或备份的单独接口。 为此，你需要知道计算机有多少接口以及它们的速度来配置它们。有许多命令可检查可用的网络接口，但是我们仅使用 ip 命令。以后，我们会另外写一篇文章来全部介绍这些工具。在本教程中，我们将向你显示可用网络网卡（NIC）信息，例如接口名称、关联的 IP 地址、MAC 地址和接口速度。什么是 ip 命令ip 命令 类似于 ifconfig, 用于分配静态 IP 地址、路由和默认网关等。# ip a 1: lo: mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether fa:16:3e:a0:7d:5a brd ff:ff:ff:ff:ff:ff inet 192.168.1.101/24 brd 192.168.1.101 scope global eth0 inet6 fe80::f816:3eff:fea0:7d5a/64 scope link valid_lft forever preferred_lft forever什么是 ethtool 命令ethtool 用于查询或控制网络驱动或硬件设置。# ethtool eth01）如何在 Linux 上使用 ip 命令检查可用的网络接口在不带任何参数的情况下运行 ip 命令时，它会提供大量信息，但是，如果仅需要可用的网络接口，请使用以下定制的 ip 命令。# ip a |awk '/state UP/{print $2}' eth0: eth1:2）如何在 Linux 上使用 ip 命令检查网络接口的 IP 地址如果只想查看 IP 地址分配给了哪个接口，请使用以下定制的 ip 命令。# ip -o a show | cut -d ' ' -f 2,7 或 ip a |grep -i inet | awk '{print $7, $2}' lo 127.0.0.1/8 192.168.1.101/24 192.168.1.102/243）如何在 Linux 上使用 ip 命令检查网卡的 MAC 地址如果只想查看网络接口名称和相应的 MAC 地址，请使用以下格式。检查特定的网络接口的 MAC 地址：# ip link show dev eth0 |awk '/link/{print $2}' 00:00:00:55:43:5c检查所有网络接口的 MAC 地址，创建该脚本：# vi /opt/scripts/mac-addresses.sh #!/bin/sh ip a |awk '/state UP/{print $2}' | sed 's/://' | while read output; do echo $output: ethtool -P $output done运行该脚本获取多个网络接口的 MAC 地址：# sh /opt/scripts/mac-addresses.sh eth0: Permanent address: 00:00:00:55:43:5c eth1: Permanent address: 00:00:00:55:43:5d4）如何在 Linux 上使用 ethtool 命令检查网络接口速度如果要在 Linux 上检查网络接口速度，请使用 ethtool 命令。检查特定网络接口的速度：# ethtool eth0 |grep "Speed:" Speed: 10000Mb/s检查所有网络接口速度，创建该脚本：# vi /opt/scripts/port-speed.sh #!/bin/sh ip a |awk '/state UP/{print $2}' | sed 's/://' | while read output; do echo $output: ethtool $output |grep "Speed:" done运行该脚本获取多个网络接口速度：# sh /opt/scripts/port-speed.sh eth0: Speed: 10000Mb/s eth1:…

Linux 中如何启用和禁用网卡？
type: item
date: 2019-05-12T19:25:47+08:00
description: 你可能会根据你的需要执行以下命令。我会在这里列举一些你会用到这些命令的例子。当你添加一个网卡或者从一个物理网卡创建出一个虚拟网卡的时候，你可能需要使用这些命令将新网卡启用起来。另外，如果你对网卡做了某些修改或者网卡本身没有启用，那么你也需要使用以下的某个命令将网卡启用起来。启用、禁用网卡有很多种方法。在这篇文章里，我们会介绍我们使用过的最好的 5 种方法。启用禁用网卡可以使用以下 5 个方法来完成：ifconfig 命令：用于配置网卡。它可以提供网卡的很多信息。ifdown/up 命令：ifdown 命令用于禁用网卡，ifup 命令用于启用网卡。ip 命令：用于管理网卡，用于替代老旧的、不推荐使用的 ifconfig 命令。它和 ifconfig 命令很相似，但是提供了很多 ifconfig 命令所不具有的强大的特性。nmcli 命令：是一个控制 NetworkManager 并报告网络状态的命令行工具。nmtui 命令：是一个与 NetworkManager 交互的、基于 curses 图形库的终端 UI 应用。以下显示的是我的 Linux 系统中可用网卡的信息。# ip a 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:c2:e4:e8 brd ff:ff:ff:ff:ff:ff inet 192.168.1.4/24 brd 192.168.1.255 scope global dynamic noprefixroute enp0s3 valid_lft 86049sec preferred_lft 86049sec inet6 fe80::3899:270f:ae38:b433/64 scope link noprefixroute valid_lft forever preferred_lft forever 3: enp0s8: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:30:5d:52 brd ff:ff:ff:ff:ff:ff inet 192.168.1.3/24 brd 192.168.1.255 scope global dynamic noprefixroute enp0s8 valid_lft 86049sec preferred_lft 86049sec inet6 fe80::32b7:8727:bdf2:2f3/64 scope link noprefixroute valid_lft forever preferred_lft forever1、如何使用 ifconfig 命令启用禁用网卡？ifconfig 命令用于配置网卡。在系统启动过程中如果需要启用网卡，调用的命令就是 ifconfig。ifconfig 可以提供很多网卡的信息。不管我们想修改网卡的什么配置，都可以使用该命令。ifconfig 的常用语法：# ifconfig [NIC_NAME] Down/Up执行以下命令禁用 enp0s3 网卡。注意，这里你需要输入你自己的网卡名字。# ifconfig enp0s3 down从以下输出结果可以看到网卡已经被禁用了。# ip a | grep -A 1 "enp0s3:" 2: enp0s3: mtu 1500 qdisc fq_codel state DOWN group default qlen 1000 link/ether 08:00:27:c2:e4:e8 brd ff:ff:ff:ff:ff:ff执行以下命令启用 enp0s3 网卡。# ifconfig enp0s3 up从以下输出结果可以看到网卡已经启用了。# ip a | grep -A 5 "enp0s3:" 2: enp0s3: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:…

如何在 Linux 中查看可用的网络接口
type: item
date: 2019-03-20T02:50:15+08:00
description: 在我们安装完一个 Linux 系统后最为常见的任务便是网络配置了。当然，你可以在安装系统时进行网络接口的配置。但是，对于某些人来说，他们更偏爱在安装完系统后再进行网络的配置或者更改现存的设置。众所周知，为了在命令行中进行网络设定的配置，我们首先必须知道系统中有多少个可用的网络接口。本次这个简单的指南将列出所有可能的方式来在 Linux 和 Unix 操作系统中找到可用的网络接口。在 Linux 中找到可用的网络接口我们可以使用下面的这些方法来找到可用的网络接口。方法 1 使用 ifconfig 命令使用 ifconfig 命令来查看网络接口仍然是最常使用的方法。我相信还有很多 Linux 用户仍然使用这个方法。$ ifconfig -a示例输出：enp5s0: flags=4098<BROADCAST,MULTICAST> mtu 1500 ether 24:b6:fd:37:8b:29 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 171420 bytes 303980988 (289.8 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 171420 bytes 303980988 (289.8 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 wlp9s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.225.37 netmask 255.255.255.0 broadcast 192.168.225.255 inet6 2409:4072:6183:c604:c218:85ff:fe50:474f prefixlen 64 scopeid 0x0<global> inet6 fe80::c218:85ff:fe50:474f prefixlen 64 scopeid 0x20 ether c0:18:85:50:47:4f txqueuelen 1000 (Ethernet) RX packets 564574 bytes 628671925 (599.5 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 299706 bytes 60535732 (57.7 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0如上面的输出所示，在我的 Linux 机器上有两个网络接口，它们分别叫做 enp5s0（主板上的有线网卡）和 wlp9s0（无线网卡）。其中的 lo 是环回网卡，被用来访问本地的网络的服务，通常它的 IP 地址为 127.0.0.1。我们也可以在许多 UNIX 变种例如 FreeBSD 中使用相同的 ifconfig 来列出可用的网卡。方法 2 使用 ip 命令在最新的 Linux 版本中， ifconfig 命令已经被弃用了。你可以使用 ip 命令来罗列出网络接口，正如下面这样：$ ip link show示例输出：1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp5s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether 24:b6:fd:37:8b:29 brd ff:ff:ff:ff:ff…

Caffeinated 6.828：实验 6：网络驱动程序
type: item
date: 2019-01-18T04:44:00+08:00
description: 简介这个实验是默认你能够自己完成的最终项目。现在你已经有了一个文件系统，一个典型的操作系统都应该有一个网络栈。在本实验中，你将继续为一个网卡去写一个驱动程序。这个网卡基于 Intel 82540EM 芯片，也就是众所周知的 E1000 芯片。预备知识使用 Git 去提交你的实验 5 的源代码（如果还没有提交的话），获取课程仓库的最新版本，然后创建一个名为 lab6 的本地分支，它跟踪我们的远程分支 origin/lab6：athena% cd ~/6.828/lab athena% add git athena% git commit -am 'my solution to lab5' nothing to commit (working directory clean) athena% git pull Already up-to-date. athena% git checkout -b lab6 origin/lab6 Branch lab6 set up to track remote branch refs/remotes/origin/lab6. Switched to a new branch "lab6" athena% git merge lab5 Merge made by recursive. fs/fs.c | 42 +++++++++++++++++++ 1 files changed, 42 insertions(+), 0 deletions(-) athena%然后，仅有网卡驱动程序并不能够让你的操作系统接入互联网。在新的实验 6 的代码中，我们为你提供了网络栈和一个网络服务器。与以前的实验一样，使用 git 去拉取这个实验的代码，合并到你自己的代码中，并去浏览新的 net/ 目录中的内容，以及在 kern/ 中的新文件。除了写这个驱动程序以外，你还需要去创建一个访问你的驱动程序的系统调用。你将要去实现那些在网络服务器中缺失的代码，以便于在网络栈和你的驱动程序之间传输包。你还需要通过完成一个 web 服务器来将所有的东西连接到一起。你的新 web 服务器还需要你的文件系统来提供所需要的文件。大部分的内核设备驱动程序代码都需要你自己去从头开始编写。本实验提供的指导比起前面的实验要少一些：没有框架文件、没有现成的系统调用接口、并且很多设计都由你自己决定。因此，我们建议你在开始任何单独练习之前，阅读全部的编写任务。许多学生都反应这个实验比前面的实验都难，因此请根据你的实际情况计划你的时间。实验要求与以前一样，你需要做实验中全部的常规练习和至少一个挑战问题。在实验中写出你的详细答案，并将挑战问题的方案描述写入到 answers-lab6.txt 文件中。QEMU 的虚拟网络我们将使用 QEMU 的用户模式网络栈，因为它不需要以管理员权限运行。QEMU 的文档的这里有更多关于用户网络的内容。我们更新后的 makefile 启用了 QEMU 的用户模式网络栈和虚拟的 E1000 网卡。缺省情况下，QEMU 提供一个运行在 IP 地址 10.2.2.2 上的虚拟路由器，它给 JOS 分配的 IP 地址是 10.0.2.15。为了简单起见，我们在 net/ns.h 中将这些缺省值硬编码到网络服务器上。虽然 QEMU 的虚拟网络允许 JOS 随意连接互联网，但 JOS 的 10.0.2.15 的地址并不能在 QEMU 中的虚拟网络之外使用（也就是说，QEMU 还得做一个 NAT），因此我们并不能直接连接到 JOS 上运行的服务器，即便是从运行 QEMU 的主机上连接也不行。为解决这个问题，我们配置 QEMU 在主机的某些端口上运行一个服务器，这个服务器简单地连接到 JOS 中的一些端口上，并在你的真实主机和虚拟网络之间传递数据。你将在端口 7（echo）和端口 80（http）上运行 JOS，为避免在共享的 Athena 机器上发生冲突，makefile 将为这些端口基于你的用户 ID 来生成转发端口。你可以运行 make which-ports 去找出是哪个 QEMU 端口转发到你的开发主机上。为方便起见，makefile 也提供 make nc-7 和 make nc-80，它允许你在终端上直接与运行这些端口的服务器去交互。（这些目标仅能连接到一个运行中的 QEMU 实例上；你必须分别去启动它自己的 QEMU）包检查makefile 也可以配置 QEMU 的网络栈去记录所有的入站和出站数据包，并将它保存到你的实验目录中的 qemu.pcap 文件中。使用 tcpdump 命令去获取一个捕获的 hex/ASCII 包转储：tcpdump -XXnr qemu.pcap或者，你可以使用 Wireshark 以图形…

检查 Linux 系统上的网络连接
type: item
date: 2017-12-02T04:15:17+08:00
description: Linux 系统提供了许多有用的命令来检查网络配置和连接。下面来看几个，包括 ifquery、ifup、ifdown 和 ifconfig。Linux 上有许多可用于查看网络设置和连接的命令。在今天的文章中，我们将会通过一些非常方便的命令来看看它们是如何工作的。ifquery 命令一个非常有用的命令是 ifquery。这个命令应该会显示一个网络接口列表。但是，你可能只会看到类似这样的内容 - 仅显示回环接口：$ ifquery --list lo 如果是这种情况，那说明你的 /etc/network/interfaces 不包括除了回环接口之外的网络接口信息。在下面的例子中，假设你使用 DHCP 来分配地址，且如果你希望它更有用的话，你可以添加例子最后的两行。# interfaces(5) file used by ifup(8) and ifdown(8) auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp ifup 和 ifdown 命令可以使用相关的 ifup 和 ifdown 命令来打开网络连接并根据需要将其关闭，只要该文件具有所需的描述性数据即可。请记住，“if” 在这里意思是 接口 interface ，这与 ifconfig 命令中的一样，而不是 如果我只有一个大脑 if I only had a brain 中的 “if”。ifconfig 命令另外，ifconfig 命令完全不读取 /etc/network/interfaces，但是仍然提供了网络接口相当多的有用信息 —— 配置数据以及可以告诉你每个接口有多忙的数据包计数。ifconfig 命令也可用于关闭和重新启动网络接口（例如：ifconfig eth0 down）。$ ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:1e:4f:c8:43:fc inet addr:192.168.0.6 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::b44b:bdb6:2527:6ae9/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:60474 errors:0 dropped:0 overruns:0 frame:0 TX packets:33463 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:43922053 (43.9 MB) TX bytes:4000460 (4.0 MB) Interrupt:21 Memory:fe9e0000-fea00000 输出中的 RX 和 TX 数据包计数很低。此外，没有报告错误或数据包冲突。或许可以用 uptime 命令确认此系统最近才重新启动。上面显示的广播 （Bcast） 和网络掩码 （Mask） 地址表明系统运行在 C 类等效网络（默认）上，所以本地地址范围从 192.168.0.1 到 192.168.0.254。netstat 命令netstat 命令提供有关路由和网络连接的信息。netstat -rn 命令显示系统的路由表。192.168.0.1 是本地网关 （Flags=UG)。$ netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 上面输出中的 169.254.0.0 条目仅在你正在使用或计划使用本地链路通信时才有必要。如果不是这样的话，你可以在 /etc/network/if-up.d/avahi-autoipd 中注释掉相关的行：$ tail -12 /etc/network/if-up.d/avahi-autoipd #if [ -x /bin/ip ]; then # # route already present? # ip route show | grep -q '^169.254.0.0/16[[:space:]]' && exit 0 # # /bin/ip route add 169.254.0.0/1…

如何在Ubuntu上找出可用的网络适配器
type: item
date: 2015-01-25T05:57:00+08:00
description: 想知道在Linux中你正在使用的网卡是什么吗？ 在Linux中很容易就找出网卡的生产商。打开一个终端并输入下面的额命令：sudo lshw -C network 如果上面的命令不能在sudo下使用，那就别用 sudo 的特权模式。它的输出看上去有点奇怪但是很有用。*-network description: Wireless interface product: BCM4360 802.11ac Wireless Network Adapter vendor: Broadcom Corporation physical id: 0 bus info: pci@0000:03:00.0 logical name: wlan0 version: 03 serial: 9c:f3:87:c1:5d:6a width: 64 bits clock: 33MHz capabilities: busmaster caplist ethernet physical wireless configuration: broadcast=yes driver=wl0 driverversion=6.30.223.248 (r487574) ip=192.168.1.23 latency=0 multicast=yes wireless=IEEE 802.11abg resources: irq:18 memory:b0600000-b0607fff memory:b0400000-b05fffff如你所见，我Macbook Air上的无线网卡是BCM4360，这是一款在Ubuntu下面很容易出现无法检测无线网络问题的网卡。lshw 命令实际上是用来列出硬件的，因此命令的名字是lshw。带上网络的选项后，就会只过滤出网络硬件了。了解网卡的其他方法另外你还可以使用lspci命令来显示PCI总线上的信息。你应该使用普通用户来运行这个命令。只需要在命令行下输入：lspci 命令的输出看上去想这样：00:00.0 Host bridge: Intel Corporation Haswell-ULT DRAM Controller (rev 09) 00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 09) 00:03.0 Audio device: Intel Corporation Haswell-ULT HD Audio Controller (rev 09) 00:14.0 USB controller: Intel Corporation 8 Series USB xHCI HC (rev 04) 00:16.0 Communication controller: Intel Corporation 8 Series HECI #0 (rev 04) 00:1b.0 Audio device: Intel Corporation 8 Series HD Audio Controller (rev 04) 00:1c.0 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 1 (rev e4) 00:1c.1 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 2 (rev e4) 00:1c.2 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 3 (rev e4) 00:1c.4 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 5 (rev e4) 00:1c.5 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 6 (rev e4) 00:1f.0 ISA bridge: Intel Corporation 8 Series LPC Controller (rev 04) 00:1f.3 SMBus: Intel Corporation 8 Series SMBus Controller (rev 04) 02:00.0 Multimedia controller: Broadcom Corporation Device 1570 03:00.0 Network controller: Broadcom Corporation BCM4360 8…