La soluciónse explicaaquí
El problema
Tengo 3 interfaces eth0, wlan0, wlan1 (2 dongles USB wifi) en mi Raspberry Pi.
- wlan1 se utilizará para conectarse a una cámara WiFi a través de SSDP.
- wlan0 se utilizará para tener una conexión TCP a un servidor (IP/nombre de dominio conocido). No sé nada sobre el WiFi al que está conectado wlan0 a través de DHCP. Podría cambiar de vez en cuando. No conoce especialmente la puerta de entrada.
- eth0 se utilizará para depurar el acceso SSH, a través del servicio de conexión compartida de mi MacBook Air, por ejemplo.
En realidad, todas estas interfaces están funcionando. Aquí está el resultado de ifconfig (wlan1 y eth0 están en la misma red pero ese no será el caso en el futuro):
eth0 Link encap:Ethernet HWaddr b8:27:eb:8c:e2:10
inet addr:192.168.0.19 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1174 errors:0 dropped:0 overruns:0 frame:0
TX packets:141 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:93616 (91.4 KiB) TX bytes:12342 (12.0 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
wlan0 Link encap:Ethernet HWaddr c0:4a:00:2a:ab:6c
inet addr:192.168.43.44 Bcast:192.168.43.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5 errors:0 dropped:0 overruns:0 frame:0
TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1142 (1.1 KiB) TX bytes:1145 (1.1 KiB)
wlan1 Link encap:Ethernet HWaddr 74:da:38:0c:c6:f0
inet addr:192.168.0.14 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1480 errors:0 dropped:0 overruns:0 frame:0
TX packets:155 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:222449 (217.2 KiB) TX bytes:29711 (29.0 KiB)
Y aquí está el resultado de sudo route -n :
0.0.0.0 192.168.0.254 0.0.0.0 UG 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan1
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.43.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
Si entiendo bien lo que he leído durante las últimas 24 horas, necesito hacer tareas de enrutamiento. Pero no entiendo qué y cómo. ¿Tuve que cambiar la ruta predeterminada? En caso afirmativo, ¿cómo puedo hacerlo si no conozco la puerta de enlace wlan0 o wlan1 antes de conectarme a la red? ¿Es ese un problema imposible?
Editar: agregar /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
post-up route del default dev wlan0
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ssid "wifi1"
wpa-psk "psw1"
auto wlan1
allow-hotplug wlan1
iface wlan1 inet dhcp
wpa-ssid "wifi2"
wpa-psk "pwd2"
Respuesta1
Puede consultar su archivo ubicado en /etc/network/interfaces para encontrar la puerta de enlace predeterminada. Probablemente sea 192.168.0.1, pero no puedo estar seguro. La puerta de enlace es solo la dirección de su enrutador.
Escriba "cat /etc/network/interfaces" para ver la información. Edite con privilegios de root (sudo) si desea cambiarlo.
Prueba esto:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
# post-up route del default dev wlan0
address 192.168.0.19
netmask 255.255.255.0
gateway 192.168.0.1
auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
wpa-ssid "wifi1"
wpa-psk "psw1"
address 192.168.43.44
netmask 255.255.255.0
gateway 192.168.0.1
auto wlan1
allow-hotplug wlan1
iface wlan1 inet static
wpa-ssid "wifi2"
wpa-psk "pwd2"
address 192.168.0.14
netmask 255.255.255.0
gateway 192.168.0.1
Haga una copia de seguridad de su archivo /etc/network/interfaces original y pruebe este en su lugar. Esto establece todo en estático (sin cambios). Tendrá que reiniciar sus interfaces con ifdown/ifup o simplemente reiniciar la computadora.
Respuesta2
Si entiendo bien lo que he leído durante las últimas 24 horas, necesito hacer tareas de enrutamiento.
No, a menos que quieras configurar tu sistema como enrutador.
La puerta de enlace predeterminada es la IP que Linux enviará tráfico si el destino no se encuentra dentro del rango de las máscaras de subred de ninguna interfaz de red. Normalmente será tráfico destinado a "Internet".
Si no le importa que este sistema tenga acceso a Internet, no lo necesita, pero probablemente lo necesite para que pueda recibir actualizaciones, etc.
Normalmente, DHCP proporciona una puerta de enlace predeterminada y una dirección IP. Entonces, si wlan0
obtiene una IP de DHCP, probablemente también obtenga una puerta de enlace predeterminada. (O debería serlo, es posible que desee verificar su servidor DHCP si no está entregando uno). Entonces, el tráfico destinado a Internet pasará por esa interfaz.
Si no desea utilizar DHCP o distribuir una puerta de enlace predeterminada a través de DHCP, puede especificarla manualmente. Debe ser la dirección IP de un enrutador que pueda reenviar hacia/desde Internet.
Las cosas irán mejor si solo tiene una puerta de enlace predeterminada, así que asegúrese de que sus otras interfaces estén configuradas en IP estáticas y que solo una interfaz obtenga algo a través de DHCP.
Respuesta3
Yo mismo respondí esta pregunta después de horas de pruebas...
es explicaraquí