Ngày nay, dễ dàng giả định mọi thiết bị hỗ trợ Wi-Fi, nhưng không phải thiết bị nào cũng có khả năng kết nối Internet không dây. Đây là nơi Raspberry Pi hữu ích: biến nó thành Wi-Fi bridge (cầu Wi-Fi).
Nếu bạn muốn tái sử dụng máy tính để bàn cũ chỉ có Ethernet và cần cách nhanh, dễ chuyển tín hiệu Wi-Fi thành kết nối Ethernet, bạn có thể dùng Raspberry Pi.
Biến Raspberry Pi thành Wi-Fi bridge
Trong hướng dẫn này bạn sẽ học cách biến Raspberry Pi thành Wi-Fi bridge kết nối mạng không dây và chuyển đổi thành kết nối có dây. Bạn sau đó gắn bất kỳ thiết bị nào vào Raspberry Pi qua cáp Ethernet, và thiết bị đó sẽ tức thì có truy cập mạng.
Trước khi đi xa, đáng lưu ý thiết bị kết nối Wi-Fi qua Raspberry Pi khó tận hưởng tốc độ như thiết bị kết nối trực tiếp router. Tuy nhiên, nếu không thể kết nối vật lý thiết bị chỉ có Ethernet đến router, Raspberry Pi là cách nhanh, dễ và tương đối rẻ để đưa thiết bị đó online.
Chuẩn bị gì
Để hoàn thành hướng dẫn, bạn cần:
- Raspberry Pi có module Wi-Fi (Pi zero, 3, 4) chạy Raspberry Pi OS
- Cáp nguồn tương thích Raspberry Pi
- Bàn phím ngoài và cách gắn nó với Raspberry Pi
- Cáp HDMI hoặc micro HDMI, tùy model Raspberry Pi
- Màn hình ngoài
- Cáp Ethernet
Cập nhật Pi
Nếu chưa, gắn bàn phím, màn hình, và ngoại vi khác vào Raspberry Pi, sau đó cắm Pi vào nguồn.
Trước khi bắt đầu, kiểm tra Raspberry Pi cập nhật. Mở Terminal mới bằng cách nhấp biểu tượng "Terminal" trong thanh công cụ Raspbian, chạy lệnh:
sudo apt update && sudo apt -y upgrade
Thiết lập dịch vụ mạng: cài dnsmasq
Tiếp theo, cài dnsmasq, cung cấp cache Domain Name System (DNS) và server Dynamic Host Configuration Protocol (DHCP). Dùng gói này xử lý yêu cầu DNS, cho phép Raspberry Pi đóng vai trò mini-router cho thiết bị chỉ có Ethernet.
Để cài dnsmasq, chạy lệnh:
sudo apt install dnsmasq
Cấu hình kết nối ethernet
Tiếp theo, thiết lập interface eth0 dùng địa chỉ IP tĩnh bằng cách sửa file "dhcpcd.conf". Mở file cấu hình:
sudo nano /etc/dhcpcd.conf
File "dhcpcd.conf" mở trong Nano text editor. Thêm sau:
interface eth0 static ip_address=192.168.220.1/24 static routers=192.168.220.0
Lưu thay đổi Ctrl + O. Đóng file Ctrl + X.
Thay đổi có hiệu lực bằng cách restart dịch vụ dhcpcd:
sudo service dhcpcd restart
Thay thế file cấu hình dnsmasq
Gói dnsmasq cung cấp file cấu hình mặc định, nhưng bạn cần thay bằng cài đặt tùy chỉnh cho dnsmasq xử lý traffic DHCP và DNS.
Trước khi thay đổi, đổi tên và di chuyển file dnsmasq.conf gốc:
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.original
Mở file cấu hình thay thế để chỉnh:
sudo nano /etc/dnsmasq.conf
Bây giờ bạn nhìn dnsmasq.conf trong Nano. Thêm sau:
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
Lưu Ctrl + O. Đóng Ctrl + X.
Kích hoạt IP forwarding
Tiếp theo, kích hoạt IP forwarding để Raspberry Pi chấp nhận gói tin mạng từ kết nối Ethernet và chuyển tiếp đến router.
Để bật IPv4 IP forwarding, chỉnh file "sysctl.conf":
sudo nano /etc/sysctl.conf
File "sysctl.conf" mở trong Nano. Tìm dòng:
#net.ipv4.ip_forward=1
Bỏ # để dòng thành:
net.ipv4.ip_forward=1
Lưu Ctrl + O. Đóng Ctrl + X.
Áp dụng file "sysctl.conf" mới:
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
Bắt đầu chuyển tiếp traffic từ Ethernet sang Wi-Fi
Bây giờ IP forwarding đã bật, cấu hình firewall chuyển traffic từ interface Ethernet (eth0) sang Wi-Fi (wlan0). Với chuyển tiếp này, thiết bị kết nối Raspberry Pi qua Ethernet sẽ có truy cập Wi-Fi của Pi.
Thêm quy tắc cho Raspberry Pi chuyển tiếp gói tin:
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 quy tắc mới:
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
Quy tắc này bị xóa mỗi lần reboot, nên chắc chắn reload khi khởi động.
Định nghĩa gì xảy ra khi startup bằng cách chỉnh file "rc.local":
sudo nano /etc/rc.local
File rc.local mở trong Nano. Tìm:
exit 0
Thêm ngay trên dòng "exit":
iptables-restore < /etc/iptables.ipv4.nat
Lưu Ctrl + O. Đóng Ctrl + X.
Test Wi-Fi bridge
Bước cuối là khởi động dịch vụ dnsmasq:
sudo service dnsmasq start
Bây giờ test Wi-Fi bridge! Gắn bất kỳ thiết bị chỉ có Ethernet vào Raspberry Pi qua cáp Ethernet. Raspberry Pi sẽ cung cấp kết nối Internet cho thiết bị đó.
Kết luận
Bạn đã học cách chia sẻ Wi-Fi Raspberry Pi với thiết bị có dây bằng cách chuyển kết nối Wi-Fi thành Ethernet. Bạn cũng có thể dùng Raspberry Pi làm Captive Portal Wi-Fi hotspot hoặc personal web server. Cho chúng tôi biết có hữu ích không.
Đọc tiếp các dự án Raspberry Pi khác bạn tự làm.