Cách biến Raspberry Pi thành WiFi Bridge

Cách biến Raspberry Pi thành WiFi Bridge

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.

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
Thay thế file cấu hình dnsmasq
Thay thế file cấu hình dnsmasq

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
Cho phép chuyển tiếp IP
Cho phép chuyển tiếp IP

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.

Nguồn tin: Quantrimang.com