¿Cómo configuro la red / WiFi / dirección IP estática?


Respuestas:


252

Este tutorial describe cómo configurar redes usando el administrador de red predeterminado dhcpcd incluido en Raspbian desde el 05/05/2015.
Se aplica a los lanzamientos de la Fundación de Raspbian Buster , Raspbian Stretch , Raspbian Jessie y el último Raspbian Wheezy .
La configuración del buster es idéntica a Stretch.

Cómo configurar redes Raspbian

Si está utilizando una conexión Ethernet con un enrutador, no debería requerirse ninguna configuración y debería funcionar de inmediato.


NOTA El WiFi incorporado Pi3 / Pi Zero W no es compatible con redes de 5 GHz y puede que no se conecte al canal 12,13 en redes de 2,4 GHz hasta que se establezca el dominio regulador inalámbrico .

La conexión WiFi en dispositivos habilitados para 5 GHz está deshabilitada hasta que se establece el dominio regulador inalámbrico (Pi4B, Pi3B +, Pi3A +)

  • El dominio se puede configurar a través de Raspberry Pi Configuration(rc_gui), raspi-configo configurando country=un código de país ISO 3166 alpha2 apropiado en /etc/wpa_supplicant/wpa_supplicant.conf.

Si está utilizando WiFi y la GUI configurada siguiendo las Pautas de la Fundación

Si está utilizando WiFi desde la línea de comandos configurada siguiendo las pautas de la Fundación Esta es la única forma de configurar una red que no transmite SSID.

Esto también se puede usar para configurar un sistema 'sin cabeza', por ejemplo, usando un cable de consola en serie, pero es MUCHO más fácil si puede pedir prestado un monitor y un teclado para la configuración. Vea a continuación otro método posible usando un cable Ethernet a una PC.

Configuración de WiFi Raspbian sin cabeza

Raspbian , desde mayo de 2016, verifica el contenido del directorio de arranque para un archivo llamado wpa_supplicant.conf, y copiará el archivo en /etc/wpa_supplicant, reemplazando cualquier wpa_supplicant.confarchivo existente que pueda estar allí. El archivo en el directorio de arranque se elimina. Esto se puede utilizar para habilitar la configuración sin cabeza, utilizando la wpa_supplicant.confconfiguración detallada a continuación. (Probablemente también desee habilitarlo ssh).

¿Cuál es mi dirección IP?

Si solo quiere saber si IP Addresssu Pi está usando, ingrese hostname -Ien la línea de comando.

SSH

A partir de la versión de noviembre de 2016, Raspbian tiene el servidor SSH deshabilitado de forma predeterminada. Deberá habilitarlo manualmente.

Ingrese sudo raspi-configen la terminal, primero seleccione advanced options, luego navegue hasta ssh, presione Entery seleccione Habilitar o deshabilitar el servidor ssh.

Para la configuración sin cabeza, SSH se puede habilitar colocando un archivo llamado 'ssh', sin ninguna extensión, en la partición de arranque de la tarjeta SD.

Archivos de red

Si está ejecutando un Raspbian reciente /etc/network/interfacesdebería ser como se muestra a continuación. Si lo ha cambiado, PÓNGALO DETRÁS. (O Stretchsimplemente elimínelo , efectivamente NO HACE NADA).

# interfaces (5) archivo utilizado por ifup (8) y ifdown (8)

# Tenga en cuenta que este archivo está escrito para usarse con dhcpcd
# Para IP estática, consulte /etc/dhcpcd.conf y 'man dhcpcd.conf'

# Incluir archivos de /etc/network/interfaces.d:
directorio-fuente /etc/network/interfaces.d

El archivo /etc/wpa_supplicant/wpa_supplicant.confse creará / modificará mediante los métodos de configuración recomendados, pero se puede configurar a mano. Raspbian reciente tiene una opción raspi-configpara ingresar SSID y contraseña. Debe contener algo como lo siguiente: -

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

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

Si necesita conectarse a una red privada (es decir, sin transmisión SSID), incluya la línea scan_ssid=1dentro network={⋯}.

NOTA Si desea conectarse a diferentes redes (por ejemplo, en el trabajo o en el hogar), puede incluir varias network={⋯}entradas.

Si tiene acceso a varias redes y desea conectarse a una red específica, incluya la línea priority=100dentro de la network={⋯}entrada.
Puede seleccionar una prioridad diferente para cada red, se seleccionará la red accesible de mayor prioridad; el valor predeterminado es 0.

Hay muchas otras opciones que se pueden usar para ver man wpa_supplicant.conf.

Notas sobre sistemas operativos obsoletos

Jessie no incluye el 10-wpa_supplicantgancho para administrar interfaces WiFi, por lo que se necesitan enlaces a wpa_supplicant. Estas configuraciones son incompatibles con los nombres de interfaz de red predecibles.

El /etc/network/interfacesutilizado por Jessie debería 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

NOTA: llamar a dhcp in /etc/network/interfacesse deshabilitará dhcpcd .

Nombres de interfaz de red predecibles

Stretchintrodujo 1 nombres de interfaz de red predecibles que se han utilizado en otras distribuciones durante algún tiempo.

Las interfaces de red tendrán nombres formados a partir de un prefijo en- Ethernet o wl- wlan seguido de la xindicación MACy, MACpor ejemplo, enxb827eb123456o wlx00c140123456. Sin embargo, el WiFi a bordo de Pi4, Pi3 y PIZeroW que está conectado sdioutilizará el nombrewlan0

Esto puede ser beneficioso para aquellos que usan múltiples interfaces de red, sin embargo, para la mayoría de los usuarios de Pi, con una sola interfaz Ethernet y WiFi hará poca diferencia. Los nombres anteriores eth0y wlan0se pueden restaurar si pasa net.ifnames=0la línea de comando del núcleo /boot/cmdline.txt.

Hay una opción raspi-configpara habilitar nombres de interfaz de red predecibles.

1. Por alguna razón incomprensible, la Fundación decidió "Deshabilitar nombres de interfaz de red predecibles para dispositivos Ethernet" solo 3 semanas después de introducir la característica tan esperada. Hay una opción debajo Advanced Optionsde raspi-configpara alternar esta configuración.


Configurar una dirección IP estática

Ver respuesta separada Dirección IP estática


dhcpcdConfiguración avanzada

Raspbian, por defecto, utiliza dhcpcdpara administrar interfaces de red. Esto es automático, y la mayoría de los usuarios no necesitan hacer más que especificar el SSID y la contraseña para las redes inalámbricas.

Es posible configurar cómo dhcpcdfunciona ingresando opciones en /etc/dhcpcd.conf; ver man dhcpcd.conf. Hay un buen artículo dhcpcden https://wiki.archlinux.org/index.php/dhcpcd

A continuación se describen algunas de las configuraciones más comunes:

Perfil de reserva

Es posible configurar un perfil estático dentro dhcpcdy recurrir a él cuando falla la concesión DHCP. Esto es útil particularmente para máquinas sin cabeza, donde el perfil estático se puede utilizar como perfil de "recuperación" para garantizar que siempre sea posible conectarse a la máquina. El perfil estático se configura como cualquier otra dirección IP estática

    # define perfil estático
    perfil static_eth0
    ip_address estática = ⋯
    enrutadores estáticos = ⋯
    static domain_name_servers = ⋯

    # respaldo al perfil estático en eth0
    interfaz eth0
    reserva static_eth0

Evitar dhcpcdconfigurar una interfaz

Esto a menudo se hace para permitir que el Pi actúe como un punto de acceso (que debe configurarse utilizando otros archivos), al tiempo que permite la DHCPconfiguración normal en otras interfaces.

Agregue denyinterfaces wlan0al final del archivo (pero sobre cualquier otra línea de interfaz agregada).

Evitar dhcpcdconfigurar una puerta de enlace en una interfaz

Si desea que una interfaz no instale ninguna ruta predeterminada (a menudo utilizada junto con una dirección IP estática) especifique

    Nogateway

Configuración específica del host

dhcpcdpuede configurar interfaces que dependen de la red del host. Esto utiliza el Protocolo de resolución de direcciones (ARP) para sondear hosts basados ​​en direcciones MAC o IP antes de intentar la resolución DHCP.

    interfaz bge0
    arping 192.168.0.1

    # Mi red 192.168.0.1 específica
    perfil dd: ee: aa: dd: bb: ee
    ip_address estática = 192.168.0.10 / 24

    # Una red genérica 192.168.0.1
    perfil 192.168.0.1
    ip_address estática = 192.168.0.98 / 24

Puede acelerar DHCP deshabilitando el sondeo ARP si no está utilizando estas funciones y tiene una red simple.

    noarp

Use diferentes archivos wpa_supplicant

Es posible configurar dhcpcd para usar diferentes archivos wpa_supplicant.conf para una interfaz inalámbrica específica.

Crear un archivo nombrado wpa_supplicant-"$interface".confen, /etc/wpa_supplicant/por ejemplo wpa_supplicant-wlan0.conf, solo será utilizado porwlan0

/etc/wpa_supplicant/wpa_supplicant.conf se usará para cualquier otra interfaz inalámbrica.


Conectar una computadora a la Pi

Las versiones recientes de Raspbian (que usan dhcpcd) permiten sshtrabajar sobre una link-localdirección y avahi(que es una implementación zeroconf) permiten que los programas descubran hosts que se ejecutan en una red local.

Esto significa que puede conectar el Pi a una computadora (con un cable Ethernet) o un enrutador de red local y conectarse sin conocer la dirección IP.

Puede conectarse fácilmente desde Linux y OS X con ssh pi@hostname.local(el nombre de host predeterminado es raspberrypi) Esto debería funcionar con los sshprogramas populares de GUI . Esto a veces es problemático con algunas versiones de Windows y redes que usan .local de una manera no estándar. (Ver https://en.wikipedia.org/wiki/.local )

NOTA la .localresolución no siempre funciona, por ejemplo, en rsync. Lo siguiente debería resolver la IP (y se puede incluir en los bashscripts)
RemotePi=$(getent hosts hostname.local | awk '{ print $1 }')

Si su sistema no tiene getentque consultar, hostspor ejemplo, macOS, puede usar lo siguiente:
RemotePi=$(arp -n hostname.local | awk '{x = $2; gsub(/[()]/, "", x); print x }')

Si tiene múltiples Pi, debe asegurarse de que cada Pi tenga un nombre de host único.

Puede usar un cable cruzado, pero no necesita uno (la mayoría de las interfaces modernas lo detectan automáticamente).

Un inconveniente de la conexión directa es que el Pi no tendrá acceso a Internet y no se establecerá la fecha. Puede copiar la fecha desde el host ejecutando ssh pi@hostname.local sudo date -s$(date -Ins)antes de la conexión.

Alcance:

Este tutorial trata sobre la configuración de una instalación normal de Raspbian para acceder a Internet utilizando el software incluido. También cubre conexiones a otras computadoras en la misma red.

Su objetivo principal es ayudar a los nuevos usuarios que luchan para que su Pi (especialmente WiFi) funcione.

NO cubre: -

  • Otros administradores de red.
  • Ejecución de redes avanzadas en el Pi (por ejemplo DHCP, servidores, túneles, VPN, punto de acceso).
  • Uso de ipv6(aunque si tiene una ipv6red esto debería funcionar).
  • Configuraciones de red alternativas. (Hay muchas formas diferentes de configurar redes).

2
Me confundí con el "esto NO es algo que escribirías en el archivo". Si no me equivoco, lo que Milliways quiere decir aquí es que no reemplazarías todo el archivo con este fragmento de texto. Sin embargo, está perfectamente bien agregar este bit al final (modificando los parámetros a su gusto, por supuesto). Además, las líneas routersy domain_name_serversson opcionales si no desea configurar el enrutamiento a través de esa interfaz.
Mark

44
Entonces, ahora, para configurar su dirección IP, ¿necesita tener instalado el cliente DHCP y usar su configuración para establecer una dirección IP estática? ¡No funciona si quiero un servidor DHCP en mi Raspbian! El cliente DHCP se ejecuta después del inicio del servidor DHCP, por lo que la ip aún no está configurada, lo que hace que el servidor DHCP (isc-dhcpd) se queje.
Luc Stepniewski

16
¿Dónde está esto oficialmente documentado?
Alastair McCormack

66
¿Dónde se documenta esto? Quiero decir, WTF. He seguido estas instrucciones al igual que muchas otras y no puedo conectarme. Felizmente puedo ver y escanear redes, pero nunca se conectará o asociará. Estoy muy malhumorado con esto.
AaronJAnderson


64

Configurar una dirección IP estática

Las preguntas sobre la configuración de la dirección IP estática se encuentran entre las más comunes en este sitio. Hay muchos tutoriales (muchos incorrectos, obsoletos o incompletos).

Descargo de responsabilidad

Antes de continuar, me siento obligado a decir que NO se recomienda configurar una dirección estática. Los ingenieros de telecomunicaciones no hacen esto. Las direcciones IP estáticas pueden ser la ruina de la vida de un administrador de red. Hay situaciones en las que las direcciones IP estáticas son necesarias, por ejemplo, si está ejecutando un servidor DHCP o en una red aislada sin servidor DHCP.

Si está decidido a continuar de todos modos, debe asegurarse de hacerlo bien. Adaptado de Foundation Network Tutorial

Encuentre la configuración de su red local

Esto se hace más fácilmente con el propio Pi, usando DHCP, pero se puede hacer en cualquier computadora de su red, aunque los comandos pueden diferir en otros sistemas.

correr

ip -4 addr show | grep global

que debería dar una salida 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

La primera dirección es la dirección IP de su Pi en la red, y la parte posterior a la barra diagonal es el tamaño de la red. Es muy probable que el tuyo sea un / 24.

La segunda dirección es la dirección brd (broadcast) de la red.

Encuentre la dirección de su enrutador (o puerta de enlace)

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

10.1.1.1

Finalmente, anote la dirección de su servidor DNS, que a menudo es la misma que su puerta de enlace.

cat /etc/resolv.conf

# Generated by resolvconf
nameserver 10.1.1.1

Luego siga UNO de los siguientes métodos. (Hay otros métodos no se describen aquí. Estos son los más comunes en Raspbian.) ( En cualquiera de los métodos sustituir el nombre de interfaz de red apropiado para eth0, wlan0o nombres de interfaz de red predecibles . )

Si desea encontrar los nombres de la interfaz, incluso si no está conectado, ejecute el siguiente comando ls /sys/class/net/

En cualquier método, debe elegir las direcciones IP que no están en uso; idealmente fuera del rango utilizado por su servidor DHCP, dentro de la misma subred.

método dhcpcd

Dejar /etc/network/interfacesen su valor predeterminado (como arriba).

Edite de la /etc/dhcpcd.confsiguiente manera: -

 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_addresses la dirección y el tamaño del comando anterior (u otra dirección no utilizada en la misma red), routerses la dirección de su enrutador (o puerta de enlace). domain_name_serversson las direcciones DNS de /etc/resolv.conf. (ver man dhcpcd.conf)

Hay un buen artículo sobre dhcpcdal https://wiki.archlinux.org/index.php/dhcpcd El Fallback profilees una alternativa a IP estática


Método de interfaces de red

NOTA Este método NO se recomienda (y solo funciona si deshabilita el daemon del cliente DHCP), particularmente si planea usar ambas interfaces.

Configure una dirección de red estática en su Pi en /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

addresses la dirección del comando anterior (u otra dirección no utilizada en la misma red), netmask255.255.255.0 corresponde al tamaño de la red /24. gatewayes la dirección de su enrutador (o puerta de enlace).

También puede especificar dns-nameservers, pero esto generalmente no es necesario. El broadcastse deriva automáticamente de addressy netmaskno es necesario especificarlo. Para más detalles ver https://wiki.debian.org/NetworkConfiguration

Puede establecer uno o ambos eth0, wlan0o uno de los nombres de interfaz de red predecibles

Luego deshabilite el demonio del cliente DHCP y cambie a la red Debian estándar :

sudo systemctl disable dhcpcd
sudo systemctl enable networking

Reinicie para que los cambios surtan efecto:

sudo reboot

1
¿Cuáles son los pros y los contras de estos dos métodos que mencionas?
Elliott B

@ElliottB lee el descargo de responsabilidad anterior.
Milliways

1
Leí eso, solo me pregunto acerca de los dos métodos dhcpcd vs redes. Quiero ver si una IP estática permite que arranque más rápido, porque veo un retraso de 15 segundos para dhcpcd systemd-analyze.
Elliott B

Yo tampoco lo uso, esto solo está allí porque muchas personas lo intentan (por cualquier razón, lo que me elude) PERO se equivocan, porque no entienden las redes. No hay una respuesta simple porque depende de qué más esté haciendo. NOTA establecer una IP estática es poco probable que tenga NINGÚN impacto en el tiempo de arranque, a menos que tenga un servidor DHCP muy lento. Si tiene preguntas, debe hacer una pregunta; este no es un foro de discusión.
Milliways

He agregado static domain_search=example.localal método dhcpcd.conf. Siéntase libre de revertir / editar / contactarme.
MadMike

35

Para una dirección IP estática en una conexión Ethernet:

  1. sudo nano /etc/dhcpcd.conf
  2. Escriba las siguientes líneas en la parte superior del archivo:

    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

Esto debe hacerse para la reciente actualización de Jessie. /etc/network/interfacesdebe ser dejado solo . Abra su navegador e ingrese la dirección de su enrutador (192.168.1.1 para la mayoría) y verifique su red doméstica para asegurarse de que la Raspberry Pi aparezca como 'Estática'.


55
Si va a copiar partes de la respuesta al menos, debe hacerlo correctamente.
Milliways

2
Probablemente funcionó en su caso, pero no en general porque dhcpcdinfirió la máscara de red, que no puede para otros rangos de direcciones. Lee las manpáginas.
Milliways

1
Afirma que / etc / network / interfaces debe dejarse solo, pero no dice por qué. De hecho, todo lo contrario es cierto. Vea mi respuesta a continuación.
JayEye

2
Si desea reiniciar los servicios de red sin reiniciar, asegúrese de tener la línea auto eth0anterior iface eth0 inet manualen su /etc/network/interfacearchivo. Reiniciar red a través del sudo service networking restartcomando
Barmaley

3
Esta puede ser una respuesta copiada, pero tiene todo lo que necesita para configurar una IP estática en frambuesa, la respuesta aceptada es innecesariamente larga.
Pedro Lobito

11

Método corto e infalible cómo hacer esto con:

Raspbian Jessie & Stretch

Esto establecerá una IP fija y habilitará el demonio ssh:

  • Abrir /boot/cmdline.txty agregar ip=192.168.1.20al final de la línea.
  • Crea un archivo vacío /boot/ssh
  • Arranca tu Raspberry Pi
  • En Linux, ssh pi@192.168.1.20la contraseña es raspberry. Use Putty en Windows para conectarse a través de ssh.

Estoy usando esto para acceder a mi Raspbian Jessie and Stretch que arranca sin un monitor conectado, solo con alimentación y ethernet. Después de acceder con un shell ssh, puedo continuar con mi configuración.

Después de este tratamiento, la Raspberry PI tenía dos IP: una de la IP fija que especificó y otra del cliente dhcp que se ejecuta en la Raspberry Pi.

ifconfigle mostrará la IP fija. Mientras que el ícono de la flecha azul en la esquina superior derecha muestra el dhcpd-IP.


1
NO sugiera deshabilitar IPv6. NO hay necesidad de eso.
Anders

¿Por qué necesitaría 2 IP?

@ SiXandSeven8ths No hay necesidad de 2 IP. He observado el comportamiento y lo estoy describiendo aquí para minimizar las sorpresas. Mejoraría mi respuesta, pero no tuve tiempo de hacerlo.
MadMike

@MadMike También lo había observado, y me arruinó las cosas, eventualmente lo resolví, pero esto es confuso.

1
@ SiXandSeven8ths Lamento escuchar eso. Funcionó bien para mí. Además, esta era la única forma de hacerlo sin conectar ningún monitor y teclado a la frambuesa pi. así que pensé que podría ser útil para alguien más.
MadMike

4

Lo primero que debe hacer es hacer que la IP de su Raspberry pi sea estática. Para que cada vez que encienda su Raspberry pi se conecte a su punto de acceso (punto de acceso).

Conéctese a su punto de acceso. Escriba ifconfig en el terminal de la frambuesa pi e ingrese esa dirección IP a continuación, en mi caso fue 192.168.43.233

Comience editando el archivo dhcpcd.conf

sudo nano /etc/dhcpcd.conf

Desplácese hasta el final y agregue estas líneas al final según su conexión (por cable o inalámbrica).

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

Presione Ctrl + x para guardar y reiniciar. Ahora encienda su raspberry pi y se conectará automáticamente a su punto de acceso.