Interface de rede Wi-Fi - comando Linux não funciona

2

Estou tentando o comando:

ip link set dev wlp3s0 down

para derrubar a interface 'wlp3s0' (que é o Wi-Fi no meu caso) abaixo do que funciona. Mas quando eu tento trazer a interface de volta com o comando:

ip link set dev wlp3s0 up

A interface 'wlp3s0' não volta.

Na verdade, eu tenho que usar o botão GUI para 'GNOME Network Manager' (que fica abaixo quando eu clico no ícone de controle de volume) para desligar o Wi-Fi e conectar-se a ele manualmente, o que automaticamente faz o trabalho.

Por que o comando para fazer com que a interface de rede não funcione (o que no meu caso é 'wlp3s0')?

Estou usando: 4.7.1-1-ARCH # 1 SMP PREEMPT x86_64 system. Arch Linux.

Nota:

Eu tenho procurado na Internet por esse problema e alguns posts sugeriram que isso pode ser um problema de hardware. As informações do meu chipset de driver sem fio são as seguintes:

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

1 resposta

4

Sua pergunta é porque não está funcionando. Lembre-se de que o sistema de rede OSI é composto de várias camadas: física (cabo / rádio), link (ethernet / 802.11), rede (IP), transporte (TCP) e algumas mais altas, muitas vezes mutiladas. Quando você faz.

ip link set dev wlp3s0 down

Ele traz a camada de enlace (camada de enlace OSI) para baixo. Isso significa que todas as camadas superiores também serão desativadas: o IP é esquecido, qualquer conexão TCP é interrompida.

ip link set dev wlp3s0 up

A camada de link é ativada (já que não há criptografia envolvida, consulte a nota de criptografia extra abaixo). Depois de executá-lo, você verá:

$ 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 deve estar no estado DORMANT ou UP (dependendo se houver tráfego chegando no momento em que você executar o comando). Para todos os propósitos da camada de link, ip fez o que você pediu.

Agora que você tem uma conexão de camada de link, é necessário usar um cliente DHCP para adquirir um IP de um servidor DHCP próximo (normalmente, um roteador doméstico). O Arch usa dhcpcd como o cliente DCHP.

dhcpcd wlp3s0

Irá dar-lhe um IP (e ocupar o seu terminal actual, uma vez que não está em execução no modo daemon sem o -b flag).

Nota de encriptação

A maioria das conexões sem fio não é simples, elas usam WEP ou WPA / WPA2. Nesse caso, para estabelecer uma camada de enlace, há mais trabalho do que simples:

ip link set dev wlp3s0 up

iw pode lidar com a criptografia WEP especificando uma chave a ser usada por uma determinada interface. Depois disso, ip link set será capaz de estabelecer uma conexão de camada de enlace.

O WPA (e o WPA2) requerem um processo muito mais envolvido com negociações importantes. Para WPA wpa_supplicant é usado, ele envolve ip para criar todas as mensagens necessárias com o roteador e, em seguida, define a camada de link.

Observe que nem iw ou wpa_suppicant não fornecerão um IP.

Além disso,

ip link set dev wlp3s0 down

Uma conexão da camada de enlace configurada com iw ou feita com wpa_supplicant ficará feliz, porque eliminar uma camada de enlace não envolve nenhuma função de encriptação. Apenas diz ao roteador: não estou mais falando com você, esqueça de mim.

NetworkManager

Agora, networkmanager é um wrapper ainda maior. Ele usa ip para conexões simples, wpa_supplicant para conexões criptografadas e executa dhcpcd (ou seu próprio cliente DHCP integrado se não puder encontrar dhcpcd ) automaticamente quando uma camada de link é estabelecida.

Em outras palavras, networkmanager tem muito nos bastidores.

    
por 21.08.2016 / 20:27