Configurar WiFi y Ethernet

44

Estoy luchando con mi configuración de mi Raspberry Pi. Quiero lograr lo siguiente:

eth0: se usará con una IP estática y solo se puede conectar a la red de área local (este será mi servidor NFS) wlan0: se debe conectar a mi red inalámbrica para acceder a Internet

Por alguna razón, no puedo activar ambas conexiones al mismo tiempo (sí, tengo una buena fuente de alimentación). El ethernet deshabilitará la conexión inalámbrica sin ningún motivo. Si finalmente consigo los dos, entonces no puedo hacer ping a google.com. Mi pregunta, ¿cómo debo hacer esto correctamente? Tengo lo siguiente en mi archivo de interfaces:

auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.101
netmask 255.255.255.0
gateway 0.0.0.0

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

iface home inet static
address 192.168.0.157
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1

iface default inet dhcp

Saludos cordiales, y muchas gracias!

DanFritz
fuente
asegúrese de ejecutar el último firmware y software. luché mucho en el firmware antiguo que me volvía loco. actualizó todo desde cero y tiene un suplicante integrado y es muy fácil de conectar
Piotr Kula
gracias por los detalles en profundidad sobre este tema, he logrado implementar lo que se escribió aquí y conseguí que mi pi funcionara con ambos adaptadores.
1
Creo que la solución debería publicarse como respuesta ...
jmc
1
Es deficiente y daña la usabilidad del sitio, al "actualizar la pregunta para incluir la respuesta". Debe publicar la respuesta a su propia pregunta. Entonces será fácil de encontrar para otros, y puede atraer votos positivos de las personas a las que ayuda
Lyndon White

Respuestas:

25

Esto se aplica a Raspbian Wheezy antes del 2015-05-05 para más adelante (y Jessie / Stretch) Vea cómo configuro las redes / WiFi / IP estática

Según lo sugerido por la comunidad, mi respuesta se extrajo de la pregunta.

Lo tengo funcionando ahora, así que compartiré todos mis archivos de configuración con la comunidad. Primero veamos el archivo wpa_supplicant.conf:

pi@raspberrypi ~ $ sudo cat /etc/wpa_supplicant/wpa_supplicant.conf 
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="****"
    scan_ssid=1
    proto=RSN
    key_mgmt=WPA-PSK
    pairwise=CCMP TKIP
    group=CCMP TKIP
    psk="****"
    id_str="home"
    priority=5
}

A continuación, mi nuevo archivo de interfaces de actualización

pi@raspberrypi ~ $ sudo cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.101
netmask 255.255.255.0

auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
address 192.168.0.157
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1

iface default inet dhcp

Y ahora viene la parte difícil, debe deshabilitar la conexión en caliente del dispositivo eth0 (de lo contrario, deshabilitará su wlan0). Para ello, edite el siguiente archivo:

pi@raspberrypi ~ $ sudo cat /etc/default/ifplugd 
INTERFACES="eth0"
HOTPLUG_INTERFACES="eth0"
ARGS="-q -f -u0 -d10 -w -I"
SUSPEND_ACTION="stop"

También tengo lo siguiente en mi script de inicio, esto se asegurará de que mi wifi se inicie (a veces, sin ningún motivo, no se iniciará). También tienes que matar al demonio ifplugd en el dispositivo eth0:

pi@raspberrypi ~ $ sudo cat /etc/rc.local
#!/bin/sh -e

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

# Disable the ifplugd eth0
sudo ifplugd eth0 --kill
sudo ifup wlan0

exit 0

¡Y eso debería funcionar!

DanFritz
fuente
3
No necesita deshabilitar todo ifplugd. En cambio, simplemente deshabilite (elimine) el enlace simbólico ofensivo /etc/ifplugd/action.d/action_wpa, que evita que wlan0 funcione cuando Ethernet está conectado.
minmaxavg
para deshabilitar la conexión en caliente del dispositivo eth0, ¿no deberíamos eliminar las auto etholíneas? Además todavía tengo:~ $ sudo service isc-dhcp-server start Job for isc-dhcp-server.
IggyPass
8

Si un dispositivo no tiene acceso a Internet u otro acceso fuera de la subred local, debe eliminar la puerta de enlace. Listar una puerta de enlace en ambas interfaces es probablemente el culpable.

Si el ethernet es para la subred local, solo elimine esa puerta de enlace.

Tevo D
fuente
Tevo D es correcto. Cuando su eth0 esté conectado, tendrá una ruta predeterminada (red 0.0.0.0) fuera de su interfaz eth0 que hará que el tráfico fuera de la red se enrute de su interfaz eth0 y entre en el "bit-bucket" .
HeatfanJohn
Oke, eliminé la puerta de enlace en eth0. Ahora veo que mi conexión inalámbrica está conectada (ejecutando iwconfig) pero cuando ejecuto ifconfig, la conexión inalámbrica no utiliza la dirección IP estática o la puerta de enlace que asigné (permanece en blanco). ¿Alguna pista sobre eso?
DanFritz
Encontré la solución, gracias por tu ayuda. He actualizado mi pregunta con todos mis archivos de configuración (para otras personas)
DanFritz
@TevoD Usé tu consejo para comentar la puerta de enlace, funciona pero durante 1 minuto, luego se desconectó el WiFi (pero Ethernet funcionó), ¿podrías ayudarme?
H.Ghassami