Computer >> Hướng Dẫn Máy Tính >  >> Phần Cứng >> Phần Cứng

Cách biến Raspberry Pi thành Wi-Fi Bridge

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.

Cách biến Raspberry Pi thành Wi-Fi Bridge

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
Cách biến Raspberry Pi thành Wi-Fi Bridge

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
Cách biến Raspberry Pi thành Wi-Fi Bridge

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.