Mục lục:

Bộ định tuyến Wi-Fi Nintendo: 17 bước (có hình ảnh)
Bộ định tuyến Wi-Fi Nintendo: 17 bước (có hình ảnh)

Video: Bộ định tuyến Wi-Fi Nintendo: 17 bước (có hình ảnh)

Video: Bộ định tuyến Wi-Fi Nintendo: 17 bước (có hình ảnh)
Video: Tìm hiểu về thiết bị chia mạng Switch 2024, Tháng mười một
Anonim
Bộ định tuyến Wi-Fi Nintendo
Bộ định tuyến Wi-Fi Nintendo

Sử dụng vỏ hệ thống Nintendo Entertainment cũ, sản xuất bộ định tuyến gia đình có chức năng cao bằng RaspberryPI 3!

Bước 1: Cài đặt phần mềm RaspberryPi cần thiết

Nhấp nháy Đĩa cứng RaspberriPi / Cài đặt Phần mềm Yêu cầu (Sử dụng Ubuntu Linux)

Tải xuống "RASPBIAN JESSIE LITE"

Tạo đĩa cứng mới của bạn cho DashboardPI

Cắm thẻ nhớ microSD vào máy tính của bạn qua bộ điều hợp USB và tạo ảnh đĩa bằng lệnh dd

Xác định vị trí thẻ nhớ microSD đã lắp của bạn thông qua lệnh df -h, ngắt kết nối và tạo hình ảnh đĩa bằng lệnh đĩa sao chép đĩa dd

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

$ umount / dev / sdb1

Thận trọng: đảm bảo lệnh hoàn toàn chính xác, bạn có thể làm hỏng các đĩa khác bằng lệnh này

if = location of RASPBIAN JESSIE LITE image file of = location of your microSD card

$ sudo dd bs = 4M if = / path / to / raspbian-jessie-lite.img of = / dev / sdb (lưu ý: trong trường hợp này, đó là / dev / sdb, / dev / sdb1 là một phân vùng nhà máy hiện có trên microSD) Thiết lập RaspberriPi của bạn

Cắm thẻ microSD mới của bạn vào raspberrypi và bật nguồn bằng màn hình được kết nối với cổng HDMI

Đăng nhập

user: pi pass: raspberry Thay đổi mật khẩu tài khoản của bạn để bảo mật

sudo passwd pi Bật Tùy chọn Nâng cao RaspberriPi

sudo raspi-config Chọn: 1 Mở rộng hệ thống tệp

9 Tùy chọn Nâng cao

Tên máy chủ A2 thay đổi nó thành "NESRouter"

A4 SSH Bật máy chủ SSH

A7 I2C Bật giao diện i2c Bật bàn phím tiếng Anh / Mỹ

sudo nano / etc / default / keyboard Thay đổi dòng sau: XKBLAYOUT = "us" Thiết lập lệnh l thư mục đơn giản [tùy chọn]

vi ~ /.bashrc

thêm dòng sau:

bí danh l = 'ls -lh'

source ~ /.bashrc Sửa lỗi tô sáng cú pháp mặc định của VIM [tùy chọn]

sudo vi / etc / vim / vimrc

bỏ ghi chú dòng sau:

cú pháp trên Khởi động lại PI của bạn để nhận những thay đổi mới nhất

khởi động lạiCập nhật cài đặt múi giờ địa phương

sudo dpkg-config lại tzdata chọn múi giờ của bạn bằng giao diện

Bước 2: Tạo Điểm truy cập WiFi

Xin lưu ý, trước khi đây trở thành bộ định tuyến, chúng tôi đang cắm RaspberryPi vào mạng hiện có thông qua cổng ethernet của nó để cài đặt các gói sau

sudo apt-get update && sudo apt-get -y nâng cấp

sudo apt-get install dnsmasq hostapd vim

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

sudo vi /etc/dhcpcd.conf

Thêm dòng sau:

từ chối các giao diện wlan0 sudo vi / etc / network / interface

Chỉnh sửa phần wlan0 để nó trông giống như sau:

auto lo iface lo inet loopback

Hướng dẫn sử dụng iface eth0 inet

auto wlan0 iface wlan0 inet static address 10.0.10.1 netmask 255.255.255.0 network 10.0.10.0 broadcast 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 Tải lại DHCP Server và trả lại cấu hình cho các kết nối eth0 và wlan0

khởi động lại dịch vụ sudo dhcpcd

sudo ifdown eth0; sudo ifup wlan0

Định cấu hình HOSTAPD (Thay đổi ssid và wpa_passphrase thành các giá trị bạn chọn)

sudo vi /etc/hostapd/hostapd.conf

# Đây là tên của giao diện WiFi mà chúng tôi đã định cấu hình ở trên interface = wlan0

# Sử dụng trình điều khiển nl80211 với trình điều khiển trình điều khiển brcmfmac = nl80211

# Đây là tên của mạng ssid = NintendoWiFi

# Sử dụng băng tần 2.4GHz hw_mode = g

# Sử dụng kênh 6 kênh = 6

# Bật 802.11n ieee80211n = 1

# Bật WMM wmm_enabled = 1

# Bật các kênh 40MHz với khoảng thời gian bảo vệ 20 giây ht_capab = [HT40] [SHORT-GI-20] [DSSS_CCK-40]

# Chấp nhận tất cả địa chỉ MAC macaddr_acl = 0

# Sử dụng xác thực WPA auth_algs = 1

# Yêu cầu khách hàng biết tên mạng ignore_broadcast_ssid = 0

# Sử dụng WPA2 wpa = 2

# Sử dụng khóa chia sẻ trước wpa_key_mgmt = WPA-PSK

# Cụm mật khẩu mạng wpa_passphrase = mật khẩu

# Sử dụng AES, thay vì TKIP rsn_pairwise = CCMP Chúng tôi có thể kiểm tra xem nó có hoạt động ở giai đoạn này hay không bằng cách chạy (nhưng chưa có kết nối internet đầy đủ):

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

sudo vi / etc / default / hostapd

Tìm dòng

# DAEMON_CONF = "" và thay thế nó bằng

DAEMON_CONF = "/ etc / hostapd / hostapd.conf" Định cấu hình DNSMASQ

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

sudo vi /etc/dnsmasq.conf

bind-interface # Liên kết với giao diện để đảm bảo rằng chúng tôi không gửi những thứ khác đến máy chủ = 8.8.8.8 # Chuyển tiếp các yêu cầu DNS tới miền Google DNS cần thiết # Không chuyển tiếp các tên ngắn bogus-priv # Không bao giờ chuyển tiếp các địa chỉ không phải -không gian địa chỉ được định tuyến.

# Gán địa chỉ IP với thời gian thuê vô hạn (đối với thống kê sử dụng thiết bị) dhcp-range = wlan0, 10.0.10.100, 10.0.10.200, 255.255.255.0, 10.0.10.255, dhcp-range vô hạn = eth1, 10.0.20.100, 10.0. 20.200, 255.255.255.0, 10.0.20.255, THIẾT LẬP vô hạn IPV4 TIẾN BỘ

sudo vi /etc/sysctl.conf

[bỏ ghi chú] net.ipv4.ip_osystem = 1

Kích hoạt nó ngay lập tức với sudo sh -c "echo 1> / proc / sys / net / ipv4 / ip_osystem"

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

sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state LIÊN QUAN, THÀNH LẬP -j CHẤP NHẬN

sudo iptables -A FORWARD -i eth1 -o eth0 -j CHẤP NHẬN

sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state LIÊN QUAN, THÀNH LẬP -j CHẤP NHẬN

sudo iptables -A FORWARD -i wlan0 -o eth0 -j CHẤP NHẬN

Lưu cài đặt iptables cho lần khởi động lại tiếp theo

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

Tạo tệp quy tắc ipv4 (với nội dung mới)

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

khởi động lại sudo

Chỉ định IP tĩnh [Tùy chọn]

Nếu bạn muốn các máy chủ trên mạng của mình có các ips tĩnh, vui lòng sử dụng cách sau

Yêu cầu các máy chủ hiện được kết nối qua DHCP vi /var/lib/misc/dnsmasq.leases

Thêm Địa chỉ MAC (từ đầu ra ở trên) và địa chỉ IP bạn muốn gán chúng cho sudo vi /etc/dnsmasq.conf

# main desktop dhcp-host = 12: 34: 56: 78: 9a: bc, 10.0.20.20 Lưu ý: Thao tác này sẽ gán giao diện mạng với Địa chỉ MAC: 12: 34: 56: 78: 9a: bc thành địa chỉ IP 10.0.20,20. Địa chỉ IP được liệt kê KHÔNG nhất thiết phải nằm trong dải DHCP đã cho, chỉ trên cùng một mạng con. Máy tính để bàn chính của tôi ở trên nằm trên mạng con eth1: 10.0.20.0, vì vậy tôi đã cấp cho nó Địa chỉ IP là 10.0.20.20.

Thêm tường lửa UFW

sudo apt-get install ufw

Cho phép cổng 22 sử dụng chung (để truy cập mạng từ xa)

sudo ufw allow 22

Cho phép tất cả các cổng trên mạng cục bộ của tôi

sudo ufw cho phép từ 10.0.10.0/24 sudo ufw cho phép từ 10.0.20.0/24

Cho phép mọi người sử dụng cổng web

sudo ufw allow 80

Cho phép mọi người sử dụng cổng web an toàn

sudo ufw allow 443

Bật UFW và kiểm tra trạng thái

sudo ufw --force enable

tình trạng sudo ufw

Sửa lỗi BUG với UFW không khởi động khi khởi động

sudo su crontab -e

Thêm dòng sau: @reboot / bin / sleep 60; ufw - bắt buộc kích hoạt

Bước 3: Nguồn cung cấp cần thiết: Nintendo cũ bị hỏng

Nguồn cung cấp cần thiết: Nintendo cũ bị hỏng
Nguồn cung cấp cần thiết: Nintendo cũ bị hỏng

Vỏ Nintendo cũ từ một chiếc NES bị hỏng (loại bỏ tất cả nội dung cũ bên trong vỏ, chỉ để lại khung bên ngoài, các nút nguồn / đặt lại và kết nối bộ điều khiển)

Bước 4: Nguồn cung cấp cần thiết: Raspberry Pi 3 Model B

Nguồn cung cấp cần thiết: Raspberry Pi 3 Model B
Nguồn cung cấp cần thiết: Raspberry Pi 3 Model B

Bước 5: Nguồn cung cấp cần thiết: 1.44 "Serial: UART / I2C / SPI TFT LCD 128x128 Mô-đun hiển thị

Nguồn cung cấp cần thiết: 1,44
Nguồn cung cấp cần thiết: 1,44
Nguồn cung cấp cần thiết: 1,44
Nguồn cung cấp cần thiết: 1,44

Bước 6: Nguồn cung cấp cần thiết: Quạt mini 5V 0.1A Raspberry Pi

Nguồn cung cấp cần thiết: Quạt mini 5V 0.1A Raspberry Pi
Nguồn cung cấp cần thiết: Quạt mini 5V 0.1A Raspberry Pi

Bước 7: Nguồn cung cấp cần thiết: Bộ điều hợp mạng Lan có dây Ugreen USB 2.0 to 10/100 Fast Ethernet Lan

Nguồn cung cấp cần thiết: Bộ điều hợp mạng Lan có dây Ugreen USB 2.0 đến 10/100 Fast Ethernet
Nguồn cung cấp cần thiết: Bộ điều hợp mạng Lan có dây Ugreen USB 2.0 đến 10/100 Fast Ethernet

Bước 8: Thi công

Sự thi công
Sự thi công

Cài đặt bên trong NES

Sử dụng máy in 3D in khung Digole Display "NESPanel" trong thư mục / build / display-frame /. [nếu bạn không có máy in 3D, bạn có thể khéo léo khoét một lỗ vuông cho Màn hình Digole bằng công cụ Dremel] Cắt các lỗ sau để mở ở mặt sau và mặt bên của vỏ máy để cho phép gắn chặt quạt nhỏ trên bên cạnh và cáp nguồn / ethernet và USB ethernet để đi vào phía sau.

Bước 9: Thi công Cont

Xây dựng Cont
Xây dựng Cont

Tháo bảng điều khiển màu đen trên cùng bên phải khỏi NES và cắt sạch một lỗ vuông đủ lớn để gắn màn hình digole của bạn. Dán keo nóng vào vị trí màn hình bằng khung in 3D "NESPanel" ở phía trên của màn hình.

Bước 10: Thi công Cont

Xây dựng Cont
Xây dựng Cont

Gắn RaspberryPi vào giữa đáy của hộp NES trống, gắn chặt bằng keo hoặc vít nhỏ qua đáy. Sử dụng điện trở 270 ohm, kết nối "đèn LED bật nguồn" của NES với chân 5V và GND trong Raspberry Pi (dây dẫn ngắn LED là mặt đất). Kết nối quạt nhỏ với các chân 5V và GND cũng như để nó chạy khi thiết bị khởi động, hãy dán quạt vào lỗ bên cạnh cho nó.

Bước 11: Kết nối màn hình Digole

Kết nối các chân sau với các chân trên RaspberryPi

VCC được kết nối với 3v GND là nối đất DATA là SDA CLOCK là SCL Bây giờ bạn sẽ thấy thiết bị trong lệnh i2cdetect của mình

i2cdetect -y 1 nó sẽ hiển thị trong lưới văn bản là 27

Bước 12: Cài đặt Công cụ giám sát mạng & Ghi nhật ký DB

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

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

Thêm dòng sau vào cuối tệp: cục bộ tất cả mật khẩu pi sudo -i -u postgres

psql

tạo mật khẩu vai trò 'mật khẩu ở đây';

thay đổi vai trò đăng nhập pi;

thay đổi vai trò siêu người dùng pi;

du

(bạn sẽ thấy người dùng PI của mình với các quyền được cấp) tạo số liệu thống kê mạng cơ sở dữ liệu;

NS

lối ra

psql -d network_stats

Chạy các truy vấn sau:

TẠO BẢNG traffic_per_minute (id serial, dấu thời gian không có múi giờ KHÔNG NULL, eth0_down real, eth0_up real, eth1_down real, eth1_up real, wan0_down real, wan0_up real);

TẠO INDEX time_idx DUY NHẤT TRÊN traffic_per_minute (time); Sao chép mã thư mục "ghi nhật ký" từ dự án này vào thư mục chính của RPi của bạn

crontab -e

Thêm dòng này

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

Bước 13: Cài đặt Báo cáo tóm tắt lưu lượng (chạy 5 phút một lần bởi Cronjob)

crontab -e

thêm dòng sau

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

Bước 14: Cài đặt màn hình bảng điều khiển

Sao chép thư mục "hiển thị" mã từ dự án này vào thư mục chính của RPi của bạn

Chạy nó như sau

$ python /home/pi/display/NESRouter.py Thiết lập tập lệnh hiển thị để chạy khi khởi động

crontab -e

Thêm dòng này

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

Xác minh rằng màn hình bắt đầu hoạt động khi khởi động lại

khởi động lại sudo

Bước 15: Cài đặt Trang web thống kê / sử dụng cục bộ [https://10.0.10.1]

Cài đặt trang web thống kê / sử dụng cục bộ [https://10.0.10.1]

sudo apt-get update && sudo apt-get nâng cấp -y

sudo apt-get install apache2

khởi động lại dịch vụ sudo apache2

Xóa các trang mặc định

cd / var / www

sudo rm -rf html

Sao chép thư mục 'webportal' từ dự án này vào thư mục chính trên RPi của bạn và tạo liên kết biểu tượng cho apache để sử dụng

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

Bật Python CGI Scripting

Thêm vào bên trong thẻ

Tùy chọn + ExecCGI AddHandler cgi-script.py sudo service apache2 khởi động lại

Bây giờ bạn có thể truy cập trang web HTTP cục bộ [https://10.0.10.1]

Thiết lập giám sát mạng nâng cao (qua IPFM)

sudo apt-get cập nhật

sudo apt-get install ipfm

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

sudo vi /etc/ipfm.conf

Tạo với các nội dung sau:

# Biến toàn cục

# IPFM chỉ có thể giám sát một thiết bị. THIẾT BỊ eth0

# NHẬT KÝ CẤU HÌNH ĐĂNG NHẬP TOÀN CẦU

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

# nhật ký mỗi phút DUMP MỖI 1 phút

# số liệu thống kê rõ ràng mỗi ngày XÓA MỖI 24 giờ SẮP XẾP ĐỂ GIẢI QUYẾT Dịch vụ sudo ipfm bắt đầu

TÙY CHỌN: Tạo hình ảnh Nintendo của riêng bạn để hiển thị trên màn hình

Tải tệp 128x128 của riêng bạn lên URL sau:

www.digole.com/tools/PicturetoC_Hex_convert…

Chọn tệp hình ảnh của bạn để tải lên, thêm kích thước bạn muốn trên màn hình (Chiều rộng / Chiều cao)

Chọn "256 màu cho OLED / LCD màu (1 byte / pixel)" trong menu thả xuống "Dùng cho"

Nhận đầu ra hex.

Thêm đầu ra hex vào tệp hiển thị / xây dựng / tiêu đề (.h), sử dụng các tệp khác làm hướng dẫn cho cú pháp.

Bao gồm tệp mới trong tệp digole.c #include myimage.h

Bao gồm một móc dòng lệnh mới vào tệp hình ảnh của bạn trong. Lưu ý: lệnh bên dưới nói rằng vẽ hình ảnh của bạn ở vị trí 10 pixel trên 10 pixel xuống. Bạn có thể thay đổi nó thành các tọa độ X, Y khác nhau, bạn cũng có thể thay đổi các giá trị 128, 128 thành bất kỳ kích thước nào mà hình ảnh mới của bạn thực sự là.

} else if (strcmp (digoleCommand, "myimage") == 0) {drawBitmap256 (10, 10, 128, 128, & myimageVariableHere, 0); // myimageVariableHere được định nghĩa trong tệp (.h) của bạn}

Bây giờ hãy xây dựng lại (bỏ qua các lỗi) bên dưới để hình ảnh mới của bạn hiển thị bằng lệnh sau.

$./digole myimage Tái tạo [Đã bao gồm] Trình điều khiển hiển thị Digole cho các thay đổi tùy chọn của bạn

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

Bước 16: Hoàn thành

Đề xuất: