Como configuro um endereço de rede / WiFi / endereço IP estático?

216

Eu segui o tutorial (qualquer uma das centenas) e ele não funciona.

Como configuro um endereço IP de rede / WiFi / estático no Raspberry Pi?


(Esta é uma Dorothy Dixer que, espero, capte centenas de perguntas semelhantes.)

Milliways
fonte

Respostas:

252

Este tutorial descreve como configurar a rede usando o gerenciador de rede padrão dhcpcd incluído no Raspbian desde 05-05-2015.
Aplica-se aos lançamentos da Fundação Raspbian Buster , Raspbian Stretch , Raspbian Jessie e o último Raspbian Wheezy .
As configurações do Buster são idênticas ao Stretch.

Como configurar o Raspbian Networking

Se você estiver usando uma conexão Ethernet com um roteador, não deve haver nenhuma configuração necessária e deve funcionar imediatamente.


OBSERVAÇÃO O WiFi embutido Pi3 / Pi Zero W não suporta redes de 5GHz e não pode se conectar ao Ch 12,13 em redes de 2,4GHz até que o domínio regulador sem fio esteja definido.

O Wi - Fi em dispositivos habilitados para 5GHz é desativado até que o domínio regulador sem fio seja definido (Pi4B, Pi3B +, Pi3A +)

  • O domínio pode ser definido por meio de Raspberry Pi Configuration(rc_gui) raspi-configou definindo country=um código de país ISO 3166 alfa2 apropriado em /etc/wpa_supplicant/wpa_supplicant.conf.

Se você estiver usando WiFi e a GUI configurada, seguindo as Diretrizes da Fundação

Se você estiver usando o WiFi na Linha de Comando configurada, seguindo as Diretrizes da Fundação. Essa é a única maneira de configurar uma rede que não transmite SSID.

Isso também pode ser usado para configurar um sistema 'Sem Cabeça', por exemplo, usando um cabo serial do console, mas é muito mais fácil se você puder emprestar um monitor e teclado para configuração. Veja abaixo outro método possível usando um cabo Ethernet para um PC.

Configuração de WiFi Raspbian sem cabeça

Raspbian , desde maio de 2016, verifica o conteúdo do diretório de inicialização em busca de um arquivo chamado wpa_supplicant.confe o copia /etc/wpa_supplicant, substituindo qualquer wpa_supplicant.confarquivo existente que possa estar lá. O arquivo no diretório de inicialização é removido. Isso pode ser usado para ativar a configuração sem cabeça, usando as wpa_supplicant.confconfigurações detalhadas abaixo. (Você provavelmente também desejará ativar ssh.)

Qual é o meu endereço IP?

Se você apenas deseja saber o IP Addressseu Pi está usando, digite hostname -Ina linha de comando.

SSH

Desde a versão de novembro de 2016, o Raspbian tem o servidor SSH desativado por padrão. Você precisará habilitá- lo manualmente.

Entre sudo raspi-configno terminal, primeiro selecione e advanced options, em seguida, navegue até ssh, pressione Entere selecione Ativar ou desativar o servidor ssh.

Para configuração sem cabeça, o SSH pode ser ativado colocando um arquivo chamado 'ssh', sem nenhuma extensão, na partição de inicialização do cartão SD.

Arquivos de Rede

Se você estiver executando um Raspbian recente, /etc/network/interfacesdeve ser o seguinte. Se você o alterou, coloque-o de volta. (Ou Stretchapenas exclua-o - ele efetivamente não faz NADA.)

# interfaces (5) arquivo usado por ifup (8) e ifdown (8)

# Observe que este arquivo foi escrito para ser usado com o dhcpcd
# Para IP estático, consulte /etc/dhcpcd.conf e 'man dhcpcd.conf'

# Inclua arquivos de /etc/network/interfaces.d:
diretório-fonte /etc/network/interfaces.d

O arquivo /etc/wpa_supplicant/wpa_supplicant.confserá criado / modificado pelos métodos de configuração recomendados, mas pode ser configurado manualmente. O Raspbian recente tem uma opção raspi-configpara inserir SSID e Senha. Deve conter algo como o seguinte: -

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=AU

network={
    ssid="ESSID"
    psk="Your_wifi_password"
}

Se você precisar se conectar a uma rede privada (ou seja, sem transmissão SSID), inclua a linha scan_ssid=1interna network={⋯}.

NOTA Se você deseja se conectar a redes diferentes (por exemplo, no trabalho ou em casa), pode incluir várias network={⋯}entradas.

Se você tem acesso a várias redes e deseja se conectar a uma rede específica, inclua a linha priority=100dentro da network={⋯}entrada.
Você pode selecionar uma prioridade diferente para cada rede, a rede acessível de maior prioridade será selecionada; o padrão é 0.

Existem muitas outras opções que podem ser usadas, veja man wpa_supplicant.conf.

Notas sobre sistemas operacionais obsoletos

Jessie não inclui o 10-wpa_supplicantgancho para gerenciar interfaces WiFi, portanto, são necessários links para o wpa_supplicant. Essas configurações são incompatíveis com os nomes de interface de rede previsíveis.

O /etc/network/interfacesusado por Jessie deve ser: -

# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan0
iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1
iface wlan1 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

OBSERVAÇÃO ao chamar dhcp in /etc/network/interfacesserá desativado dhcpcd .

Nomes de interface de rede previsíveis

Stretchintroduziu 1 nomes de interface de rede previsíveis que foram usados ​​em outras distribuições por algum tempo.

As interfaces de rede terão nomes formados a partir de um prefixo en- Ethernet ou wl- wlan seguido de xindicação MACe, MACpor exemplo, enxb827eb123456ou wlx00c140123456. No entanto, o Wi-Fi integrado do Pi4, Pi3 e PIZeroW conectado acima sdiousará o nomewlan0

Isso pode ser benéfico para quem usa várias interfaces de rede, no entanto, para a maioria dos usuários de Pi, uma única interface Ethernet e WiFi fará pouca diferença. Os nomes anteriores eth0e wlan0podem ser restaurados se você passar net.ifnames=0a linha de comando do kernel /boot/cmdline.txt.

Existe uma opção raspi-configpara ativar nomes previsíveis da interface de rede.

1. Por alguma razão incompreensível, a Fundação decidiu "Desativar nomes de interface de rede previsíveis para dispositivos Ethernet" apenas 3 semanas após a introdução do recurso tão esperado. Há uma opção em Advanced Optionsde raspi-configpara alternar essa configuração.


Configurar um endereço IP estático

Consulte a resposta em separado Endereço IP estático


dhcpcdConfiguração avançada

Raspbian, por padrão, usa dhcpcdpara gerenciar interfaces de rede. Isso é automático e a maioria dos usuários não precisa fazer mais do que especificar o SSID e a senha para redes sem fio.

É possível configurar como dhcpcdfunciona inserindo opções /etc/dhcpcd.conf; veja man dhcpcd.conf.Há um bom artigo sobre dhcpcda https://wiki.archlinux.org/index.php/dhcpcd

A seguir, descrevemos algumas das configurações mais comuns: -

Perfil de fallback

É possível configurar um perfil estático dentro dhcpcde retornar a ele quando a concessão do DHCP falhar. Isso é útil principalmente para máquinas sem cabeça, nas quais o perfil estático pode ser usado como perfil de "recuperação" para garantir que seja sempre possível conectar-se à máquina. O perfil estático é configurado como qualquer outro endereço IP estático

    # define perfil estático
    perfil static_eth0
    endereço_ip estático = ⋯
    roteadores estáticos = ⋯
    static domain_name_servers = ⋯

    # fallback para o perfil estático no eth0
    interface eth0
    fallback static_eth0

Impedir a dhcpcdconfiguração de uma interface

Isso geralmente é feito para permitir que o Pi atue como um ponto de acesso (que precisa ser configurado usando outros arquivos), enquanto permite a DHCPconfiguração normal em outras interfaces.

Adicione denyinterfaces wlan0ao final do arquivo (mas acima de qualquer outra linha de interface adicionada).

Impedir a dhcpcdconfiguração de um gateway em uma interface

Se você deseja que uma interface não instale nenhuma rota padrão (geralmente usada em conjunto com um endereço IP estático), especifique

    nogateway

Configuração específica do host

dhcpcdpode configurar interfaces dependentes da rede host. Isso usa o ARP (Address Resolution Protocol) para analisar hosts com base no endereço MAC ou IP antes de tentar a resolução DHCP.

    interface bge0
    arping 192.168.0.1

    # Minha rede 192.168.0.1 específica
    perfil dd: ee: aa: dd: bb: ee
    static ip_address = 192.168.0.10 / 24

    # Uma rede 192.168.0.1 genérica
    profile 192.168.0.1
    endereço_ip estático = 192.168.0.98 / 24

Você pode acelerar o DHCP desativando a detecção do ARP se não estiver usando esses recursos e tiver uma rede simples.

    noarp

Use arquivos wpa_supplicant diferentes

É possível configurar o dhcpcd para usar arquivos wpa_supplicant.conf diferentes para uma interface sem fio específica.

Crie um arquivo nomeado wpa_supplicant-"$interface".confem, /etc/wpa_supplicant/por exemplo, wpa_supplicant-wlan0.confserá usado apenas porwlan0

/etc/wpa_supplicant/wpa_supplicant.conf será usado para quaisquer outras interfaces sem fio.


Conectando um computador ao Pi

Versões recentes do Raspbian (que usam dhcpcd) permitem sshtrabalhar sobre um link-localendereço e avahi(que é uma implementação do zeroconf) permitem que os programas descubram hosts executando em uma rede local.

Isso significa que você pode conectar o Pi a um computador (com um cabo Ethernet) ou a um roteador de rede local e conectar-se sem saber o endereço IP.

Você pode conectar-se facilmente do Linux e OS X com ssh [email protected](o nome do host padrão é raspberrypi). Isso deve funcionar com os sshprogramas GUI populares . Às vezes, isso é problemático com algumas versões do Windows e redes que usam .local de maneira não padrão. (Veja https://en.wikipedia.org/wiki/.local )

NOTA A .localresolução nem sempre funciona, por exemplo, em rsync. O seguinte deve resolver o IP (e pode ser incluído nos bashscripts)
RemotePi=$(getent hosts hostname.local | awk '{ print $1 }')

Se o seu sistema não precisar getentconsultar, hostspor exemplo, o macOS, você poderá usar o seguinte: -
RemotePi=$(arp -n hostname.local | awk '{x = $2; gsub(/[()]/, "", x); print x }')

Se você tiver vários Pi, precisará garantir que cada Pi tenha um nome de host exclusivo.

Você pode usar um cabo cruzado, mas não precisa de um (a maioria das interfaces modernas detecta automaticamente).

Uma desvantagem da conexão direta é que o Pi não terá acesso à Internet e a data não será definida. Você pode copiar a data do host executando ssh [email protected] sudo date -s$(date -Ins)antes da conexão.

Escopo:

Este tutorial é sobre como configurar uma instalação Raspbian normal para acessar a Internet usando o software incluído. Ele também cobre conexões com outros computadores na mesma rede.

Destina-se principalmente a ajudar novos usuários que lutam para que o Pi (especialmente o WiFi) funcione.

NÃO cobre: ​​-

  • Outros gerentes de rede.
  • Executando redes avançadas no Pi (por exemplo DHCP, servidores, encapsulamento, VPN, ponto de acesso).
  • Uso de ipv6(embora se você tiver uma ipv6rede, isso funcione).
  • Configurações de rede alternativas. (Existem muitas maneiras diferentes de configurar a rede.)
Milliways
fonte
2
Fiquei confuso com o "isso NÃO é algo que você digitaria no arquivo". Se não me engano, o que Milliways significa aqui é que você não substituiria o arquivo inteiro por esse trecho de texto. No entanto, é perfeitamente bom adicionar esse bit no final (modificando os parâmetros ao seu gosto, é claro). Além disso, as linhas routerse domain_name_serverssão opcionais se você não deseja configurar o roteamento por essa interface.
Mark
4
Então, agora, para configurar seu endereço IP, você precisa ter o cliente DHCP instalado e usar sua configuração para definir um IP estático ?! Não funciona se eu quiser um servidor DHCP no meu Raspbian! O cliente DHCP é executado após o lançamento do servidor DHCP, portanto o IP ainda não está definido, fazendo com que o servidor DHCP (isc-dhcpd) se queixe.
Luc Stepniewski
16
Onde isso está oficialmente documentado?
Alastair McCormack
6
Onde isso está documentado? Quero dizer, WTF. Eu segui essas instruções, assim como muitas outras, e não consigo me conectar. Consigo ver e digitalizar redes de bom grado, mas elas nunca serão conectadas ou associadas. Estou tão irritada com isso.
precisa saber é o seguinte
4
@MikeD. Veja raspberrypi.org/blog/…
Milliways
64

Configurar um endereço IP estático

As perguntas sobre a configuração do endereço IP estático estão entre as mais comuns neste site. Existem muitos tutoriais (muitos errados, obsoletos ou incompletos).

aviso Legal

Antes de prosseguir, sinto-me obrigado a afirmar que não é recomendável configurar um endereço estático. Engenheiros de telecomunicações não fazem isso. Os endereços IP estáticos podem ser o destino da vida de um administrador de rede. Há situações em que os endereços IP estáticos são necessários, por exemplo, se você estiver executando um servidor DHCP ou em uma rede isolada sem servidor DHCP.

Se você estiver determinado a prosseguir de qualquer maneira, certifique-se de acertar. Adaptado do Tutorial da Network Foundation

Encontre as configurações da sua rede local

Isso é feito com mais facilidade com o próprio Pi, usando DHCP, mas pode ser feito em qualquer computador da sua rede, embora os comandos possam diferir em outros sistemas.

Corre

ip -4 addr show | grep global

que deve gerar uma saída como:

inet 10.1.1.30/24 brd 10.1.1.255 scope global eth0
inet 10.1.1.31/24 brd 10.1.1.255 scope global wlan0

O primeiro endereço é o endereço IP do seu Pi na rede e a parte após a barra é o tamanho da rede. É altamente provável que o seu seja um / 24.

O segundo endereço é o endereço brd (broadcast) da rede.

Encontre o endereço do seu roteador (ou gateway)

ip route | grep default | awk '{print $3}'

10.1.1.1

Por fim, anote o endereço do seu servidor DNS, que geralmente é o mesmo do seu gateway.

cat /etc/resolv.conf

# Generated by resolvconf
nameserver 10.1.1.1

Siga um dos seguintes métodos. (Existem outros métodos não documentados aqui. Estas são as mais comuns em Raspbian.) ( Em qualquer método de substituir o nome da interface de rede adequada para eth0, wlan0ou nomes de interface de rede previsíveis . )

Se você deseja encontrar os nomes da interface, mesmo que não estejam conectados, execute o seguinte comando ls /sys/class/net/

Nos dois métodos, você deve escolher endereços IP que não estejam em uso; idealmente fora do intervalo usado pelo seu servidor DHCP, dentro da mesma sub-rede.

método dhcpcd

Deixe /etc/network/interfacescomo padrão (como acima).

Edite da /etc/dhcpcd.confseguinte forma: -

 Here is an example which configures a static address, routes and dns.
       interface eth0
       static ip_address=10.1.1.30/24
       static routers=10.1.1.1
       static domain_name_servers=10.1.1.1

       interface wlan0
       static ip_address=10.1.1.31/24
       static routers=10.1.1.1
       static domain_name_servers=10.1.1.1

ip_addressé o endereço e o tamanho do comando acima (ou outro endereço não utilizado na mesma rede), routersé o endereço do seu roteador (ou gateway). domain_name_serversé o endereço DNS de /etc/resolv.conf. (ver man dhcpcd.conf)

Há um bom artigo sobre dhcpcda https://wiki.archlinux.org/index.php/dhcpcd A Fallback profileé uma alternativa ao IP estático


Método de interfaces de rede

OBSERVAÇÃO Esse método NÃO é recomendado (e funciona apenas se você desabilitar o daemon do cliente DHCP), principalmente se você planeja usar as duas interfaces.

Configure um endereço de rede estático no seu Pi no /etc/network/interfaces

auto eth0
iface eth0 inet static
        address 10.1.1.30
        netmask 255.255.255.0
        gateway 10.1.1.1

allow-hotplug wlan0
iface wlan0 inet static
        address 10.1.1.31
        netmask 255.255.255.0
        gateway 10.1.1.1
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

addressé o endereço do comando acima (ou outro endereço não utilizado na mesma rede), netmask255.255.255.0 corresponde ao tamanho da rede /24. gatewayé o endereço do seu roteador (ou gateway).

Você também pode especificar dns-nameservers, mas isso geralmente não é necessário. O broadcasté derivado automaticamente de addresse netmasknão precisa ser especificado. Para mais detalhes, consulte https://wiki.debian.org/NetworkConfiguration

Você pode definir um ou ambos eth0, wlan0ou um dos nomes previsíveis da interface de rede

Em seguida, desative o daemon do cliente DHCP e mude para a rede Debian padrão :

sudo systemctl disable dhcpcd
sudo systemctl enable networking

Reinicialize para que as alterações entrem em vigor:

sudo reboot
Milliways
fonte
1
Quais são os prós e os contras desses dois métodos mencionados?
Elliott B
@ ElliottB leia o aviso acima.
Milliways
1
Eu li isso, só estou me perguntando sobre os dois métodos dhcpcd vs networking. Quero ver se um IP estático permite inicializar mais rápido, porque vejo um atraso de 15s para o dhcpcd in systemd-analyze.
Elliott B
Também não uso - isso ocorre apenas porque muitas pessoas tentam (por qualquer motivo - o que me escapa), MAS entendem errado, porque não entendem a rede. Não existe uma resposta simples porque depende do que mais você está fazendo. NOTA: é improvável que a configuração de um IP estático tenha QUALQUER impacto no tempo de inicialização, a menos que você tenha um servidor DHCP muito lento. Se você tiver dúvidas, faça uma pergunta - este não é um fórum de discussão.
Milliways
Eu adicionei static domain_search=example.localao método dhcpcd.conf. Sinta-se livre para reverter / editar / entrar em contato comigo.
MadMike
35

Para um endereço IP estático em uma conexão Ethernet:

  1. sudo nano /etc/dhcpcd.conf
  2. Digite as seguintes linhas na parte superior do arquivo:

    interface eth0
    static ip_address=192.168.1.XX/24
    static routers=192.168.1.1
    static domain_name_servers=192.168.1.1
    
  3. sudo reboot

Isso precisa ser feito para a atualização Jessie recente. /etc/network/interfacesdeve ser deixado sozinho . Abra o navegador e digite o endereço do roteador (192.168.1.1 para a maioria) e verifique sua rede doméstica para garantir que o Raspberry Pi seja exibido como 'Estático'.

Danica Panica
fonte
5
Se você deseja copiar partes da resposta, pelo menos, deve acertar.
Milliways
2
Provavelmente funcionou no seu caso, mas não em geral porque dhcpcdinferiu a máscara de rede, o que não pode para outros intervalos de endereços. Leia as manpáginas.
Milliways
1
Você afirma que / etc / network / interfaces deve ser deixado sozinho, mas não diz o porquê. De fato, o oposto é verdadeiro. Veja minha resposta abaixo.
JayEye
2
Se você deseja reiniciar os serviços de rede sem reiniciar, verifique se você tem a linha auto eth0acima iface eth0 inet manualno seu /etc/network/interfacearquivo. Reinicie a rede via sudo service networking restartcomando
Barmaley 2/16
3
Pode ser uma resposta copiada, mas tem tudo o que você precisa para configurar um IP estático no raspberry, a resposta aceita é desnecessariamente longa.
Pedro Lobito
11

Método curto e infalível de como fazer isso com:

Raspbian Jessie & Stretch

Isso definirá um IP fixo e habilitará o daemon ssh:

  • Abra /boot/cmdline.txte adicione ip=192.168.1.20ao final da linha.
  • Crie um arquivo vazio /boot/ssh
  • Inicialize seu Raspberry Pi
  • No Linux start, ssh [email protected]a senha é raspberry. Use o Putty no Windows para conectar-se via ssh.

Estou usando isso para acessar minha Raspbian Jessie e Stretch, que é inicializada sem um monitor conectado, apenas com energia e ethernet. Depois de acessá-lo com um shell ssh, posso continuar minha configuração.

Após esse tratamento, o Raspberry PI tinha dois IPs: um do IP fixo especificado e outro do dhcp-client em execução no Raspberry Pi.

ifconfigmostrará o IP fixo. Enquanto a seta azul-Ícone no canto superior direito mostra o dhcpd-IP.

MadMike
fonte
1
NÃO sugerir desativar o IPv6. Não há necessidade disso.
Anders
Por que eu precisaria de 2 IPs?
@ SiXandSeven8ths Não há necessidade de 2 IPs. Eu observei o comportamento e estou descrevendo aqui para minimizar surpresas. Eu melhoraria minha resposta, mas não tinha tempo para fazer isso.
MadMike
@ MadMike Eu também tinha observado isso, e isso estragou tudo para mim, eventualmente eu resolvi isso, mas isso é confuso.
1
@ SiXandSeven8ths Lamento ouvir isso. Funcionou bem para mim. Além disso, essa era a única maneira de fazer isso sem conectar nenhum monitor e teclado ao raspberry pi. então achei que poderia ser útil para outra pessoa.
madmike
4

A primeira coisa que você deve fazer é tornar o IP do seu Raspberry pi estático. Assim, sempre que você ligar o Raspberry pi, ele deverá se conectar ao seu ponto de acesso (Hotspot).

Conecte-se ao seu ponto de acesso. Digite ifconfig no terminal do raspberry pi e digite o endereço IP abaixo, no meu caso, era 192.168.43.233

Comece editando o arquivo dhcpcd.conf

sudo nano /etc/dhcpcd.conf

Role até a parte inferior e adicione essas linhas no final conforme sua conexão (com ou sem fio).

interface eth0

static ip_address=192.168.0.10/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1


interface wlan0
static ip_address=192.168.43.233/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

Pressione Ctrl + x para salvar e reiniciar. Agora ligue o seu raspberry pi e ele se conectará automaticamente ao seu ponto de acesso.

Smshrimant
fonte