Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

832
Vistas
wpa_supplicant: ¿cómo cambiar a una red diferente?

Lo que necesito: conectarme a una red wifi diferente en archlinux llamando al script python.

Lo que estoy haciendo: ejecutar las siguientes declaraciones desde python:

 wpa_passphrase "MySSID" "MyPass"> /etc/wpa_supplicant/profile.conf wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/profile.conf dhcpd wlan0

Funciona solo para el primer intento. Cuando se ejecuta por segunda vez, dice que dhcpd ya está activado. No sé cómo cambiar a otra red.

También probé wpa_cli y nuevamente, no sé cómo cambiar a otra red.

Sugiera alguna solución o alternativa (sin complicaciones)

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Su problema concreto es que inicia wpa_supplicant y dhcp en lugar de reiniciarlos. Tengo un script que dice

 #shutdown dhc dhclient -r #shutdown wpa_supplicant killall wpa_supplicant #down interface ifdown --force wlan0 sleep 1 #your wpa startup here: wpa_supplicant -t -fYOUR_LOG_FILE -cYOUR_wpa_supplicant.conf -B -iwlan0 sleep 1 #restart dhc dhclient -nw

Supongo que puede hacer esto un poco mejor configurando sus /etc/network/interfaces apropiadamente.

Por cierto. en principio, no debería ser necesario reiniciar el dhc en absoluto. Después de un tiempo, debería darse cuenta de que necesita obtener una nueva IP, pero para mí esto lleva mucho tiempo. ;)

over 4 years ago · Santiago Trujillo Denunciar

0

Edite /etc/wpa_supplicant.conf

 nano /etc/wpa_supplicant.conf

Complete el archivo para que se vea así (reemplazando wifi_name y wifi_key por sus valores reales, por supuesto).

 network={ ssid="wifi_name1" psk="wifi_key1" }

y

 network={ ssid="wifi_name2" psk="wifi_key2" }

Luego guardar y salir

La red wifi ya está configurada, ahora debemos decirle que queremos conectarnos a ella usando este archivo de configuración.

 wpa_supplicant -B -i wlan0 -c <(wpa_passphrase MYSSID passphrase)

Si su interfaz no se llama wlan0, reemplace wlan0 por el nombre real de su interfaz. Ahora debemos solicitar una dirección IP.

 dhclient wlan0

Si todo salió bien, ahora verá varias líneas que contienen algunas direcciones IP y el comando ping debería funcionar.

over 4 years ago · Santiago Trujillo Denunciar

0

Cuando genere una nueva configuración con wpa_passphrase , colóquela en un lugar diferente al anterior para facilitar las cosas. Entonces, por ejemplo, el wifi de su hogar podría estar en /etc/wpa_supplicant/home.conf y el wifi de su trabajo podría estar en /etc/wpa_supplicant/work.conf .

Luego, cuando necesites conectarte al wifi de tu casa, simplemente ejecuta

 killall wpa_supplicant # With root privileges wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/home.conf

Y cuando necesitas conectarte al wifi de tu trabajo corres

 killall wpa_supplicant # With root privileges wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/work.conf

Enjuague y repita para cualquier red nueva que desee usar. Si no desea mantener una red, como un wifi de Starbucks en un viaje por carretera, simplemente guárdelo en una conf que planea sobrescribir o eliminar como /etc/wpa_supplicant/temp.conf .

AFAIK, nunca tienes que volver a ejecutar dhcpcd. Tengo dhcpcd como proceso de inicio y cada vez que cambio de wifi nunca necesito tocarlo.

Editar: tampoco necesita ejecutar esto como un script de python. Puedes hacerlo en la concha. Si necesita escribir un script que cambie rápidamente el wifi, le recomendaría que use un script de shell como el siguiente, por ejemplo.

 #!/bin/sh [ -z "$1" ] && exit 1 [ ! -f "/etc/wpa_supplicant/${1}.conf" ] && echo "$1 is not a wpa_supplicant config file" && exit 1 sudo killall wpa_supplicant sudo wpa_supplicant -B -i wlan0 -c "/etc/wpa_supplicant/${1}.conf"

correr como

 wifichange home

o

 wifichange work

La sección [ -z "$1" ] dice que salga si no ingresó nada. (me gusta)

 wifichange

Y el [ ! -f ...] la sección dice que salga si no ingresó el nombre de un archivo de configuración real.

Ahora probé el script.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda