Nintendo Wifi maršrutētājs: 17 soļi (ar attēliem)
Nintendo Wifi maršrutētājs: 17 soļi (ar attēliem)
Anonim
Nintendo Wifi maršrutētājs
Nintendo Wifi maršrutētājs

Izmantojot veco Nintendo izklaides sistēmas korpusu, izveidojiet ļoti funkcionālu mājas maršrutētāju, izmantojot RaspberryPI 3!

1. darbība: instalējiet nepieciešamo RaspberryPi programmatūru

Mirgojošs RaspberriPi cietais disks / instalējiet nepieciešamo programmatūru (izmantojot Ubuntu Linux)

Lejupielādēt "RASPBIAN JESSIE LITE"

Izveidojiet jauno cieto disku DashboardPI

Ievietojiet microSD datorā, izmantojot USB adapteri, un izveidojiet diska attēlu, izmantojot komandu dd

Atrodiet ievietoto microSD karti, izmantojot komandu df -h, atvienojiet to un izveidojiet diska attēlu ar komandu disk copy dd

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

$ umount /dev /sdb1

Uzmanību: pārliecinieties, ka komanda ir pilnīgi precīza, ar šo komandu varat sabojāt citus diskus

if = RASPBIAN JESSIE LITE attēla faila atrašanās vieta = jūsu microSD kartes atrašanās vieta

$ sudo dd bs = 4M, ja =/ceļš/uz/raspbian-jessie-lite.img no =/dev/sdb (piezīme: šajā gadījumā tas ir/dev/sdb,/dev/sdb1 bija esošs rūpnīcas nodalījums microSD) RaspberriPi iestatīšana

Ievietojiet jauno microSD karti avenes un ieslēdziet to, izmantojot monitoru, kas pievienots HDMI portam

Pieslēgties

lietotājs: pi pass: raspberry Drošības nolūkos mainiet sava konta paroli

sudo passwd pi Iespējot RaspberriPi papildu opcijas

sudo raspi-config Izvēlieties: 1 Izvērst failu sistēmu

9 Papildu opcijas

A2 resursdatora nosaukums mainiet to uz "NESRouter"

A4 SSH Iespējot SSH serveri

A7 I2C Iespējot i2c interfeisu Iespējojiet angļu/ASV tastatūru

sudo nano/etc/default/keyboard Mainiet šādu rindu: XKBLAYOUT = "us" Iestatiet vienkāršo direktoriju l komanda [pēc izvēles]

vi ~/.bashrc

pievienojiet šādu rindu:

pseidonīms l = 'ls -lh'

avots ~/.bashrc Labot VIM noklusējuma sintakses izcelšanu [pēc izvēles]

sudo vi/etc/vim/vimrc

norakstiet šādu rindu:

Pārstartējiet PI, lai iegūtu jaunākās izmaiņas

Atjauniniet vietējās laika joslas iestatījumus

sudo dpkg-reconfigure tzdata, izmantojot saskarni, izvēlieties savu laika joslu

2. darbība: izveidojiet WiFi piekļuves punktu

Lūdzu, ņemiet vērā: pirms tas kļūst par maršrutētāju, mēs pievienojam RaspberryPi esošam tīklam, izmantojot tā Ethernet portu, lai instalētu šādas paketes

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

Pievienojiet šādu rindu:

denyinterfaces wlan0 sudo vi/etc/network/interfaces

Rediģējiet sadaļu wlan0 tā, lai tā izskatās šādi:

auto lo iface lo inet loopback

iface eth0 inet rokasgrāmata

auto wlan0 iface wlan0 inet statiskā adrese 10.0.10.1 tīkla maska 255.255.255.0 tīkls 10.0.10.0 apraide 10.0.10.255

auto eth1 iface eth1 inet statiskā adrese 10.0.20.1 netmask 255.255.255.0 tīkls 10.0.20.0 apraide 10.0.20.255 Pārlādēt DHCP serveri un atmest eth0 un wlan0 savienojumu konfigurāciju

sudo pakalpojuma dhcpcd restartēšana

sudo ifdown eth0; sudo ifup wlan0

Konfigurējiet HOSTAPD (mainiet ssid un wpa_passphrase uz jūsu izvēlētajām vērtībām)

sudo vi /etc/hostapd/hostapd.conf

# Šis ir tā WiFi saskarnes nosaukums, kuru mēs konfigurējām virs interfeisa = wlan0

# Izmantojiet draiveri nl80211 kopā ar brcmfmac draivera draiveri = nl80211

# Šis ir tīkla nosaukums ssid = NintendoWiFi

# Izmantojiet 2,4 GHz joslu hw_mode = g

# Izmantojiet 6. kanāla kanālu = 6

# Iespējot 802.11n ieee80211n = 1

# Iespējot WMM wmm_enabled = 1

# Iespējojiet 40MHz kanālus ar 20ns apsardzes intervālu ht_capab = [HT40] [SHORT-GI-20] [DSSS_CCK-40]

# Pieņemt visas MAC adreses macaddr_acl = 0

# Izmantojiet WPA autentifikāciju auth_algs = 1

# Prasīt klientiem zināt tīkla nosaukumu ignore_broadcast_ssid = 0

# Izmantojiet WPA2 wpa = 2

# Izmantojiet iepriekš koplietotu atslēgu wpa_key_mgmt = WPA-PSK

# Tīkla ieejas frāze wpa_passphrase = parole

# Izmantojiet AES, nevis TKIP.

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

sudo vi/etc/default/hostapd

Atrodiet līniju

#DAEMON_CONF = "" un aizstājiet to ar

DAEMON_CONF = "/etc/hostapd/hostapd.conf" Konfigurēt DNSMASQ

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

sudo vi /etc/dnsmasq.conf

bind-interfaces # Saistieties ar saskarni, lai pārliecinātos, ka mēs nesūtām lietas citur serveris = 8.8.8.8 # Pārsūtīt DNS pieprasījumus uz Google DNS domēnam nepieciešams # Nepārsūtīt īsos vārdus bogus-priv # Nekad nepārsūtīt adreses -novirzītas adrešu vietas.

# Piešķirt IP adreses ar bezgalīgu nomas laiku (ierīces lietošanas statistikai) dhcp-range = wlan0, 10.0.10.100, 10.0.10.200, 255.255.255.0, 10.0.10.255, bezgalīgs dhcp-range = eth1, 10.0.20.100, 10.0. 20.200, 255.255.255.0, 10.0.20.255, bezgalīga IESTATĪT IPV4 PĀRSŪTĪŠANA

sudo vi /etc/sysctl.conf

[uncomment] net.ipv4.ip_forward = 1

Nekavējoties aktivizējiet to, izmantojot sudo sh -c "echo 1>/proc/sys/net/ipv4/ip_forward"

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

sudo iptables -A PĀRVEDUMS -i eth0 -o eth1 -m stāvoklis -valsts SAISTĪTA, IZVEIDOTA -j PIEŅEMT

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

sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --valsts SAISTĪTĀ, IZVEIDOTA -j ACCEPT

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

Saglabājiet iptables iestatījumus nākamajai atsāknēšanai

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

Izveidojiet ipv4 noteikumu failu (ar jaunu saturu)

sudo vi/lib/dhcpcd/dhcpcd-āķi/70-ipv4-nat

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

sudo pakalpojums hostapd start sudo pakalpojums dnsmasq start

sudo atsāknēšana

Statisku IP piešķiršana [pēc izvēles]

Ja vēlaties, lai jūsu tīkla saimniekiem būtu statisks ips, lūdzu, izmantojiet tālāk norādīto

Iegūstiet resursdatorus, kas pašlaik ir savienoti, izmantojot DHCP vi /var/lib/misc/dnsmasq.leases

Pievienojiet MAC adresi (no iepriekš minētās izejas) un IP adresi, kuru vēlaties tām piešķirt, lai pievienotu to sudo vi /etc/dnsmasq.conf

# main desktop dhcp-host = 12: 34: 56: 78: 9a: bc, 10.0.20.20 Piezīme. Tīkla saskarnei tiks piešķirta MAC adrese: 12: 34: 56: 78: 9a: bc uz IP adresi 10.0.20.20. Norādītajai IP adresei NAV jābūt norādītajā DHCP diapazonā, tikai tajā pašā apakštīklā. Mana galvenā darbvirsma atrodas apakštīklā eth1: 10.0.20.0, tāpēc es norādīju IP adresi 10.0.20.20.

UFW ugunsmūra pievienošana

sudo apt-get install ufw

Atļaut 22. portu publiskai lietošanai (attālai piekļuvei tīklam)

sudo ufw atļaut 22

Atļaut visus portus manā lokālajā tīklā

sudo ufw atļaut no 10.0.10.0/24 sudo ufw atļaut no 10.0.20.0/24

Atļaut tīmekļa portus ikvienam

sudo ufw atļaut 80

Atļaujiet drošus tīmekļa portus ikvienam

443

Iespējojiet UFW un pārbaudiet statusu

sudo ufw -piespiest spēku

sudo ufw statuss

Labojiet kļūdu ar UFW, kas netiek startēts

sudo su crontab -e

Pievienojiet šādu rindu: @reboot /bin /sleep 60; ufw -piespiest spēku

3. darbība. Nepieciešamie materiāli: vecais bojātais Nintendo

Nepieciešamie piederumi: Vecs salauzts Nintendo
Nepieciešamie piederumi: Vecs salauzts Nintendo

Vecs Nintendo korpuss no salauztas NES (noņemiet visu veco saturu korpusa iekšpusē, atstājot tikai ārējo rāmi, barošanas / atiestatīšanas pogas un kontroliera savienojumus)

4. darbība. Nepieciešamie materiāli: Raspberry Pi 3 B modelis

Nepieciešamie piederumi: Raspberry Pi 3 B modelis
Nepieciešamie piederumi: Raspberry Pi 3 B modelis

5. darbība. Nepieciešamie materiāli: 1,44 collu sērija: UART/I2C/SPI TFT LCD 128x128 displeja modulis

Nepieciešamie piederumi: 1.44
Nepieciešamie piederumi: 1.44
|

6. darbība. Nepieciešamie materiāli: 5V 0,1A mini ventilators Raspberry Pi

Nepieciešamie piederumi: 5V 0,1A mini ventilators Raspberry Pi
Nepieciešamie piederumi: 5V 0,1A mini ventilators Raspberry Pi

7. darbība. Nepieciešamie piederumi: Ugreen USB 2.0 līdz 10/100 Fast Ethernet LAN vadu tīkla adapteris

Nepieciešamie piederumi: Ugreen USB 2.0 līdz 10/100 Fast Ethernet LAN vadu tīkla adapteris
Nepieciešamie piederumi: Ugreen USB 2.0 līdz 10/100 Fast Ethernet LAN vadu tīkla adapteris

8. solis: būvniecība

Būvniecība
Būvniecība

Instalējiet NES iekšpusē

Izmantojot 3D printeri, izdrukājiet Digole displeja rāmi "NESPanel" mapē/konstrukcija/displeja rāmis/. [ja jums nav 3D printera, varat ar Dremel rīku smalki izgriezt kvadrātveida caurumu Digole displejam] pusē un barošanas/Ethernet un USB Ethernet kabeļi, lai iekļūtu caur aizmuguri.

9. solis: būvniecības turp

Būvniecības turp
Būvniecības turp

Atskrūvējiet augšējo labo melno paneli no NES un tīri izgrieziet pietiekami lielu kvadrātveida caurumu, lai uzstādītu digola displeju. Karstā līme pielīmējiet displeju, un tā augšpusē ir 3D drukāts rāmis "NESPanel".

10. solis: būvniecības turp

Būvniecības turp
Būvniecības turp

Uzstādiet RaspberryPi tukšā NES korpusa dibena vidū, piestipriniet ar līmi vai nelielu skrūvi caur dibenu. Izmantojot 270 omu rezistoru, pievienojiet NES "ieslēgšanas gaismas diodi" 5V un GND tapām Raspberry Pi (īss LED vads ir zeme). Pievienojiet mazo ventilatoru arī 5V un GND tapām, lai tas darbotos, kad iekārta ieslēdzas, pielīmējiet ventilatoru pret caurumu tā sānos.

11. darbība: Digole displeja pievienošana

Pievienojiet šādas tapas RaspberryPi tapām

VCC ir pievienots 3 V GND ir iezemēts DATI ir SDA CLOCK ir SCL Tagad jums vajadzētu redzēt ierīci savā i2cdetect komandā

i2cdetect -y 1 tam teksta režģī vajadzētu parādīties kā 27

12. solis: instalējiet tīkla uzraudzības rīkus un DB reģistrēšanu

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

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

Faila beigās pievienojiet šādu rindu: local all pi paroli sudo -i -u postgres

psql

izveidot lomu pi parole 'parole šeit';

mainīt lomu pi pieteikšanās;

mainīt lomu pi superlietotājs;

du

(jums vajadzētu redzēt savu PI lietotāju ar piešķirtajām atļaujām) izveidot datubāzi network_stats;

q

Izeja

psql -d network_stats

Izpildiet šādus vaicājumus:

CREATE TABLE traffic_per_minute (id sērija, laika zīmogs bez laika joslas 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 (laiks); Kopējiet šī projekta koda mapi “reģistrēšana” uz RPi mājas direktoriju

crontab -e

Pievienojiet šo rindiņu

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

13. darbība. Instalējiet satiksmes kopsavilkuma pārskatu (Cronjob darbojas ik pēc 5 minūtēm)

crontab -e

pievienojiet šādu rindu

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

14. darbība. Instalējiet informācijas paneļa ekrānu

Kopējiet šī projekta koda mapi "displejs" uz RPi mājas direktoriju

Palaidiet to šādi

$ python /home/pi/display/NESRouter.py Iestatiet displeja skriptu startēšanai

crontab -e

Pievienojiet šo rindiņu

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

Pārliecinieties, vai displejs sāk darboties pēc pārstartēšanas

sudo atsāknēšana

15. darbība. Instalējiet vietējās lietošanas/statistikas vietni [https://10.0.10.1]

Instalējiet vietējo lietošanas/statistikas vietni [https://10.0.10.1]

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

sudo apt-get instalēt apache2

sudo pakalpojuma apache2 restartēšana

Noņemt noklusējuma lapas

cd /var /www

sudo rm -rf html

Kopējiet mapi “webportāls” no šī projekta uz savu RPi mājas mapi un izveidojiet simbolu apache lietošanai

cd /var /www

sudo ln -s/mājas/pi/tīmekļa portāla html

cd/var/www/html

chmod +x *.py

sudo a2enmod cgi

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

Iespējot Python CGI skriptu

Pievienojiet taga iekšpusē

Opcijas +ExecCGI AddHandler cgi-script.py sudo pakalpojums apache2 restart

Tagad varat apmeklēt vietējo HTTP vietni [https://10.0.10.1]

Uzlabotas tīkla uzraudzības iestatīšana (izmantojot IPFM)

sudo apt-get update

sudo apt-get instalēt ipfm

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

sudo vi /etc/ipfm.conf

Izveidojiet ar šādu saturu:

# Globālie mainīgie

# IPFM var uzraudzīt tikai vienu ierīci. IERĪCE eth0

# GLOBAL LOGGING CONFIGURATION LOG

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

# žurnāls katru minūti DUMP KATRU 1 minūti

# Skaidra statistika katru dienu TĪRĪT KATRU 24 stundu KĀRTOT ATŠĶIRT Sudo pakalpojums ipfm start

IZVĒLES: izveidojiet savus Nintendo attēlus, lai tie tiktu parādīti displejā

Augšupielādējiet savu 128x128 failu uz šādu URL:

www.digole.com/tools/PicturetoC_Hex_convert…

Izvēlieties augšupielādējamo attēla failu, pievienojiet ekrānā izmēru (platums/augstums)

Nolaižamajā izvēlnē "Izmantot" atlasiet "256 krāsa krāsu OLED/LCD (1 baits/pikseļi)".

Iegūstiet sešstūra izvadi.

Pievienojiet heksadecimālo izvadi displeja/ uzbūves/ galvenes (.h) failam, pārējos izmantojiet kā sintakses vadlīnijas.

Iekļaujiet jauno failu failā digole.c #include myimage.h

Iekļaujiet savā komandā jaunu komandrindas āķi savā attēla failā. Piezīme: zemāk esošā komanda saka: zīmējiet attēlu 10 pikseļu pozīcijā virs 10 pikseļiem uz leju. Jūs varat mainīt to uz dažādām X, Y koordinātām, jūs varat arī mainīt vērtības 128, 128 uz jebkura izmēra jūsu jauno attēlu.

} cits if (strcmp (digoleCommand, "myimage") == 0) {drawBitmap256 (10, 10, 128, 128, & myimageVariableHere, 0); // myimageVariable Šeit ir definēts jūsu (.h) failā}

Tagad atjaunojiet (ignorējiet kļūdas) zemāk, lai jūsu jaunais attēls tiktu atveidots ar šādu komandu.

$./digole myimage Re-Building [Iekļauts] Digole displeja draiveris jūsu izvēles izmaiņām

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

Ieteicams: