Turinys:

„Nintendo Wifi“maršrutizatorius: 17 žingsnių (su nuotraukomis)
„Nintendo Wifi“maršrutizatorius: 17 žingsnių (su nuotraukomis)

Video: „Nintendo Wifi“maršrutizatorius: 17 žingsnių (su nuotraukomis)

Video: „Nintendo Wifi“maršrutizatorius: 17 žingsnių (su nuotraukomis)
Video: See Your WI-FI Password on iPhone #Shorts 2024, Lapkritis
Anonim
„Nintendo Wifi“maršrutizatorius
„Nintendo Wifi“maršrutizatorius

Naudodami seną „Nintendo Entertainment“sistemos dėklą, sukurkite labai funkcionalų namų maršrutizatorių naudodami „RaspberryPI 3“!

1 veiksmas: įdiekite reikalingą „RaspberryPi“programinę įrangą

Mirksi „RaspberriPi“standusis diskas / įdiekite reikiamą programinę įrangą (naudojant „Ubuntu Linux“)

Atsisiųskite „RASPBIAN JESSIE LITE“https://www.raspberrypi.org/downloads/raspbian/

Sukurkite naują standųjį diską, skirtą „DashboardPI“

Įdėkite „microSD“į kompiuterį per USB adapterį ir sukurkite disko vaizdą naudodami komandą dd

Suraskite įdėtą „microSD“kortelę naudodami komandą df -h, atjunkite ją ir sukurkite disko atvaizdą naudodami komandą disk copy dd

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

$ umount /dev /sdb1

Atsargiai: įsitikinkite, kad komanda yra visiškai tiksli, naudodami šią komandą galite sugadinti kitus diskus

if = RASPBIAN JESSIE LITE vaizdo failo vieta = jūsų „microSD“kortelės vieta

$ sudo dd bs = 4M, jei =/kelias/į/raspbian-jessie-lite.img iš =/dev/sdb (pastaba: šiuo atveju tai yra/dev/sdb,/dev/sdb1 buvo esamas gamyklos skaidinys „microSD“) „RaspberriPi“sąranka

Įdėkite naują „microSD“kortelę į raspberrypi ir įjunkite ją naudodami monitorių, prijungtą prie HDMI prievado

Prisijungti

vartotojas: pi pass: raspberry Saugumo sumetimais pakeiskite paskyros slaptažodį

sudo passwd pi Įgalinti „RaspberriPi“išplėstines parinktis

sudo raspi-config Pasirinkite: 1 Išplėskite failų sistemą

9 Išplėstinės parinktys

A2 pagrindinio kompiuterio pavadinimas pakeiskite jį į „NESRouter“

A4 SSH Įgalinti SSH serverį

A7 I2C Įgalinti i2c sąsają Įgalinti anglų/JAV klaviatūrą

sudo nano/etc/default/keyboard Pakeiskite šią eilutę: XKBLAYOUT = "us" Nustatykite paprastą katalogo komandą l [neprivaloma]

vi ~/.bashrc

pridėkite šią eilutę:

slapyvardis l = 'ls -lh'

šaltinis ~/.bashrc Ištaisykite numatytąją VIM sintaksės paryškinimą [neprivaloma]

sudo vi/etc/vim/vimrc

nekomentuokite šios eilutės:

iš naujo paleiskite PI, kad gautumėte naujausius pakeitimus

Atnaujinkite vietinės laiko juostos nustatymus

sudo dpkg-reconfigure tzdata pasirinkite savo laiko juostą naudodami sąsają

2 veiksmas: sukurkite „WiFi“prieigos tašką

Atminkite, kad kol tai netaps maršrutizatoriumi, mes prijungiame „RaspberryPi“prie esamo tinklo per jo eterneto prievadą, kad įdiegtume šiuos paketus

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

Pridėkite šią eilutę:

denyinterfaces wlan0 sudo vi/etc/network/interfaces

Redaguokite skyrių „wlan0“taip, kad jis atrodytų taip:

auto lo iface lo inet loopback

iface eth0 inet vadovas

auto wlan0 iface wlan0 inet statinis adresas 10.0.10.1 tinklo kaukė 255.255.255.0 tinklas 10.0.10.0 transliacija 10.0.10.255

auto eth1 iface eth1 inet statinis adresas 10.0.20.1 netmask 255.255.255.0 tinklas 10.0.20.0 transliacija 10.0.20.255 Iš naujo įkelti DHCP serverį ir atšaukti eth0 ir wlan0 jungčių konfigūraciją

sudo tarnyba dhcpcd paleiskite iš naujo

sudo ifdown eth0; sudo ifup wlan0

Konfigūruokite HOSTAPD (pakeiskite „ssid“ir „wpa_passphrase“į jūsų pasirinktas vertes)

sudo vi /etc/hostapd/hostapd.conf

# Tai yra „WiFi“sąsajos, kurią sukonfigūravome aukščiau sąsaja, pavadinimas = wlan0

# Naudokite tvarkyklę nl80211 su tvarkykle brcmfmac = nl80211

# Tai yra tinklo pavadinimas ssid = NintendoWiFi

# Naudokite 2,4 GHz juostą hw_mode = g

# Naudokite kanalą 6 kanalas = 6

# Įgalinti 802.11n ieee80211n = 1

# Įgalinti WMM wmm_enabled = 1

# Įgalinti 40MHz kanalus su 20ns apsaugos intervalu ht_capab = [HT40] [SHORT-GI-20] [DSSS_CCK-40]

# Priimkite visus MAC adresus macaddr_acl = 0

# Naudokite WPA autentifikavimą auth_algs = 1

# Reikalauti, kad klientai žinotų tinklo pavadinimą ignore_broadcast_ssid = 0

# Naudokite WPA2 wpa = 2

# Naudokite iš anksto bendrinamą raktą wpa_key_mgmt = WPA-PSK

# Tinklo slaptafrazė wpa_passphrase = slaptažodis

# Naudokite AES, o ne TKIP rsn_pairwise = CCMP Mes galime patikrinti, ar jis veikia šiame etape, paleisdami (bet dar neturėdami viso interneto ryšio):

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

sudo vi/etc/default/hostapd

Raskite liniją

#DAEMON_CONF = "" ir pakeiskite jį

DAEMON_CONF = "/etc/hostapd/hostapd.conf" Konfigūruoti DNSMASQ

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

sudo vi /etc/dnsmasq.conf

bind-interfaces # Pririškite prie sąsajos, kad įsitikintumėte, jog nesiunčiame daiktų kitur serveris = 8.8.8.8 # Persiųskite DNS užklausas į „Google“DNS domenui reikia # Neperduokite trumpų vardų bogus-priv # Niekada nepersiųskite adresų į -nukreiptos adresų vietos.

# Priskirti IP adresus su neribotu nuomos laiku (įrenginio naudojimo statistikai) dhcp-range = wlan0, 10.0.10.100, 10.0.10.200, 255.255.255.0, 10.0.10.255, begalinis dhcp-range = eth1, 10.0.20.100, 10.0. 20.200, 255.255.255.0, 10.0.20.255, begalinis IPV4 NUSTATYMAS

sudo vi /etc/sysctl.conf

[nekomentuoti] net.ipv4.ip_forward = 1

Nedelsdami suaktyvinkite jį sudo sh -c "echo 1>/proc/sys/net/ipv4/ip_forward"

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

Sudo iptables

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

sudo iptables -A FORWARD -i eth0 -o wlan0 -m būsena -valstybė SUSIJUSI, ĮSTATYTA -j PRIIMTI

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

Išsaugokite „iptables“nustatymus kitam perkrovimui

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

Sukurkite „ipv4“taisyklių failą (su nauju turiniu)

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

iptables-restore </etc/iptables.ipv4.nat Iš naujo paleiskite paslaugas

sudo paslauga hostapd paleisti sudo paslauga dnsmasq start

sudo perkraukite

Statinių IP priskyrimas [neprivaloma]

Jei norite, kad jūsų tinklo priegloboje būtų statinis IP, naudokite šiuos nurodymus

Įsigykite kompiuterius, šiuo metu prijungtus per DHCP vi /var/lib/misc/dnsmasq.leases

Pridėkite MAC adresą (iš išvesties aukščiau) ir IP adresą, kurį norite priskirti sudo vi /etc/dnsmasq.conf

# main desktop dhcp-host = 12: 34: 56: 78: 9a: bc, 10.0.20.20 Pastaba: tai priskirs tinklo sąsają su MAC adresu: 12: 34: 56: 78: 9a: bc prie IP adreso 10.0.20.20. Nurodytas IP adresas neturi būti nurodytame DHCP diapazone, tik tame pačiame potinklyje. Mano pagrindinis darbalaukis yra potinklyje eth1: 10.0.20.0, todėl daviau jam 10.0.20.20 IP adresą.

Pridedama UFW užkarda

sudo apt-get install ufw

Leisti 22 prievadą viešam naudojimui (nuotolinei prieigai prie tinklo)

sudo ufw leisti 22

Leisti visus mano vietinio tinklo prievadus

sudo ufw leisti nuo 10.0.10.0/24 sudo ufw leisti nuo 10.0.20.0/24

Leisti žiniatinklio prievadus visiems

sudo ufw leidžia 80

Leiskite visiems saugius žiniatinklio prievadus

443

Įjunkite UFW ir patikrinkite būseną

sudo ufw -jėga įgalinti

sudo ufw būsena

Ištaisykite klaidą, kai UFW neprasideda paleidžiant

sudo su crontab -e

Pridėkite šią eilutę: @reboot /bin /sleep 60; ufw -jėgos įgalinimas

3 veiksmas: reikalingos medžiagos: senas sugedęs „Nintendo“

Reikalingos medžiagos: senas sugedęs „Nintendo“
Reikalingos medžiagos: senas sugedęs „Nintendo“

Senas „Nintendo“dėklas iš sugedusio NES (pašalinkite visą seną turinį iš korpuso, palikdami tik išorinį rėmelį, maitinimo / atstatymo mygtukus ir valdiklio jungtis)

4 žingsnis: reikalingos medžiagos: „Raspberry Pi 3“modelis B

Reikalingos medžiagos: Raspberry Pi 3 B modelis
Reikalingos medžiagos: Raspberry Pi 3 B modelis

5 žingsnis: Reikalingos medžiagos: 1,44 colių serijos: UART/I2C/SPI TFT LCD 128x128 ekrano modulis

Reikalingos medžiagos: 1.44
Reikalingos medžiagos: 1.44
Reikalingos medžiagos: 1.44
Reikalingos medžiagos: 1.44

6 žingsnis: reikalingos medžiagos: 5V 0,1A mini ventiliatorius „Raspberry Pi“

Reikalingos medžiagos: 5V 0,1A mini ventiliatorius Raspberry Pi
Reikalingos medžiagos: 5V 0,1A mini ventiliatorius Raspberry Pi

7 žingsnis: Reikalingos medžiagos: „Ugreen USB 2.0 to 10/100 Fast Ethernet Lan Wired Network Adapter“

Reikalingi priedai: „Ugreen USB 2.0 to 10/100 Fast Ethernet Lan Wired Network Adapter“
Reikalingi priedai: „Ugreen USB 2.0 to 10/100 Fast Ethernet Lan Wired Network Adapter“

8 žingsnis: Statyba

Statyba
Statyba

Įdiekite NES viduje

Naudodami 3D spausdintuvą, spausdinkite „Digole Display“rėmelį „NESPanel“aplanke/construction/display-frame/aplanke. [jei neturite 3D spausdintuvo, galite „Dremel“įrankiu subtiliai iškirpti kvadratinę skylę „Digole“ekranui] Nupjaukite šias skyles korpuso gale ir šone, kad būtų galima pritvirtinti mažą ventiliatorių. maitinimo/eterneto ir USB eterneto kabelius, kad patektumėte per galą.

9 žingsnis: statybos tęsinys

Statybos tęsinys
Statybos tęsinys

Atsukite viršutinį dešinįjį juodąjį skydelį nuo NES ir švariai išpjaukite pakankamai didelę kvadratinę skylę, kad galėtumėte pritvirtinti savo digole ekraną. Karštai klijuokite ekraną, o jo viršuje - 3D spausdintas rėmelis „NESPanel“.

10 žingsnis: statybos tęsinys

Statybos tęsinys
Statybos tęsinys

Sumontuokite RaspberryPi tuščio NES dėklo apačios viduryje, pritvirtinkite klijais arba mažu varžtu per apačią. Naudodami 270 omų rezistorių, NES „įjungimo šviesos diodą“prijunkite prie „Raspberry Pi“5V ir GND kaiščių (trumpas LED laidas yra žemė). Prijunkite mažą ventiliatorių prie 5V ir GND kaiščių, kad jis veiktų, kai įrenginys paleidžiamas, priklijuokite ventiliatorių prie skylės šone.

11 veiksmas: „Digole“ekrano prijungimas

Prijunkite šiuos kaiščius prie „RaspberryPi“kaiščių

VCC prijungtas prie 3 V GND yra įžemintas DUOMENYS yra SDA CLOCK yra SCL

„i2cdetect -y 1“jis turėtų būti rodomas teksto tinklelyje kaip 27

12 veiksmas: įdiekite tinklo stebėjimo įrankius ir DB registravimą

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

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

Prie failo pabaigos pridėkite šią eilutę: vietinis visas pi slaptažodis sudo -i -u postgres

psql

sukurti vaidmenį pi slaptažodis „slaptažodis čia“;

pakeisti vaidmenį pi prisijungimas;

alter role pi superuser;

du

(turėtumėte matyti savo PI vartotoją su suteiktais leidimais) sukurti duomenų bazę network_stats;

q

išeiti

psql -d network_stats

Vykdykite šias užklausas:

KURTI LENTELĘ traffic_per_minute (ID serija, laiko žyma be laiko juostos NOT NULL, eth0_down real, eth0_up real, eth1_down real, eth1_up real, wan0_down real, wan0_up real);

CREATE UNIQUE INDEX time_idx ON traffic_per_minute (laikas); Nukopijuokite šio projekto kodą „registravimas“į savo RPi namų katalogą

crontab -e

Pridėkite šią eilutę

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

13 veiksmas: įdiekite srauto suvestinės ataskaitą („Cronjob“veikia kas 5 minutes)

crontab -e

pridėkite šią eilutę

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

14 veiksmas: įdiekite prietaisų skydelio ekraną

Nukopijuokite šio projekto kodo aplanką „rodyti“į savo RPi namų katalogą

Vykdykite taip

$ python /home/pi/display/NESRouter.py Nustatykite ekrano scenarijų, kad jis būtų paleistas paleidžiant

crontab -e

Pridėkite šią eilutę

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

Įsitikinkite, kad ekranas pradeda veikti iš naujo

sudo perkraukite

15 veiksmas: įdiekite vietinio naudojimo/statistikos svetainę [https://10.0.10.1]

Įdiekite vietinio naudojimo/statistikos svetainę [https://10.0.10.1]

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

sudo apt-get įdiegti apache2

sudo paslauga apache2 iš naujo

Pašalinkite numatytuosius puslapius

cd /var /www

sudo rm -rf html

Nukopijuokite „webportal“aplanką iš šio projekto į savo RPi namų aplanką ir sukurkite „apache“naudojamą nuorodą

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

Įgalinti „Python“CGI scenarijų

Pridėkite žymos viduje

Parinktys +ExecCGI AddHandler cgi-script.py sudo paslauga apache2 paleiskite iš naujo

Dabar galite apsilankyti vietinėje HTTP svetainėje [https://10.0.10.1]

Išplėstinio tinklo stebėjimo nustatymas (naudojant IPFM)

sudo apt-get atnaujinimas

sudo apt-get įdiegti ipfm

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

sudo vi /etc/ipfm.conf

Sukurkite naudodami šį turinį:

# Pasauliniai kintamieji

# IPFM gali stebėti tik vieną įrenginį. ĮRENGINIS eth0

# GLOBAL LOGGING CONFIGURATION LOG

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

# žurnalo kas minutę DUMP kas 1 minutę

# aiški statistika kiekvieną dieną IŠVALYKITE KIEKVIENĄ 24 val. RŪŠYKITE IŠSAKYTI

PASIRENKAMA: sukurkite savo „Nintendo“vaizdus, kuriuos norite pateikti ekrane

Įkelkite savo 128 x 128 failą į šį URL:

www.digole.com/tools/PicturetoC_Hex_convert…

Pasirinkite norimą įkelti vaizdo failą, pridėkite, kokio dydžio norite jį rodyti ekrane (plotis/aukštis)

Išskleidžiamajame meniu „Naudojama“pasirinkite „256 spalvos, skirtos spalvotam OLED/LCD (1 baitas/pikselis)“.

Gaukite šešiakampę išvestį.

Pridėkite šešiakampę išvestį prie ekrano/ kūrimo/ antraštės (.h) failo, kitus naudokite kaip sintaksės vadovus.

Įtraukite naują failą į failą digole.c #include myimage.h

Į savo vaizdo failą įtraukite naują komandinės eilutės kabliuką. Pastaba: žemiau pateikta komanda sako, kad pieškite savo vaizdą 10 pikselių, o ne 10 pikselių žemyn. Galite pakeisti jį į skirtingas X, Y koordinates, taip pat galite pakeisti reikšmes 128, 128 į bet kokio dydžio jūsų naują vaizdą.

} else if (strcmp (digoleCommand, "myimage") == 0) {drawBitmap256 (10, 10, 128, 128, & myimageVariableHere, 0); // myimageVariable Čia apibrėžta jūsų (.h) faile}

Dabar atkurkite (nepaisykite klaidų), kad gautumėte naują vaizdą naudodami šią komandą.

$./digole myimage Re-Building [Įtraukta] „Digole“ekrano tvarkyklė jūsų pasirinktiniams pakeitimams

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

Rekomenduojamas: