Ngày nay, có vẻ như mọi thiết bị đều hỗ trợ WiFi, nhưng thực tế không phải tất cả các thiết bị đều có khả năng kết nối Internet không dây. Đây là lúc Raspberry Pi phát huy tác dụng. Bạn có thể biến biến Raspberry Pi thành WiFi Bridge.
Nếu bạn muốn sử dụng lại máy tính để bàn cũ, chỉ có Ethernet và cần một cách nhanh chóng, dễ dàng để chuyển đổi tín hiệu WiFi thành kết nối Ethernet, bạn có thể sử dụng Raspberry Pi.
WiFi Bridge là gì? Tại sao bạn nên biến Raspberry Pi của mình thành WiFi Bridge?
WiFi Bridge kết nối không dây với mạng của bạn và định tuyến lại tín hiệu đó thành kết nối có dây. Khi bạn biến Raspberry Pi thành một bridge như vậy, bạn cho phép mọi thiết bị chỉ có Ethernet truy cập vào mạng thông qua cáp Ethernet được kết nối với Raspberry Pi. Cấu hình này đặc biệt hữu ích cho các thiết bị thiếu khả năng WiFi vốn có.
Dưới đây là một số ứng dụng thực tế cho cấu hình này:
- Máy tính để bàn: Nhiều máy tính để bàn cũ thiếu WiFi tích hợp. Sử dụng Raspberry Pi để kết nối không dây các máy tính này với mạng của bạn và loại bỏ nhu cầu kết nối Ethernet trực tiếp giữa máy tính và router của bạn.
- Camera an ninh: Đối với các camera an ninh chỉ có cổng Ethernet, Raspberry Pi đóng vai trò là cầu nối cho phép bạn định vị các camera linh hoạt hơn xung quanh nhà mà không phải lo lắng về những hạn chế về hệ thống dây điện.
- Kết nối máy in cũ: Cung cấp cho máy in cũ, đáng tin cậy không có WiFi một chức năng sử dụng mới bằng cách kết nối nó với mạng của bạn thông qua Raspberry Pi. Bây giờ, bạn có thể in từ bất kỳ thiết bị nào trong nhà.
- Tích hợp nhà thông minh: Đưa các thiết bị nhà thông minh không có WiFi vào hệ thống hiện đại của bạn. Đèn điều khiển, bộ điều nhiệt hoặc camera an ninh chỉ có cổng Ethernet.
- Truyền phát nội dung media tới TV cũ: Kết nối TV cũ, không thông minh với mạng gia đình của bạn thông qua Raspberry Pi, cho phép chúng truyền phát nội dung media từ các dịch vụ như Netflix hoặc YouTube.
Mặc dù điều quan trọng cần lưu ý là thiết bị được kết nối qua WiFi Bridge Raspberry Pi có thể không đạt được tốc độ và độ ổn định như thiết bị được kết nối trực tiếp với mạng của bạn, nhưng lợi ích mang lại thường lớn hơn hạn chế này. Trong trường hợp không thể kết nối vật lý thiết bị chỉ có Ethernet với router của mình, sử dụng Raspberry Pi mà bạn sở hữu làm WiFi Bridge là một giải pháp tiết kiệm chi phí để thu hẹp khoảng cách kết nối.
Những thứ cần chuẩn bị
Để hoàn thành hướng dẫn này, bạn sẽ cần:
- Model Raspberry Pi với mô-đun WiFi (Raspberry Pi zero, 3 và 4) chạy Raspberry Pi OS
- Cáp nguồn tương thích với Raspberry Pi
- Bàn phím ngoài và cách gắn nó vào Raspberry Pi
- Cáp HDMI hoặc micro HDMI, tùy thuộc vào model Raspberry Pi
- Màn hình ngoài
- Cáp Ethernet
Cập nhật Pi
Nếu chưa thực hiện, hãy gắn bàn phím ngoài, màn hình và bất kỳ thiết bị ngoại vi nào khác vào Raspberry Pi, sau đó cắm Pi vào nguồn điện.
Trước khi bạn bắt đầu, hãy kiểm tra xem Raspberry Pi đã được cập nhật chưa. Mở một Terminal mới bằng cách nhấp vào biểu tượng của Terminal trên thanh công cụ Raspbian, sau đó chạy các lệnh sau:
sudo apt update && sudo apt -y upgrade
Thiết lập dịch vụ mạng: Cài đặt dnsmasq
Tiếp theo, cài đặt dnsmasq, cung cấp caching Domain Name System (DNS) và server Dynamic Host Configuration Protocol (DHCP). Hãy sử dụng gói này để xử lý các yêu cầu DNS. Điều này sẽ cho phép Raspberry Pi hoạt động như một mini router cho thiết bị chỉ có Ethernet.
Để cài đặt dnsmasq, hãy chạy lệnh sau:
sudo apt install dnsmasq
Cấu hình kết nối Ethernet
Tiếp theo, hãy thiết lập interface eth0 để sử dụng địa chỉ IP tĩnh, bằng cách sửa đổi file dhcpcd.conf. Để mở file cấu hình này, hãy chạy lệnh sau:
sudo nano /etc/dhcpcd.conf
Bây giờ, file dhcpcd.conf sẽ mở trong trình soạn thảo Nano. Trong file này, thêm vào thông tin sau:
interface eth0
static ip_address=192.168.220.1/24
static routers=192.168.220.0
Lưu các thay đổi bằng cách nhấn Ctrl
+O
. Để đóng file cấu hình, nhấn Ctrl
+X
.
Những thay đổi này có thể được thực hiện bằng cách khởi động lại service dhcpcd:
sudo service dhcpcd restart
Thay thế file cấu hình dnsmasq
Gói dnsmasq cung cấp một file cấu hình mặc định, nhưng bạn cần thay thế nó bằng các cài đặt tùy chỉnh của riêng mình để cho dnsmasq biết cách xử lý lưu lượng DHCP và DNS.
Trước khi thực hiện bất kỳ thay đổi nào, hãy đổi tên và định vị lại file dnsmasq.conf ban đầu:
sudo nano /etc/dnsmasq.conf /etc/dnsmasq.conf.original
Mở file cấu hình thay thế để chỉnh sửa:
sudo nano /etc/dnsmasq.conf
Bây giờ, bạn nên xem file dnsmasq.conf trong trình soạn thảo Nano. Trong Nano, thêm vào:
interface=eth0
listen-address=192.168.220.1
bind-interfaces
server=8.8.8.8
domain-needed
bogus-priv
dhcp-range=192.168.220.50,192.168.220.150,12h
Bạn có thể sử dụng trình soạn thảo Nano để tạo file dnsmasq.conf tùy chỉnh.
Lưu các thay đổi, bằng cách nhấn Ctrl
+O
. Để đóng file cấu hình, nhấn Ctrl
+X
.
Cho phép chuyển tiếp IP
Tiếp theo, kích hoạt chuyển tiếp IP để Raspberry Pi có thể chấp nhận các gói mạng từ kết nối Ethernet và chuyển tiếp chúng đến router.
Để cho phép chuyển tiếp IP ipv4p, hãy chỉnh sửa file cấu hình sysctl.conf.
sudo nano /etc/sysctl.conf
File sysctl.conf bây giờ sẽ khởi chạy trong trình soạn thảo Nano. Trong file này, tìm dòng sau:
#net.ipv4.ip_forward=1
Xóa # để dòng này trở thành:
net.ipv4.ip_forward=1
Lưu các thay đổi và đóng file cấu hình.
Bây giờ, hãy làm file cấu hình mới sysctl.conf có hiệu lực:
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
Bắt đầu chuyển tiếp lưu lượng từ Ethernet sang WiFi
Bây giờ, bạn đã kích hoạt chuyển tiếp IP thành công. Bạn có thể cấu hình tường lửa để chuyển tiếp lưu lượng truy cập từ interface Ethernet (eth0) sang kết nối WiFi. Với tính năng chuyển tiếp này, mọi thiết bị kết nối với Raspberry Pi qua Ethernet sẽ có quyền truy cập vào kết nối WiFi (wlan0) của Pi.
Thêm một số quy tắc để cho Raspberry Pi biết cách chuyển tiếp tất cả các gói dữ liệu mà nó nhận được:
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
sudo iptables -A FORWARD -i wlan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT
Lưu các quy tắc mới này:
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
Các quy tắc này sẽ bị xóa mỗi khi Raspberry Pi khởi động lại, vì vậy hãy đảm bảo rằng chúng được load lại khi khởi động.
Xác định những gì xảy ra khi khởi động bằng cách chỉnh sửa file rc.local:
sudo nano /etc/rc.local
Bây giờ, file rc.local sẽ mở trong trình soạn thảo Nano. Trong trình chỉnh sửa, tìm mục sau:
exit 0
Thêm các mục sau trực tiếp trên dòng “exit”:
iptables-restore < /etc/iptables.ipv4.nat
Lưu các thay đổi và đóng file cấu hình.
Kiểm tra WiFi bridge
Bước cuối cùng là bắt đầu service dnsmasq:
sudo service dnsmasq start
Bây giờ, bạn có thể kiểm tra WiFi bridge của mình! Gắn bất kỳ thiết bị nào chỉ có Ethernet vào Raspberry Pi thông qua cáp Ethernet. Raspberry Pi giờ đây sẽ cung cấp kết nối Internet cho thiết bị chỉ có Ethernet này.