Wi-Fi 网络接口 - Linux 命令不起作用

Wi-Fi 网络接口 - Linux 命令不起作用

我正在尝试命令:

ip link set dev wlp3s0 down

关闭接口“wlp3s0”(在我的例子中是Wi-Fi),它可以工作。但是当我尝试使用以下命令恢复界面时:

ip link set dev wlp3s0 up

接口“wlp3s0”未恢复。

事实上,我必须使用“GNOME 网络管理器”的 GUI 按钮(当我单击音量控制图标时位于下方)来关闭 Wi-Fi,然后再次手动连接到它,这会自动完成这项工作。

为什么恢复网络接口的命令不起作用(在我的例子中恰好是“wlp3s0”)?

我正在使用:4.7.1-1-ARCH #1 SMP PREEMPT x86_64 系统。拱门Linux。

笔记:

我一直在互联网上搜索这个问题,一些帖子表明这可能是硬件问题。我的无线驱动芯片组信息如下:

$ lspci | grep -i wireless
03:00.0 Network controller: Qualcomm Atheros QCA9565 / AR9565 Wireless Network Adapter (rev 01)

答案1

你的问题是为什么它无法正常工作。请记住,OSI 网络系统由多个层组成:物理层(电缆/无线电)、链路层(以太网/802.11)、网络层(IP)、传输层(TCP)以及一些经常混杂在一起的更高层。当您这样做时。

ip link set dev wlp3s0 down

它确实会降低链路层(OSI 链路层)的性能。这意味着所有更高层也将被关闭:IP 被遗忘,所有 TCP 连接都被破坏。

ip link set dev wlp3s0 up

确实会启动链路层(假定不涉及加密,请参阅下面的额外加密说明)。运行后你应该看到:

$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether 00:22:43:1b:ae:46 brd ff:ff:ff:ff:ff:ff

wlp3s0应该处于状态DORMANTUP(取决于运行命令时是否有流量通过)。对于所有链路层目的,它都已启动,按照ip您的要求进行操作。

现在您已经有了链路层连接,您需要使用 DHCP 客户端从附近的 DHCP 服务器(通常是家庭路由器)获取 IP。 Arch用作dhcpcdDCHP客户端。

dhcpcd wlp3s0

将为您提供一个 IP(并占用您当前的终端,因为它不是在没有该-b标志的守护程序模式下运行)。


加密说明

大多数无线连接都不是普通的,它们使用 WEP 或 WPA/WPA2。在这种情况下,要建立链路层,需要做的工作比普通层要多:

ip link set dev wlp3s0 up

iw可以通过指定某个接口使用的密钥来处理WEP加密。之后ip link set就可以建立链路层连接了。

WPA(和 WPA2)需要更加复杂的密钥协商过程。对于使用 WPAwpa_supplicant的情况,它会环绕ip以与路由器构建所有必要的消息,然后设置链路层。

请注意,两者iwwpa_suppicant不会为您提供 IP。

还,

ip link set dev wlp3s0 down

iw会很高兴地删除用 配置或创建的链路层连接wpa_supplicant,这是因为删除链路层不涉及任何加密功能。它只是告诉路由器:我不再和你说话了,忘了我吧。


网络管理器

现在,networkmanager是一个更高的包装器。它用于ip普通连接、wpa_supplicant加密连接,并在建立链路层时自动运行dhcpcd(如果找不到,则运行其自己的内置 DHCP 客户端)。dhcpcd

换句话说networkmanager就是很多在幕后。

相关内容