A soluçãoé explicadoaqui
O problema
Tenho 3 interfaces eth0, wlan0, wlan1 (2 dongles USB wifi) no meu Raspberry Pi.
- wlan1 será usado para conectar-se a uma câmera WiFi via SSDP.
- wlan0 será usado para ter uma conexão TCP com um servidor (IP/nome de domínio conhecido). Não sei nada sobre o WiFi ao qual o wlan0 está conectado via DHCP. Isso pode mudar de tempos em tempos. Ele não conhece especialmente o gateway.
- eth0 será usado para depurar o acesso SSH, por meio do serviço de compartilhamento de conexão do MacBook Air, por exemplo.
Na verdade, todas essas interfaces estão funcionando. Aqui está a saída do ifconfig (wlan1 e eth0 estão na mesma rede, mas esse não será o caso no 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)
E aqui está a saída 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
Se eu entendi bem o que li nas últimas 24 horas, preciso fazer algumas coisas de roteamento. Mas não entendo o que e como. Tive que alterar a rota padrão? Se sim, como posso fazer isso, já que não conheço o gateway wlan0 ou wlan1 antes de me conectar à rede? Esse é um problema impossível?
Editar: adicione /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"
Responder1
Você pode consultar seu arquivo localizado em /etc/network/interfaces para encontrar o gateway padrão. Provavelmente é 192.168.0.1, mas não tenho certeza. O gateway é apenas o endereço do seu roteador.
Digite "cat /etc/network/interfaces" para ver as informações. Edite com privilégios de root (sudo) se quiser alterá-lo.
Experimente isto:
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
Faça backup do seu arquivo /etc/network/interfaces original e tente este. Isso define tudo como estático (imutável). Você terá que reiniciar suas interfaces com ifdown/ifup ou apenas reiniciar o computador.
Responder2
Se eu entendi bem o que li nas últimas 24 horas, preciso fazer algumas coisas de roteamento.
Não, a menos que você queira configurar seu sistema como um roteador.
O gateway padrão é o IP que o Linux enviará o tráfego se o destino não estiver no intervalo de máscaras de sub-rede de nenhuma interface de rede. Normalmente, este será o tráfego destinado à “Internet”.
Se você não se importa com o fato de este sistema ter acesso à Internet, você não precisa de um, mas provavelmente precisa para que ele possa obter atualizações, etc.
O DHCP normalmente distribui um gateway padrão, bem como um endereço IP. Portanto, se wlan0
estiver obtendo um IP do DHCP, provavelmente também estará obtendo um gateway padrão. (Ou deveria ser, você pode querer verificar seu servidor DHCP se ele não estiver distribuindo um.) Portanto, o tráfego destinado à Internet passará por essa interface.
Se não quiser usar DHCP ou distribuir um gateway padrão via DHCP, você pode especificá-lo manualmente. Deve ser o endereço IP de um roteador que pode encaminhar de/para a Internet.
As coisas correrão melhor se você tiver apenas um gateway padrão, portanto, certifique-se de que suas outras interfaces estejam configuradas para IPs estáticos e que apenas uma interface esteja recebendo algo via DHCP.
Responder3
Eu mesmo respondi a essa pergunta depois de horas de testes ...
É explicaraqui