Cuprins:

Router Nintendo Wifi: 17 pași (cu imagini)
Router Nintendo Wifi: 17 pași (cu imagini)

Video: Router Nintendo Wifi: 17 pași (cu imagini)

Video: Router Nintendo Wifi: 17 pași (cu imagini)
Video: Объяснение протоколов защиты беспроводных сетей WIFi - WEP, WPA, WPS 2024, Noiembrie
Anonim
Router Nintendo Wifi
Router Nintendo Wifi

Folosind o carcasă veche Nintendo Entertainment, produceți un router acasă extrem de funcțional folosind un RaspberryPI 3!

Pasul 1: Instalați software-ul RaspberryPi necesar

Discul dur intermitent RaspberriPi / Instalarea software-ului necesar (folosind Ubuntu Linux)

Descărcați „RASPBIAN JESSIE LITE”

Creați noul dvs. hard disk pentru DashboardPI

Introduceți microSD-ul pe computer prin intermediul adaptorului USB și creați imaginea discului folosind comanda dd

Localizați cardul microSD introdus prin comanda df -h, demontați-l și creați imaginea discului cu comanda dd copy copy dd

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

$ umount / dev / sdb1

Atenție: asigurați-vă că comanda este complet precisă, cu această comandă puteți deteriora alte discuri

if = locația fișierului imagine RASPBIAN JESSIE LITE a = locația cardului dvs. microSD

$ sudo dd bs = 4M if = / path / to / raspbian-jessie-lite.img of = / dev / sdb (notă: în acest caz, este / dev / sdb, / dev / sdb1 era o partiție fabrică existentă pe microSD) Configurarea RaspberriPi

Introduceți noul card microSD în raspberrypi și porniți-l cu un monitor conectat la portul HDMI

Autentificare

utilizator: pi pass: raspberry Schimbați parola contului pentru securitate

sudo passwd pi Activați opțiunile avansate RaspberriPi

sudo raspi-config Alegeți: 1 Extindeți sistemul de fișiere

9 Opțiuni avansate

A2 Hostname schimbați-l în „NESRouter”

A4 SSH Activați serverul SSH

A7 I2C Activați interfața i2c Activați tastatura engleză / SUA

sudo nano / etc / default / keyboard Schimbați următoarea linie: XKBLAYOUT = "noi" Configurați comanda directorului simplu l [opțional]

vi ~ /.bashrc

adăugați următoarea linie:

alias l = 'ls -lh'

sursă ~ /.bashrc Remediați evidențierea sintaxei implicite VIM [opțional]

sudo vi / etc / vim / vimrc

decomentați următoarea linie:

sintaxă pe Reporniți PI pentru a obține cele mai recente modificări

reboot Actualizați setările pentru fusul orar local

sudo dpkg-reconfigure tzdata selectați fusul orar folosind interfața

Pasul 2: Crearea punctului de acces WiFi

Rețineți, înainte ca acesta să devină un router, conectăm RaspberryPi la o rețea existentă prin portul său Ethernet pentru a instala următoarele pachete

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 python-imaging python-smbus build-essential python-dev rpi.gpio python3 python3-pip libi2c-dev

sudo vi /etc/dhcpcd.conf

Adăugați următoarea linie:

denyinterfaces wlan0 sudo vi / etc / network / interfaces

Editați secțiunea wlan0 astfel încât să arate astfel:

auto lo iface lo inet loopback

iface eth0 inet manual

auto wlan0 iface wlan0 inet adresa statică 10.0.10.1 netmask 255.255.255.0 rețea 10.0.10.0 transmis 10.0.10.255

auto eth1 iface eth1 inet adresa statică 10.0.20.1 netmask 255.255.255.0 rețea 10.0.20.0 transmis 10.0.20.255 Reîncărcați serverul DHCP și săriți configurația pentru conexiunile eth0 și wlan0

sudo service dhcpcd restart

sudo ifdown eth0; sudo ifup wlan0

Configurați HOSTAPD (Schimbați ssid și wpa_passphrase la valorile pe care le alegeți)

sudo vi /etc/hostapd/hostapd.conf

# Acesta este numele interfeței WiFi pe care am configurat-o mai sus interface = wlan0

# Utilizați driverul nl80211 cu driverul driverului brcmfmac = nl80211

# Acesta este numele rețelei ssid = NintendoWiFi

# Utilizați banda de 2,4 GHz hw_mode = g

# Utilizați canalul 6 canal = 6

# Activați 802.11n ieee80211n = 1

# Activați WMM wmm_enabled = 1

# Activați canale de 40 MHz cu interval de protecție 20ns ht_capab = [HT40] [SHORT-GI-20] [DSSS_CCK-40]

# Acceptați toate adresele MAC macaddr_acl = 0

# Utilizați autentificarea WPA auth_algs = 1

# Solicitați clienților să știe numele rețelei ignore_broadcast_ssid = 0

# Folosiți WPA2 wpa = 2

# Folosiți o cheie pre-partajată wpa_key_mgmt = WPA-PSK

# Expresia de acces la rețea wpa_passphrase = parolă

# Utilizați AES, în loc de TKIP rsn_pairwise = CCMP Putem verifica dacă funcționează în această etapă rulând (dar nu are încă conectivitate completă la internet):

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

sudo vi / etc / default / hostapd

Găsiți linia

# DAEMON_CONF = "" și înlocuiți-l cu

DAEMON_CONF = "/ etc / hostapd / hostapd.conf" Configurează DNSMASQ

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

sudo vi /etc/dnsmasq.conf

bind-interfaces # Legați-vă la interfață pentru a ne asigura că nu trimitem lucruri în altă parte server = 8.8.8.8 # Redirecționați cereri DNS către domeniul DNS DNS necesar # Nu redirecționați nume scurte false-priv # Nu redirecționați niciodată adrese în -spatii de adrese trase.

# Atribuiți adrese IP cu timp de leasing infinit (pentru statistici de utilizare a dispozitivului) dhcp-range = wlan0, 10.0.10.100, 10.0.10.200, 255.255.255.0, 10.0.10.255, infinit dhcp-range = eth1, 10.0.20.100, 10.0. 20.200, 255.255.255.0, 10.0.20.255, CONFIGURARE infinită IPV4 FORWARDING

sudo vi /etc/sysctl.conf

[necomentează] net.ipv4.ip_forward = 1

Activați-l imediat cu sudo sh -c "echo 1> / proc / sys / net / ipv4 / ip_forward"

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

sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED, STABILIT -j ACCEPT

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

sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED, STABILIT -j ACCEPT

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

Salvați setările iptables pentru următoarea repornire

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

Creați fișierul de reguli ipv4 (cu conținut nou)

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

iptables-restore </etc/iptables.ipv4.nat Restart Services

sudo service hostapd start sudo service dnsmasq start

reporniți sudo

Atribuirea adreselor IP statice [Opțional]

Dacă doriți ca gazdele din rețeaua dvs. să aibă IP-uri statice, folosiți următoarele

Achiziționați gazdele conectate în prezent prin DHCP vi /var/lib/misc/dnsmasq.leases

Adăugați adresa MAC (din ieșirea de mai sus) și adresa IP pe care doriți să le atribuiți sudo vi /etc/dnsmasq.conf

# desktop principal dhcp-host = 12: 34: 56: 78: 9a: bc, 10.0.20.20 Notă: Aceasta va atribui interfața de rețea cu adresa MAC: 12: 34: 56: 78: 9a: bc la adresa IP 10.0.20.20. Adresa IP listată NU trebuie să fie în intervalul DHCP dat, doar pe aceeași subrețea. Desktopul meu principal de mai sus este pe subrețeaua eth1: 10.0.20.0, așa că i-am dat adresa IP din 10.0.20.20.

Adăugarea firewall UFW

sudo apt-get install ufw

Permiteți portul 22 pentru uz public (pentru acces la rețea de la distanță)

sudo ufw permit 22

Permiteți toate porturile din rețeaua mea locală

sudo ufw permit din 10.0.10.0/24 sudo ufw permit din 10.0.20.0/24

Permiteți porturilor web tuturor

sudo ufw permit 80

Permiteți tuturor porturi web securizate

sudo ufw permit 443

Activați UFW și verificați starea

sudo ufw --force enable

sudo ufw status

Remediați eroarea BUG cu UFW care nu pornește la pornire

sudo su crontab -e

Adăugați următoarea linie: @reboot / bin / sleep 60; ufw --force enable

Pasul 3: consumabile necesare: Nintendo vechi rupt

Consumabile necesare: Old Broken Nintendo
Consumabile necesare: Old Broken Nintendo

Vechiul Nintendo Case dintr-un NES spart (eliminați tot conținutul vechi din interiorul carcasei, lăsând doar cadrul exterior, butoanele de pornire / resetare și conexiunile controlerului)

Pasul 4: consumabile necesare: Raspberry Pi 3 Model B

Consumabile necesare: Raspberry Pi 3 Model B
Consumabile necesare: Raspberry Pi 3 Model B

Pasul 5: consumabile necesare: 1,44 "Serial: UART / I2C / SPI TFT LCD 128x128 Module Display

Consumabile necesare: 1.44
Consumabile necesare: 1.44
Consumabile necesare: 1.44
Consumabile necesare: 1.44

Pasul 6: consumabile necesare: 5V 0.1A Mini ventilator Raspberry Pi

Consumabile necesare: 5V 0.1A Mini ventilator Raspberry Pi
Consumabile necesare: 5V 0.1A Mini ventilator Raspberry Pi

Pasul 7: Consumabile necesare: Ugreen USB 2.0 la 10/100 Fast Ethernet Lan Adaptor de rețea cu fir

Consumabile necesare: Adaptor de rețea cu cablu USB 2.0 la 10/100 Fast Ethernet Lan Ugreen
Consumabile necesare: Adaptor de rețea cu cablu USB 2.0 la 10/100 Fast Ethernet Lan Ugreen

Pasul 8: Construcție

Constructie
Constructie

Instalați în interiorul NES

Folosind o imprimantă 3D tipăriți cadrul de afișare Digole „NESPanel” în / construction / display-frame / folder. [dacă nu aveți o imprimantă 3D, puteți tăia delicat o gaură pătrată pentru afișajul Digole cu un instrument Dremel] Tăiați următoarele găuri deschise în partea din spate și laterală a carcasei pentru a permite fixarea micului ventilator pe laterale și cablurile de alimentare / Ethernet și USB Ethernet pentru a intra prin spate.

Pasul 9: Const. Cont

Const. Cont
Const. Cont

Deșurubați panoul negru din dreapta sus de la NES și tăiați curat o gaură pătrată suficient de mare pentru a vă monta afișajul digol. Hot Lipiți afișajul în poziție cu rama imprimată 3D „NESPanel” deasupra acestuia.

Pasul 10: Cont

Const. Cont
Const. Cont

Montați RaspberryPi în mijlocul fundului carcasei NES goale, fixați-l cu lipici sau cu un șurub mic prin fund. Folosind un rezistor de 270 ohmi, conectați „LED-ul de alimentare” al NES la pinii 5V și GND din Raspberry Pi (cablul cu LED scurt este solul). Conectați ventilatorul mic la pinii de 5V și GND pentru a-l rula la pornirea unității, lipiți ventilatorul de gaura din lateral pentru acesta.

Pasul 11: Conectarea ecranului Digole

Conectați următorii pini la pinii de pe RaspberryPi

VCC este conectat la 3v GND este la masă DATA este SDA CLOCK este SCL Acum ar trebui să vedeți dispozitivul în comanda i2cdetect

i2cdetect -y 1 ar trebui să apară în grila de text ca 27

Pasul 12: Instalați instrumentele de monitorizare a rețelei și înregistrarea bazei de date

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

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

Adăugați următoarea linie la sfârșitul fișierului: local all pi parola sudo -i -u postgres

psql

creați rolul pi parolă 'parolă aici';

alt rol pi login;

alter rol superutilizator;

du

(ar trebui să vă vedeți utilizatorul PI cu permisiunile acordate) creați baze de date statistici_rețea;

q

Ieșire

psql -d statistici_rețea

Rulați următoarele interogări:

CREATE TABLE traffic_per_minute (id serial, timestamp orar fără fus orar NOT NULL, eth0_down real, eth0_up real, eth1_down real, eth1_up real, wan0_down real, wan0_up real);

CREARE UNIQUE INDEX time_idx ON traffic_per_minute (time); Copiați folderul „jurnalizare” de cod din acest proiect în directorul principal al RPi

crontab -e

Adăugați această linie

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

Pasul 13: Instalați raportul de rezumat al traficului (rulează la fiecare 5 minute de Cronjob)

crontab -e

adăugați următoarea linie

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

Pasul 14: Instalați ecranul tabloului de bord

Copiați folderul de „afișare” de cod din acest proiect în directorul principal al RPi

Rulați-l după cum urmează

$ python /home/pi/display/NESRouter.py Configurați scriptul de afișare pentru a rula la pornire

crontab -e

Adăugați această linie

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

Verificați dacă afișajul începe să funcționeze la repornire

reporniți sudo

Pasul 15: Instalați site-ul de utilizare locală / statistici [https://10.0.10.1]

Instalați site-ul local de utilizare / statistici [https://10.0.10.1]

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

sudo apt-get install apache2

sudo service apache2 reporniți

Eliminați paginile implicite

cd / var / www

sudo rm -rf html

Copiați folderul „webportal” din acest proiect în folderul de acasă de pe RPi și creați link-ul simbolic pentru apache

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

Activați Python CGI Scripting

Adăugați în interiorul etichetei

Opțiuni + ExecCGI AddHandler cgi-script.py sudo service apache2 restart

Acum puteți vizita site-ul HTTP local [https://10.0.10.1]

Configurați monitorizarea avansată a rețelei (prin 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ți cu următorul conținut:

# Variabile globale

# IPFM poate monitoriza un singur dispozitiv. DISPOZITIV eth0

# JURNAL DE CONFIGURARE LOGGING GLOBAL

FILENAME "/ var / log / ipfm /% Y_% d_% m /% H_% M"

# jurnal în fiecare minut DUMP FIECARE 1 minut

# statistici clare în fiecare zi ȘTERGEȚI FIECARE 24 de ore SORT IN RESOLVE sudo service ipfm start

OPȚIONAL: Crearea propriilor imagini Nintendo pentru a fi redate pe ecran

Încărcați propriul fișier 128x128 la următoarea adresă URL:

www.digole.com/tools/PicturetoC_Hex_convert…

Alegeți fișierul imagine pentru încărcare, adăugați ce dimensiune doriți să fie pe ecran (Lățime / Înălțime)

Selectați „256 Color for Color OLED / LCD (1 byte / pixel)” în meniul derulant „Used for”

Obțineți ieșirea hexagonală.

Adăugați ieșirea hexagonală la un fișier display / build / header (.h), utilizați-le pe celelalte ca ghiduri pentru sintaxă.

Includeți noul fișier în fișierul digole.c #include myimage.h

Includeți un nou cârlig de linie de comandă la fișierul dvs. imagine în. Notă: comanda de mai jos spune desenează-ți imaginea în poziția de 10 pixeli peste 10 pixeli în jos. Puteți să o schimbați la diferite coordonate X, Y, de asemenea, puteți schimba valorile 128, 128 la orice dimensiune este de fapt noua dvs. imagine.

} else if (strcmp (digoleCommand, "myimage") == 0) {drawBitmap256 (10, 10, 128, 128, & myimageVariableHere, 0); // myimageVariableHere este definit în fișierul dvs. (.h)}

Acum reconstruiți (ignorați erorile) de mai jos pentru a reda noua imagine cu următoarea comandă.

$./digole myimage Reconstruire [Inclus] Driver de afișare Digole pentru modificările opționale

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

Recomandat: