Оглавление:
- Шаг 1. Установите необходимое программное обеспечение RaspberryPi
- Шаг 2: Создание точки доступа WiFi
- Шаг 3: Необходимые припасы: старая сломанная Nintendo
- Шаг 4: Необходимые расходные материалы: Raspberry Pi 3 Model B
- Шаг 5: Необходимые расходные материалы: 1,44 "Последовательный порт: UART / I2C / SPI TFT LCD 128x128 Дисплейный модуль
- Шаг 6: Необходимые расходные материалы: 5V 0.1A Mini Fan Raspberry Pi
- Шаг 7: Необходимые расходные материалы: Ugreen USB 2.0 - 10/100 Fast Ethernet Lan проводной сетевой адаптер
- Шаг 8: Строительство
- Шаг 9: Продолжение строительства
- Шаг 10: Продолжение строительства
- Шаг 11: Подключение дисплея Digole
- Шаг 12: Установите инструменты мониторинга сети и ведение журнала БД
- Шаг 13: Установите сводный отчет по трафику (запускается каждые 5 минут с помощью Cronjob)
- Шаг 14: Установите экран панели управления
- Шаг 15. Установите веб-сайт локального использования / статистики [http://10.0.10.1]
Видео: Маршрутизатор Nintendo Wifi: 17 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:54
Используя корпус системы Old Nintendo Entertainment, создайте высокофункциональный домашний маршрутизатор с помощью RaspberryPI 3!
Шаг 1. Установите необходимое программное обеспечение RaspberryPi
Прошивка жесткого диска RaspberriPi / установка необходимого программного обеспечения (с использованием Ubuntu Linux)
Скачать "РАСПБИАН ДЖЕССИ ЛАЙТ"
Создайте новый жесткий диск для DashboardPI
Вставьте microSD в свой компьютер через USB-адаптер и создайте образ диска с помощью команды dd
Найдите вставленную карту microSD с помощью команды df -h, отключите ее и создайте образ диска с помощью команды disk copy dd.
$ df -h / dev / sdb1 7,4 ГБ 32 КБ 7,4 ГБ 1% / media / XXX / 1234-5678
$ umount / dev / sdb1
Внимание: убедитесь, что команда полностью точна, вы можете повредить другие диски с помощью этой команды
if = расположение файла изображения RASPBIAN JESSIE LITE = расположение вашей карты microSD
$ sudo dd bs = 4M if = / path / to / raspbian-jessie-lite.img of = / dev / sdb (примечание: в данном случае это / dev / sdb, / dev / sdb1 был существующим заводским разделом на microSD) Настройка RaspberriPi
Вставьте новую карту microSD в raspberrypi и включите его с помощью монитора, подключенного к порту HDMI.
Авторизоваться
пользователь: pi pass: raspberry Измените пароль своей учетной записи в целях безопасности
sudo passwd pi Включить дополнительные параметры RaspberriPi
sudo raspi-config Выберите: 1 Развернуть файловую систему
9 Дополнительные параметры
Имя хоста A2 измените его на "NESRouter"
A4 SSH Включить SSH-сервер
A7 I2C Включить интерфейс i2c Включить английскую / американскую клавиатуру
sudo nano / etc / default / keyboard Измените следующую строку: XKBLAYOUT = "us" Установите простую команду каталога l [необязательно]
vi ~ /.bashrc
добавьте следующую строку:
псевдоним l = 'ls -lh'
source ~ /.bashrc Исправить подсветку синтаксиса VIM по умолчанию [необязательно]
Судо vi / и т. д. / vim / vimrc
раскомментируйте следующую строку:
синтаксис при перезагрузке PI, чтобы получить последние изменения
reboot - обновить настройки местного часового пояса
sudo dpkg-reconfigure tzdata выберите свой часовой пояс с помощью интерфейса
Шаг 2: Создание точки доступа WiFi
Обратите внимание, прежде чем он станет маршрутизатором, мы подключаем RaspberryPi к существующей сети через его порт Ethernet, чтобы установить следующие пакеты.
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
Добавьте следующую строку:
denyinterfaces wlan0 sudo vi / etc / network / interfaces
Отредактируйте раздел wlan0 так, чтобы он выглядел так:
auto lo iface lo inet loopback
iface eth0 inet руководство
auto wlan0 iface wlan0 inet статический адрес 10.0.10.1 маска сети 255.255.255.0 сеть 10.0.10.0 широковещательная передача 10.0.10.255
auto eth1 iface eth1 inet static address 10.0.20.1 netmask 255.255.255.0 network 10.0.20.0 broadcast 10.0.20.255 Перезагрузите DHCP-сервер и откажитесь от конфигурации для подключений eth0 и wlan0
sudo service dhcpcd перезапуск
sudo ifdown eth0; sudo ifup wlan0
Настройте HOSTAPD (измените ssid и wpa_passphrase на значения по вашему выбору)
sudo vi /etc/hostapd/hostapd.conf
# Это имя интерфейса WiFi, который мы настроили выше interface = wlan0
# Используйте драйвер nl80211 с драйвером brcmfmac driver = nl80211
# Это имя сети ssid = NintendoWiFi
# Использовать диапазон 2,4 ГГц hw_mode = g
# Использовать канал 6 channel = 6
# Включить 802.11n ieee80211n = 1
# Включить WMM wmm_enabled = 1
# Включить каналы 40 МГц с защитным интервалом 20 нс ht_capab = [HT40] [SHORT-GI-20] [DSSS_CCK-40]
# Принимать все MAC-адреса macaddr_acl = 0
# Использовать аутентификацию WPA auth_algs = 1
# Требовать, чтобы клиенты знали имя сети ignore_broadcast_ssid = 0
# Использовать WPA2 wpa = 2
# Используйте общий ключ wpa_key_mgmt = WPA-PSK
# Сетевая кодовая фраза wpa_passphrase = пароль
# Используйте AES вместо TKIP rsn_pairwise = CCMP Мы можем проверить, работает ли он на данном этапе, запустив (но еще не имея полного подключения к Интернету):
sudo / usr / sbin / hostapd /etc/hostapd/hostapd.conf
Судо vi / и т. д. / по умолчанию / hostapd
Найдите линию
# DAEMON_CONF = "" и замените его на
DAEMON_CONF = "/ etc / hostapd / hostapd.conf" Настроить DNSMASQ
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo vi /etc/dnsmasq.conf
bind-interfaces # Выполните привязку к интерфейсу, чтобы убедиться, что мы не отправляем что-либо в другое место server = 8.8.8.8 # Перенаправлять DNS-запросы в домен Google DNS, необходимый # Не пересылать короткие имена bogus-priv # Никогда не пересылать адреса в non -маршрутизируемые адресные пространства.
# Назначение IP-адресов с бесконечным сроком аренды (для статистики использования устройства) 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, бесконечное НАСТРОЙКА ПЕРЕАДРЕСАЦИИ IPV4
sudo vi /etc/sysctl.conf
[раскомментировать] net.ipv4.ip_forward = 1
Немедленно активируйте его с помощью 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 state --state RELATED, ESTABLISHED -j ACCEPT
sudo iptables -A ВПЕРЕД -i eth1 -o eth0 -j ПРИНЯТЬ
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED, ESTABLISHED -j ACCEPT
sudo iptables -A ВПЕРЕД -i wlan0 -o eth0 -j ПРИНЯТЬ
Сохраните настройки iptables для следующей перезагрузки
sudo sh -c "iptables-save> /etc/iptables.ipv4.nat"
Создать файл правил ipv4 (с новым содержимым)
Судо vi / lib / dhcpcd / dhcpcd-крючки / 70-ipv4-нат
iptables-restore </etc/iptables.ipv4.nat Перезапустить службы
sudo service hostapd start sudo service dnsmasq start
перезагрузка sudo
Назначение статических IP-адресов [необязательно]
Если вы хотите, чтобы хосты в вашей сети имели статические IP-адреса, используйте следующие
Получите узлы, подключенные в настоящее время через DHCP vi /var/lib/misc/dnsmasq.leases
Добавьте MAC-адрес (из вывода выше) и IP-адрес, который вы хотите назначить для sudo vi /etc/dnsmasq.conf
# main desktop dhcp-host = 12: 34: 56: 78: 9a: bc, 10.0.20.20 Примечание: это назначит сетевой интерфейс с MAC-адресом: 12: 34: 56: 78: 9a: bc IP-адресу 10.0.20.20. Указанный IP-адрес НЕ обязательно должен находиться в указанном диапазоне DHCP, просто в той же подсети. Мой основной рабочий стол выше находится в подсети eth1: 10.0.20.0, поэтому я дал ему IP-адрес 10.0.20.20.
Добавление межсетевого экрана UFW
sudo apt-get install ufw
Разрешить порт 22 для общего использования (для удаленного доступа к сети)
sudo ufw allow 22
Разрешить все порты в моей локальной сети
sudo ufw allow с 10.0.10.0/24 sudo ufw allow с 10.0.20.0/24
Разрешить веб-порты всем
sudo ufw разрешить 80
Разрешить безопасные веб-порты всем
sudo ufw разрешить 443
Включите UFW и проверьте статус
sudo ufw --force enable
sudo ufw статус
Исправить ОШИБКУ, при которой UFW не запускается при запуске
sudo su crontab -e
Добавьте следующую строку: @reboot / bin / sleep 60; ufw --force enable
Шаг 3: Необходимые припасы: старая сломанная Nintendo
Старый чехол Nintendo из сломанной NES (удалите все старое содержимое внутри корпуса, оставив только внешнюю рамку, кнопки питания / сброса и подключения контроллера)
Шаг 4: Необходимые расходные материалы: Raspberry Pi 3 Model B
Шаг 5: Необходимые расходные материалы: 1,44 "Последовательный порт: UART / I2C / SPI TFT LCD 128x128 Дисплейный модуль
Шаг 6: Необходимые расходные материалы: 5V 0.1A Mini Fan Raspberry Pi
Шаг 7: Необходимые расходные материалы: Ugreen USB 2.0 - 10/100 Fast Ethernet Lan проводной сетевой адаптер
Шаг 8: Строительство
Установить внутри NES
С помощью 3D-принтера распечатайте рамку Digole Display "NESPanel" в папке / construction / display-frame /. [если у вас нет 3D-принтера, вы можете аккуратно вырезать квадратное отверстие для дисплея Digole с помощью инструмента Dremel] Вырежьте следующие отверстия сзади и сбоку корпуса, чтобы маленький вентилятор можно было закрепить на корпусе. сбоку, а также кабели питания / Ethernet и USB-кабели Ethernet, чтобы войти через заднюю часть.
Шаг 9: Продолжение строительства
Отвинтите верхнюю правую черную панель от NES и аккуратно вырежьте достаточно большое квадратное отверстие, чтобы установить ваш диголь-дисплей. Приклейте дисплей горячим способом с помощью 3D-печатной рамки «NESPanel» поверх него.
Шаг 10: Продолжение строительства
Установите RaspberryPi в середине нижней части пустого корпуса NES, закрепите с помощью клея или маленького винта через дно. Используя резистор на 270 Ом, подключите «светодиод включения» NES к контактам 5V и GND на Raspberry Pi (короткий светодиодный провод - это земля). Подключите небольшой вентилятор к контактам 5V и GND, чтобы он работал при запуске устройства, приклейте вентилятор к отверстию сбоку для него.
Шаг 11: Подключение дисплея Digole
Подключите следующие контакты к контактам на RaspberryPi.
VCC подключен к 3v GND - это земля DATA - SDA CLOCK - SCL Теперь вы должны увидеть устройство в своей команде i2cdetect
i2cdetect -y 1 он должен отображаться в текстовой сетке как 27
Шаг 12: Установите инструменты мониторинга сети и ведение журнала БД
sudo apt-get install ifstat memcached python-memcache postgresql postgresql-contrib python-psycopg2
sudo vi /etc/postgresql/9.4/main/pg_hba.conf
Добавьте в конец файла следующую строку: local all pi password sudo -i -u postgres
psql
создать пароль для роли pi 'пароль здесь';
изменить логин роли pi;
изменить роль pi суперпользователя;
du
(вы должны увидеть своего пользователя PI с предоставленными разрешениями) create database network_stats;
q
выход
psql -d network_stats
Выполните следующие запросы:
СОЗДАТЬ ТАБЛИЦУ traffic_per_minute (серийный идентификатор, временная метка без часового пояса NOT NULL, eth0_down real, eth0_up real, eth1_down real, eth1_up real, wan0_down real, wan0_up real);
СОЗДАТЬ УНИКАЛЬНЫЙ ИНДЕКС time_idx ON traffic_per_minute (время); Скопируйте папку "logging" кода из этого проекта в домашний каталог вашего RPi.
crontab -e
Добавить эту строку
@reboot / bin / sleep 60; nohup python /home/pi/logging/networkUsage.py> / dev / null 2> & 1
Шаг 13: Установите сводный отчет по трафику (запускается каждые 5 минут с помощью Cronjob)
crontab -e
добавьте следующую строку
* / 5 * * * * питон /home/pi/logging/trafficSummary.py
Шаг 14: Установите экран панели управления
Скопируйте "отображаемую" папку кода из этого проекта в домашний каталог вашего RPi.
Запустите его следующим образом
$ python /home/pi/display/NESRouter.py Настроить сценарий отображения для запуска при запуске
crontab -e
Добавить эту строку
@reboot nohup python /home/pi/display/NESRouter.py> / dev / null 2> & 1
Убедитесь, что дисплей начинает работать после перезагрузки
перезагрузка sudo
Шаг 15. Установите веб-сайт локального использования / статистики [https://10.0.10.1]
Установите локальный веб-сайт использования / статистики [https://10.0.10.1]
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install apache2
sudo service apache2 перезапуск
Удалить страницы по умолчанию
cd / var / www
sudo rm -rf html
Скопируйте папку webportal из этого проекта в свою домашнюю папку на RPi и создайте символическую ссылку для использования 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
Включение сценариев Python CGI
Добавить внутри тега
Параметры + ExecCGI AddHandler cgi-script.py sudo service apache2 restart
Теперь вы можете посетить локальный HTTP-сайт [https://10.0.10.1]
Настроить расширенный мониторинг сети (через IPFM)
sudo apt-get update
sudo apt-get install ipfm
sudo mv /etc/ipfm.conf /etc/ipfm.conf-bak
sudo vi /etc/ipfm.conf
Создайте со следующим содержимым:
# Глобальные переменные
# IPFM может контролировать только одно устройство. УСТРОЙСТВО eth0
# GLOBAL LOGGING CONFIGURATION LOG
ИМЯ ФАЙЛА "/ var / log / ipfm /% Y_% d_% m /% H_% M"
# журнал каждую минуту DUMP КАЖДУЮ 1 минуту
# очищать статистику каждый день ОЧИЩАТЬ КАЖДЫЕ 24 часа СОРТИРОВАТЬ В РАЗРЕШЕНИИ sudo service ipfm start
ДОПОЛНИТЕЛЬНО: создание собственных изображений Nintendo для отображения на дисплее
Загрузите свой собственный файл 128x128 по следующему URL-адресу:
www.digole.com/tools/PicturetoC_Hex_convert…
Выберите файл изображения для загрузки, добавьте размер, который вы хотите, чтобы он был на экране (ширина / высота)
В раскрывающемся списке «Используется для» выберите «256 цветов для цветных OLED / ЖК-дисплеев (1 байт / пиксель)».
Получите шестнадцатеричный вывод.
Добавьте шестнадцатеричный вывод в файл отображения / сборки / заголовка (.h), а остальные используйте в качестве руководств по синтаксису.
Включите новый файл в файл digole.c #include myimage.h
Включите новый обработчик командной строки к вашему файлу изображения в. Примечание: команда ниже говорит, что нарисуйте изображение в позиции 10 пикселей на 10 пикселей вниз. Вы можете изменить его на другие координаты X, Y, вы также можете изменить значения 128, 128 на любой размер вашего нового изображения.
} else if (strcmp (digoleCommand, "myimage") == 0) {drawBitmap256 (10, 10, 128, 128, & myimageVariableHere, 0); // myimageVariableHere определена в вашем (.h) файле}
Теперь перестройте (игнорируйте ошибки) ниже, чтобы ваше новое изображение визуализировалось с помощью следующей команды.
$./digole myimage Re-Building [Включено] Драйвер дисплея Digole для дополнительных изменений
$ cd display / build $ gcc digole.c $ mv a.out../../digole $ chmod + x../../digole
Рекомендуемые:
Безопасный WIFI-маршрутизатор - защита и конфиденциальность от вирусов, вредоносных программ и программ-вымогателей: 5 шагов
Безопасный WIFI-маршрутизатор - Защита и конфиденциальность от вирусов, вредоносных программ и программ-вымогателей: недорогая защита конечных точек с использованием RaspBerryPI 4 и открытого исходного кода. Блокирует следующее ДО того, как они достигнут вашего компьютера или телефона: Вирусы вредоносных программ RansomWare Также обеспечивает: Родительский контроль веб-сайтов для взрослых / ненависти Сохраняет вашу конфиденциальность через Ad
Как расширить сигнал NVR (повторитель IP-камеры, сетевой коммутатор и WiFi-маршрутизатор / повторитель): 5 шагов
Как расширить сигнал сетевого видеорегистратора (повторитель IP-камеры, сетевой коммутатор и WiFi-маршрутизатор / повторитель): в этой инструкции мы покажем вам, как расширить сигнал сетевого видеорегистратора, используя: 1. Функция встроенного повторителя в IP-камере или 2. Сетевой коммутатор или 3. Wi-Fi роутер
Raspberry Pi как полностью беспроводной маршрутизатор: 5 шагов
Raspberry Pi как полностью беспроводной маршрутизатор: эта инструкция предназначена для создания беспроводного маршрутизатора из Raspberry Pi и беспроводного адаптера. Ни одна из этих работ не является оригинальной, просто собрана вместе после нескольких сбоев. Надеюсь, это поможет. Мои источники: https: //howtoraspberrypi.com/create-a-wi-fi-hotspo
Беспроводной домашний маршрутизатор с аналоговым измерителем использования: 5 шагов (с изображениями)
Беспроводной домашний маршрутизатор с аналоговым измерителем использования: я вырос на лодках и вокруг них, занимался сборкой ткацких станков и панелей управления, и у меня есть коллекция манометров и приборов. циферблаты, которые обычно можно найти на небольших морских дизельных двигателях. Сегодня я работаю дизайнером, создаю интерфейсы для сетей
Выходить в Интернет без присмотра: Tor (луковый маршрутизатор): 4 шага (с изображениями)
Выходите в Интернет без присмотра: Tor (Луковый маршрутизатор): когда вы выходите в Интернет, вы оставляете следы повсюду. Вы можете общаться с друзьями в чате, проверять веб-сайты или загружать музыку. Если вы живете в стране, где шпионы подглядывают за тем, что обычные граждане делают в сети (например, гм, U