Raspberry Pi Force Server WAP: 15 pasos

Raspberry Pi Force Server WAP: 15 pasos

Tabla de contenido:

Anonim

En este tutorial, pasará por el proceso de convertir su Raspberry Pi en un punto de acceso inalámbrico (WAP) e instalará el Servidor Force en él, y lo ejecutará para que pueda ampliarlo en futuros proyectos.

----- Detalles sobre el Servidor Force para ir aquí ----- (Intencionalmente omitido)

Al final de este Instructable podrás simplemente:

  1. Enciende tu Raspberry Pi
  2. Conectarse a su red
  3. Contrólalo desde tu teléfono usando la aplicación Force

El siguiente tutorial de creación de WAP se basa en / reescribir en el tutorial en línea de Adafruit que se encuentra aquí.

Suministros:

Paso 1: Piezas

Necesitarás lo siguiente:

  1. Una frambuesa pi
  2. Una conexión a internet por Ethernet para tu Raspberry Pi.
  3. Adaptador de Wi-Fi que admite el modo AP (los adaptadores de Wi-Fi de Adafruit funcionan)
  4. (Micro) Tarjeta SD de 4 GB como mínimo con Raspbian instalado (hay muchos tutoriales sobre cómo hacerlo, solo con Google)
    1. Lector de tarjetas SD si necesita instalar Raspbian
  5. Fuente de alimentación para su Raspberry Pi (5V 1 ~ 2A)

Paso 2: Compruebe Ethernet y Wifi

Antes de continuar, asegúrese de que el cable Ethernet esté conectado y pueda hacer ping desde el Pi.

También querrá configurar su dongle WiFi. correr apagado sudo -h ahora y luego conecte el módulo WiFi cuando el Pi está apagado para que no cause una subida de tensión. Cuando se vuelva a consultar consultar con ifconfig -a que ves wlan0 - El módulo WiFi.

Paso 3: instalar el software

Escriba lo siguiente en el terminal.

sudo apt-get update

sudo apt-get install isc-dhcp-server

sudo apt-get install alojado

Paso 4: Configurar el servidor DHCP

A continuación, editaremos /etc/dhcp/dhcpd.conf, un archivo que configura nuestro servidor DHCP; esto permite que las conexiones wifi obtengan automáticamente direcciones IP, DNS, etc.

Ejecuta este comando para editar el archivo.

sudo nano /etc/dhcp/dhcpd.conf

Encuentra las líneas que dicen

opción nombre-dominio "example.org"; opción nombre-dominio-servidores ns1.example.org, ns2.example.org;

y cambiarlos para agregar un # en el principio para que digan

#option nombre-dominio "example.org"; # opción nombre-dominio-servidores ns1.example.org, ns2.example.org;

Encuentra las líneas que dicen

# Si este servidor DHCP es el servidor DHCP oficial para el local

# Red, la directiva autorizada debe estar sin comentarios. #autoritario;

y quitar el # por lo que dice

# Si este servidor DHCP es el servidor DHCP oficial para la red # local, la directiva autorizada debe estar sin comentarios. autoritario;

Luego, desplácese hasta la parte inferior y agregue las siguientes líneas

subred 192.168.42.0 máscara de red 255.255.255.0 {rango 192.168.42.10 192.168.42.50; opción broadcast-address 192.168.42.255; enrutadores opcionales 192.168.42.1; tiempo de arrendamiento predeterminado 600; tiempo máximo de arrendamiento 7200; opción nombre de dominio "local"; opción domain-name-servers 8.8.8.8, 8.8.4.4; }

Guarde el archivo escribiendo Control-X entonces Y entonces regreso

correr

sudo nano / etc / default / isc-dhcp-server

y desplácese hacia abajo hasta INTERFACES = "" y actualízalo para decir INTERFACES = "wlan0"

Cierra y guarda el archivo

Paso 5: Configurar Wlan0 para IP estática

Si por casualidad tienes wlan0 activo porque lo configuras, corre

sudo si abajo wlan0

No hay nada de malo en ejecutarlo si no estás seguro.

A continuación, configuraremos la conexión wlan0 para que sea estática y entrante. ejecute sudo nano / etc / network / interfaces para editar el archivo

Encuentra la línea auto wlan0 y agrega un # al frente de la línea, y luego a cada línea. Si no tienes esa línea, ¡solo asegúrate de que se vea como la captura de pantalla de abajo al final! Básicamente, simplemente elimine cualquier configuración de configuración de wlan0 antigua, la cambiaremos

Dependiendo de su configuración / distribución existente, puede haber más o menos texto y puede variar un poco.

Agrega las lineas

iface wlan0 inet dirección estática 192.168.42.1 máscara de red 255.255.255.0

Después allow-hotplug wlan0 - vea a continuación un ejemplo de cómo debería ser. Cualquier otra línea después debe tener una # en frente para deshabilitarlos

Guarde el archivo (Control-X Y) Asigne una dirección IP estática al adaptador wifi ejecutando:

sudo ifconfig wlan0 192.168.42.1

Paso 6: Configurar el punto de acceso

Ahora podemos configurar los detalles del punto de acceso. Configuraremos una red protegida por contraseña para que solo las personas con la contraseña puedan conectarse. Crea un nuevo archivo ejecutando

sudo nano /etc/hostapd/hostapd.conf

Pegue lo siguiente en, puede cambiar el texto después de ssid = a otro nombre, que será el nombre de difusión de la red. La contraseña se puede cambiar con el texto después de wpa_passphrase =

interface = wlan0 driver = rtl871xdrv ssid = TheForceServer hw_mode = g channel = 9 macaddr_acl = 0 auth_algs = 1 ignore_broadcast_ssid = genero de la luz de la mano por lo que no tiene que ver con el contenido de la aplicación.

Si no está utilizando los adaptadores wifi Adafruit, es posible que deba cambiar el driver = rtl871xdrv decir driver = nl80211 o algo así, no tenemos soporte tutorial para eso, YMMV!

Guardar como de costumbre. Asegúrate de que cada línea no tenga espacios ni pestañas adicionales al final o al principio, ¡este archivo es bastante delicado! Ahora le diremos a Pi dónde encontrar este archivo de configuración. correr

sudo nano / etc / default / hostapd

Encuentra la linea # DAEMON_CONF = "" y edítalo para que diga DAEMON_CONF = "/ etc / hostapd / hostapd.conf"No te olvides de quitar el # En frente para activarlo! Luego guarde el archivo.

Paso 7: Configurar la traducción de direcciones de red

La configuración de NAT permitirá que múltiples clientes se conecten a la red WiFi y que todos los datos estén "en sintonía" a través de la única IP de Ethernet. (Pero debes hacerlo incluso si solo un cliente se va a conectar)

correr

sudo nano /etc/sysctl.conf

Desplácese hasta la parte inferior y añada net.ipv4.ip_forward = 1 en una nueva linea Guarda el archivo. Esto iniciará el reenvío de IP en el arranque.

Tambien correr

sudo sh -c "echo 1> / proc / sys / net / ipv4 / ip_forward"

para activarlo de inmediato.

Ejecute los siguientes comandos para crear la traducción de red entre el puerto Ethernet et0 y el puerto wifi wlan0

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

sudo iptables -A FORWARD -i eth0 -o wlan0 -m estado - Estado RELACIONADO, ESTABLECIDO -j ACEPTO

sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACEPTAR

Puedes verificar que hay en las tablas con

sudo iptables -t nat -S

sudo iptables -S

Para que esto ocurra en el reinicio (para que no tenga que escribirlo cada vez), ejecute

sudo sh -c "iptables-save> /etc/iptables.ipv4.nat"

correr sudo nano / etc / network / interfaces y añadir

arriba iptables-restore </etc/iptables.ipv4.nat

hasta el final.

Paso 8: Actualizar Hostapd

Antes de que podamos ejecutar el software de punto de acceso, debemos actualizarlo a una versión que admita el adaptador WiFi. Primero obtenga la nueva versión escribiendo

wget

para descargar la nueva versión (consulte la siguiente sección para ver cómo compilar su propio hostapd actualizado) y luego

descomprimir adafruit_hostapd_14128.zip

Para descomprimirlo. Mueva la versión antigua fuera del camino con

sudo mv / usr / sbin / hostapd /usr/sbin/hostapd.ORIG

Y vuelve la nueva versión con

sudo mv hostapd / usr / sbin

configurarlo por lo que es válido para ejecutar con

sudo chmod 755 / usr / sbin / hostapd

Paso 9: ¡Primera prueba!

Finalmente podemos probar el host del punto de acceso!

correr

sudo / usr / sbin / hostapd /etc/hostapd/hostapd.conf

Para ejecutar manualmente hostapd con nuestro archivo de configuración. Deberías verlo configurado y usado. wlan0 Luego, puede verificar con otra computadora wifi si ve aparecer su SSID. Si es así, ha configurado correctamente el punto de acceso.

Puede intentar conectar y desconectar de la TheForceServer con la contraseña que configuraste antes (probablemente Frambuesa Si copió nuestra configuración de hostapd), el texto de depuración se mostrará en la consola Pi, pero aún no podrá conectarse a través de la conexión Ethernet. Cancelar la prueba escribiendo Control-C en la consola de Pi para volver a la línea de comandos de Pi.

Paso 10: ¡Terminando!

Bien, ahora que sabemos que funciona, es hora de configurarlo como un "demonio", un programa que se iniciará cuando Pi se inicie. Ejecute los siguientes comandos

sudo service hostapd start

servicio sudo isc-dhcp-server start

siempre puede verificar el estado del servidor AP host y el servidor DHCP con

sudo service hostapd status

estado de sudo servicio isc-dhcp-server

Para iniciar los servicios daemon. Verifique que ambos se inicien con éxito (sin 'error' o 'errores') Luego, para que se ejecute cada vez que se inicie

sudo update-rc.d hostapd habilitar

sudo update-rc.d isc-dhcp-server enable

Extra: Eliminación de WPA-Supplicant

Dependiendo de su distribución, es posible que necesite eliminar WPASupplicant. Hazlo ejecutando este comando:

sudo mv /usr/share/dbus-1/system-services/fi.epitest.hostap.WPASupplicant.service ~ /

y luego reiniciar

reinicio de sudo

Paso 11: Conectar y probar

Ahora que tenemos el software instalado en una Pi, es hora de conectarnos y probar la conexión. Estoy usando una computadora con Windows pero cualquier tipo debería funcionar bien. En el Pi, ejecute el comando

cola -f / var / log / syslog

para ver los datos de registro del sistema, útil para verificar y depurar qué está pasando! Conecta con otra computadora al AP que hiciste en el paso anterior.

Ingrese la clave WPA que especificó en el paso anterior.

En el syslog Pi deberías ver cosas como esta! Indica que un cliente se conectó, a qué hora y qué dirección IP se les dio.

Si no puedes conectarte, algo está mal hostapd

En su computadora, abra una Terminal (mac / linux) o Inicio-> Ejecutar-> cmd para abrir una línea de comando. Primero verifica que ifconfig (mac / linux) o ipconfig (Ventanas) dice. Debe tener una dirección IP en el rango 192.168.42.10-50.

Intente hacer ping al Pi, su dirección es 192.168.42.1 - en las ventanas hará ping 3 veces y se cerrará. En mac / linux, presione Control-C para salir después de algunos pings. Usted debe obtener pings exitosos como se ve a continuación. Si eso no funciona, algo está mal con hostapd o dhcpd (más como).

A continuación, intente hacer ping a 8.8.8.8, si esto no funciona pero lo anterior sí funciona, hay algún problema. dhcpd o la configuración de NAT (más probable).

Finalmente, verificaremos que el DNS funcione, intente hacer ping en www.mit.edu. Si esto no funciona, algo está mal con dhcpd. Si todo está bien hasta ahora, intente navegar por Internet, enviar correos electrónicos, etc. ¡Ahora está utilizando su Pi como un enrutador Wifi!

¡Más!

Es posible configurar su enrutador para acceso abierto o WEP, pero no lo cubrimos aquí (¡y no es tan seguro!) Es posible que desee buscar tutoriales como este que cubren las opciones de hostapd.

Paso 12: Compilando Hostapd

Es posible que haya notado que un paso es descargar una copia de hostapd de adafruit.com e intercambiarla con la suya. En caso de que desee compilar el suyo, aquí le explicamos cómo (es fácil pero no necesario si está de acuerdo con usar nuestro binario)

Vaya a la página de descargas de Realtek http: //152.104.125.41/downloads/downloadsView.asp …

Descargar linux 3.4.4_4749

Copie el zip a la tarjeta SD usando cualquier computadora que lo coloque en el directorio / boot de Pi's (o de alguna manera obtenga ese archivo en su Pi)

Arranque el Pi desde la tarjeta SD

sudo mv /boot/RTL8192xC_USB_linux_v3.4.4_4749.20121105.zip.

descomprimir RTL8192xC_USB_linux_v3.4.4_4749.20121105.zip

mv RTL8188C_8192C_USB_linux_v3.4.4_4749.20121105 / rtl

cd rtl

cd wpa_supplicant_hostapd

descomprimir wpa_supplicant_hostapd-0.8_rtw_20120803.zip

cd wpa_supplicant_hostapd-0.8 /

cd hostapd

hacer

* tener un sándwich * cuando haya terminado, el binario de hostapd está en el directorio

Paso 13: NOTA: Force Server aún no está disponible

El script de Forcer Server y la aplicación no están disponibles actualmente.

Debería ser lanzado pronto:)

Paso 14: Descargar y configurar el servidor de la fuerza

Descargar

Ahora es finalmente, el paso donde puede descargar Force Server para ejecutarse en su Raspberry Pi.

Para hacer esto, simplemente ejecuta lo siguiente:

cd ~

git clone

Crea una copia de la plantilla para trabajar.

Una vez que git haya terminado de clonar el repositorio de ForceProject Python, ejecute los siguientes comandos:

cd python

cp template.py myScript.py

Ahora que acaba de crear un nuevo archivo con el nombre myScript.py de template.py. De aquí en adelante, debe editar myScript.py para sus propios fines. El archivo template.py debe dejarse intacto, ya que actuará como una plantilla con todas las funciones de delegado y el código de la placa de producción incorporados.

Comience su script de Force Server en el arranque

Ejecute el siguiente código, asumiendo que los nombres de los archivos, etc. son los mismos que los anteriores:

sudo crontab -e

En la parte inferior, agregue la siguiente línea:

sudo python /usr/pi/Python/myScript.py &

Ahora presiona Control-O, Control-X, para guardar y cerrar el archivo crontab.

Paso 15: Configurar el control remoto de fuerza

Ahora que ha configurado el Servidor de la fuerza, querrá configurar el control remoto.

Descarga la aplicación Force desde la AppStore aquí.

Una vez que se haya descargado, inicie la aplicación y toque "Agregar controlador.." para crear un nuevo controlador. Puede asignar al controlador el nombre que desee y una descripción es opcional. Para la dirección IP, escriba 192.168.42.1 y para el tipo de puerto en 5555 (este es el puerto predeterminado). Puede cambiar las otras configuraciones como desee. Una vez que haya terminado, simplemente toque guardar en la parte superior derecha de la pantalla y luego toque el controlador que acaba de crear para comenzar a controlar su proyecto.

La aplicación ha incorporado documentación de las estructuras de datos de lo que recibirá el servidor en su script, a la que se puede acceder a través de la configuración de un mosaico, grabando un mosaico en la bandeja de sección o en la sección "Documentación de mosaico" de la aplicación.