Tabla de contenido:

Enrutador Wifi de Nintendo: 17 pasos (con imágenes)
Enrutador Wifi de Nintendo: 17 pasos (con imágenes)

Video: Enrutador Wifi de Nintendo: 17 pasos (con imágenes)

Video: Enrutador Wifi de Nintendo: 17 pasos (con imágenes)
Video: 📶 Cómo CONECTAR a redes Wi-Fi OCULTAS desde Nintendo Switch | Tecno4All 2024, Noviembre
Anonim
Enrutador Wifi de Nintendo
Enrutador Wifi de Nintendo

¡Con una carcasa de sistema de entretenimiento Old Nintendo, produzca un enrutador doméstico altamente funcional con un RaspberryPI 3!

Paso 1: Instale el software RaspberryPi requerido

Intermitente en el disco duro RaspberriPi / Instalar el software requerido (con Ubuntu Linux)

Descarga "RASPBIAN JESSIE LITE"

Cree su nuevo disco duro para DashboardPI

Inserte la microSD en su computadora a través del adaptador USB y cree la imagen del disco usando el comando dd

Localice su tarjeta microSD insertada a través del comando df -h, desmóntela y cree la imagen del disco con el comando disk copy dd

$ df -h / dev / sdb1 7.4G 32K 7.4G 1% / media / XXX / 1234-5678

$ umount / dev / sdb1

Precaución: asegúrese de que el comando sea completamente preciso, puede dañar otros discos con este comando

if = ubicación del archivo de imagen RASPBIAN JESSIE LITE de = ubicación de su tarjeta microSD

$ sudo dd bs = 4M if = / path / to / raspbian-jessie-lite.img of = / dev / sdb (nota: en este caso, es / dev / sdb, / dev / sdb1 era una partición de fábrica existente en el microSD) Configuración de su RaspberriPi

Inserte su nueva tarjeta microSD en el raspberrypi y enciéndalo con un monitor conectado al puerto HDMI

Acceso

usuario: pi pass: raspberry Cambie la contraseña de su cuenta por seguridad

sudo passwd pi Habilitar las opciones avanzadas de RaspberriPi

sudo raspi-config Elija: 1 Expandir el sistema de archivos

9 Opciones avanzadas

A2 Nombre de host cámbielo a "NESRouter"

A4 SSH Habilitar servidor SSH

A7 I2C Habilitar interfaz i2c Habilitar el teclado inglés / estadounidense

sudo nano / etc / default / keyboard Cambie la siguiente línea: XKBLAYOUT = "us" Configure el directorio simple l comando [opcional]

vi ~ /.bashrc

agregue la siguiente línea:

alias l = 'ls -lh'

fuente ~ /.bashrc Corregir el resaltado de sintaxis predeterminado de VIM [opcional]

sudo vi / etc / vim / vimrc

descomente la siguiente línea:

sintaxis en Reinicie su PI para obtener los últimos cambios

rebootUpdate la configuración de la zona horaria local

sudo dpkg-reconfigure tzdata seleccione su zona horaria usando la interfaz

Paso 2: creación del punto de acceso WiFi

Tenga en cuenta que antes de que esto se convierta en un enrutador, estamos conectando el RaspberryPi a una red existente a través de su puerto ethernet para instalar los siguientes paquetes

sudo apt-get update && sudo apt-get -y upgrade

sudo apt-get install dnsmasq hostapd vim

sudo apt-get install vim git python-smbus i2c-tools imagen de python python-smbus build-essential python-dev rpi.gpio python3 python3-pip libi2c-dev

sudo vi /etc/dhcpcd.conf

Agregue la siguiente línea:

denyinterfaces wlan0 sudo vi / etc / network / interfaces

Edite la sección wlan0 para que se vea así:

auto lo iface lo inet loopback

iface eth0 inet manual

auto wlan0 iface wlan0 inet dirección estática 10.0.10.1 máscara de red 255.255.255.0 red 10.0.10.0 difusión 10.0.10.255

auto eth1 iface eth1 inet dirección estática 10.0.20.1 máscara de red 255.255.255.0 red 10.0.20.0 difusión 10.0.20.255 Vuelva a cargar el servidor DHCP y rebote la configuración para las conexiones eth0 y wlan0

reinicio de dhcpcd del servicio sudo

sudo ifdown eth0; sudo ifup wlan0

Configure HOSTAPD (cambie ssid y wpa_passphrase a los valores que elija)

sudo vi /etc/hostapd/hostapd.conf

# Este es el nombre de la interfaz WiFi que configuramos arriba interface = wlan0

# Utilice el controlador nl80211 con el controlador brcmfmac driver = nl80211

# Este es el nombre de la red ssid = NintendoWiFi

# Utilice la banda de 2,4 GHz hw_mode = g

# Utilice el canal 6 canal = 6

# Habilitar 802.11n ieee80211n = 1

# Habilitar WMM wmm_enabled = 1

# Habilitar canales de 40 MHz con intervalo de guarda de 20 ns ht_capab = [HT40] [SHORT-GI-20] [DSSS_CCK-40]

# Acepta todas las direcciones MAC macaddr_acl = 0

# Utilice autenticación WPA auth_algs = 1

# Exigir a los clientes que sepan el nombre de la red ignore_broadcast_ssid = 0

# Utilice WPA2 wpa = 2

# Use una clave previamente compartida wpa_key_mgmt = WPA-PSK

# La contraseña de la red wpa_passphrase = contraseña

# Use AES, en lugar de TKIP rsn_pairwise = CCMP Podemos verificar si está funcionando en esta etapa ejecutando (pero aún no tiene conectividad completa a Internet):

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

sudo vi / etc / default / hostapd

Encuentra la linea

# DAEMON_CONF = "" y reemplácelo con

DAEMON_CONF = "/ etc / hostapd / hostapd.conf" Configurar DNSMASQ

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

sudo vi /etc/dnsmasq.conf

bind-interfaces # Conéctese a la interfaz para asegurarse de que no estamos enviando cosas a otra parte server = 8.8.8.8 # Reenvíe solicitudes de DNS a Google DNS domain-required # No reenvíe nombres cortos bogus-priv # Nunca reenvíe direcciones en el -espacios de direcciones enrutados.

# Asignar direcciones IP con tiempo de concesión infinito (para estadísticas de uso del dispositivo) dhcp-range = wlan0, 10.0.10.100, 10.0.10.200, 255.255.255.0, 10.0.10.255, infinite dhcp-range = eth1, 10.0.20.100, 10.0. 20.200, 255.255.255.0, 10.0.20.255, infinito CONFIGURACIÓN DE REENVÍO IPV4

sudo vi /etc/sysctl.conf

[descomentar] net.ipv4.ip_forward = 1

Actívelo inmediatamente con sudo sh -c "echo 1> / proc / sys / net / ipv4 / ip_forward"

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

sudo iptables -A FORWARD -i eth0 -o eth1 -m estado --state RELACIONADO, ESTABLECIDO -j ACEPTAR

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

sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELACIONADO, ESTABLECIDO -j ACEPTAR

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

Guarde la configuración de iptables para el próximo reinicio

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

Crear archivo de reglas ipv4 (con contenido nuevo)

sudo vi / lib / dhcpcd / dhcpcd-hooks / 70-ipv4-nat

iptables-restore </etc/iptables.ipv4.nat Servicios de reinicio

sudo service hostapd start sudo service dnsmasq start

sudo reiniciar

Asignación de direcciones IP estáticas [opcional]

Si desea que los hosts de su red tengan IP estáticas, utilice lo siguiente

Adquiera los hosts conectados actualmente a través de DHCP vi /var/lib/misc/dnsmasq.leases

Agregue la dirección MAC (de la salida anterior) y la dirección IP que le gustaría asignarles a sudo vi /etc/dnsmasq.conf

# main desktop dhcp-host = 12: 34: 56: 78: 9a: bc, 10.0.20.20 Nota: Esto asignará la interfaz de red con la dirección MAC: 12: 34: 56: 78: 9a: bc a la dirección IP 10.0.20.20. La dirección IP indicada NO tiene que estar en el rango de DHCP proporcionado, solo en la misma subred. Mi escritorio principal anterior está en la subred eth1: 10.0.20.0, así que le di la dirección IP 10.0.20.20.

Agregar un cortafuegos UFW

sudo apt-get install ufw

Permitir el puerto 22 para uso público (para acceso remoto a la red)

sudo ufw permitir 22

Permitir todos los puertos en mi red local

sudo ufw allow de 10.0.10.0/24 sudo ufw allow de 10.0.20.0/24

Permitir puertos web para todos

sudo ufw permitir 80

Permita puertos web seguros para todos

sudo ufw permitir 443

Habilite UFW y verifique el estado

sudo ufw --force enable

estado de sudo ufw

Corregir ERROR con UFW que no se inicia en el inicio

sudo su crontab -e

Agregue la siguiente línea: @reboot / bin / sleep 60; ufw --force enable

Paso 3: Suministros necesarios: Nintendo rota vieja

Suministros necesarios: Old Broken Nintendo
Suministros necesarios: Old Broken Nintendo

Viejo estuche de Nintendo de una NES rota (retire todo el contenido antiguo dentro del estuche, dejando solo el marco exterior, los botones de encendido / reinicio y las conexiones del controlador)

Paso 4: Suministros necesarios: Raspberry Pi 3 Modelo B

Suministros necesarios: Raspberry Pi 3 Modelo B
Suministros necesarios: Raspberry Pi 3 Modelo B

Paso 5: Suministros necesarios: 1.44 "Serie: Módulo de pantalla UART / I2C / SPI TFT LCD 128x128

Suministros necesarios: 1,44
Suministros necesarios: 1,44
Suministros necesarios: 1,44
Suministros necesarios: 1,44

Paso 6: Suministros necesarios: Mini ventilador Raspberry Pi de 5V 0.1A

Suministros necesarios: 5V 0.1A Mini Fan Raspberry Pi
Suministros necesarios: 5V 0.1A Mini Fan Raspberry Pi

Paso 7: Suministros necesarios: Adaptador de red cableada Ugreen USB 2.0 a 10/100 Fast Ethernet Lan

Suministros necesarios: Adaptador de red con cable Ugreen USB 2.0 a 10/100 Fast Ethernet Lan
Suministros necesarios: Adaptador de red con cable Ugreen USB 2.0 a 10/100 Fast Ethernet Lan

Paso 8: Construcción

Construcción
Construcción

Instalar dentro de la NES

Con una impresora 3D, imprima el marco de pantalla Digole "NESPanel" en la carpeta / construction / display-frame /. [si no tiene una impresora 3D, puede cortar delicadamente un orificio cuadrado para la pantalla Digole con una herramienta Dremel] Corte los siguientes orificios abiertos en la parte posterior y lateral de la carcasa para permitir que el pequeño ventilador se sujete a la lateral y los cables de alimentación / ethernet y USB ethernet para entrar por la parte posterior.

Paso 9: Construcción Cont

Construcción Cont
Construcción Cont

Desatornille el panel negro superior derecho de la NES y corte limpiamente un agujero cuadrado lo suficientemente grande para montar su pantalla digole. Pegue la pantalla en su lugar con el marco impreso en 3D "NESPanel" sobre la parte superior.

Paso 10: Continuación de la construcción

Construcción Cont
Construcción Cont

Monte el RaspberryPi en el medio de la parte inferior de la carcasa vacía de NES, fíjelo con pegamento o un tornillo pequeño en la parte inferior. Con una resistencia de 270 ohmios, conecte el "LED de encendido" de la NES a los pines 5V y GND en la Raspberry Pi (el cable LED corto es la tierra). Conecte el ventilador pequeño a los pines 5V y GND también para que funcione cuando la unidad se encienda, pegue el ventilador contra el orificio en el costado.

Paso 11: Conexión de la pantalla Digole

Conecte los siguientes pines a los pines del RaspberryPi

VCC está conectado a 3v GND es tierra DATOS es SDA CLOCK es SCL Ahora debería ver el dispositivo en su comando i2cdetect

i2cdetect -y 1 debería aparecer en la cuadrícula de texto como 27

Paso 12: Instale las herramientas de monitoreo de red y el registro de la base de datos

sudo apt-get install ifstat memcached python-memcache postgresql postgresql-contrib python-psycopg2

sudo vi /etc/postgresql/9.4/main/pg_hba.conf

Agregue la siguiente línea al final del archivo: local all pi contraseña sudo -i -u postgres

psql

cree la contraseña del rol pi 'contraseña aquí';

alterar el inicio de sesión de pi de rol;

alterar el rol de superusuario pi;

du

(debería ver a su usuario PI con los permisos otorgados) crear base de datos network_stats;

q

Salida

psql -d estadísticas_de_red

Ejecute las siguientes consultas:

CREAR TABLA traffic_per_minute (id serial, marca de tiempo sin zona horaria NOT NULL, eth0_down real, eth0_up real, eth1_down real, eth1_up real, wan0_down real, wan0_up real);

CREAR ÍNDICE ÚNICO time_idx ON traffic_per_minute (tiempo); Copie la carpeta de código de "registro" de este proyecto en el directorio de inicio de su RPi

crontab -e

Agregar esta línea

@reboot / bin / sleep 60; nohup python /home/pi/logging/networkUsage.py> / dev / null 2> & 1

Paso 13: Instale el informe de resumen de tráfico (se ejecuta cada 5 minutos por Cronjob)

crontab -e

agregue la siguiente línea

* / 5 * * * * python /home/pi/logging/trafficSummary.py

Paso 14: Instale la pantalla del tablero

Copie la carpeta de código "display" de este proyecto al directorio de inicio de su RPi

Ejecútelo de la siguiente manera

$ python /home/pi/display/NESRouter.py Configure el script de visualización para que se ejecute al inicio

crontab -e

Agregar esta línea

@reboot nohup python /home/pi/display/NESRouter.py> / dev / null 2> & 1

Verifique que la pantalla comience a funcionar al reiniciar

sudo reiniciar

Paso 15: Instale el sitio web de estadísticas / uso local [https://10.0.10.1]

Instale el sitio web de estadísticas / uso local [https://10.0.10.1]

sudo apt-get update && sudo apt-get upgrade -y

sudo apt-get install apache2

reinicio de apache2 del servicio sudo

Quitar páginas predeterminadas

cd / var / www

sudo rm -rf html

Copie la carpeta 'webportal' de este proyecto a su carpeta de inicio en su RPi y cree el enlace simbólico para que apache lo use

cd / var / www

sudo ln -s / home / pi / webportal html

cd / var / www / html

chmod + x *.py

sudo a2enmod cgi

sudo vi /etc/apache2/sites-enabled/000-default.conf

Habilitar Python CGI Scripting

Agregar dentro de la etiqueta

Opciones + ExecCGI AddHandler cgi-script.py sudo service apache2 restart

Ahora puede visitar el sitio HTTP local [https://10.0.10.1]

Configure el monitoreo de red avanzado (a través de IPFM)

sudo apt-get update

sudo apt-get install ipfm

sudo mv /etc/ipfm.conf /etc/ipfm.conf-bak

sudo vi /etc/ipfm.conf

Crea con los siguientes contenidos:

# Variables globales

# IPFM puede monitorear solo un dispositivo. DISPOSITIVO eth0

# REGISTRO DE CONFIGURACIÓN DE REGISTRO GLOBAL

NOMBRE DE ARCHIVO "/ var / log / ipfm /% Y_% d_% m /% H_% M"

# registro cada minuto DUMP CADA 1 minuto

# borrar estadísticas cada día BORRAR CADA 24 horas CLASIFICAR EN RESOLVER sudo service ipfm start

OPCIONAL: Crea tus propias imágenes de Nintendo para renderizar en la pantalla

Sube tu propio archivo de 128x128 a la siguiente URL:

www.digole.com/tools/PicturetoC_Hex_convert…

Elija su archivo de imagen para cargar, agregue el tamaño que desea que tenga en la pantalla (Ancho / Alto)

Seleccione "256 colores para OLED / LCD en color (1 byte / píxel)" en el menú desplegable "Usado para".

Obtenga la salida hexadecimal.

Agregue la salida hexadecimal a un archivo de visualización / compilación / encabezado (.h), use los otros como guías para la sintaxis.

Incluya el nuevo archivo en el archivo digole.c #include myimage.h

Incluya un nuevo enlace de línea de comando a su archivo de imagen en formato. Nota: el siguiente comando dice que dibuje su imagen en la posición 10 píxeles sobre 10 píxeles hacia abajo. Puede cambiarlo a diferentes coordenadas X, Y, también puede cambiar los valores 128, 128 al tamaño que tenga su nueva imagen.

} else if (strcmp (digoleCommand, "myimage") == 0) {drawBitmap256 (10, 10, 128, 128, & myimageVariableHere, 0); // myimageVariableHere se define en su archivo (.h)}

Ahora reconstruya (ignore los errores) a continuación para que su nueva imagen se renderice con el siguiente comando.

$./digole myimage Re-Building [incluido] Controlador de pantalla Digole para sus cambios opcionales

$ cd display / build $ gcc digole.c $ mv a.out../../digole $ chmod + x../../digole

Recomendado: