Tại sao bạn nên tự dựng Access Point trên Linux?
Tự dựng Access Point (AP) không chỉ là thú vui của dân kỹ thuật. Mình từng gặp cảnh router văn phòng “đứng hình” liên tục khi số lượng thiết bị vượt quá con số 20. Trong khi đó, một con server Ubuntu cũ lại dư sức gánh tải. Việc làm chủ AP giúp bạn toàn quyền kiểm soát traffic. Bạn có thể giới hạn băng thông từng máy, chặn quảng cáo từ gốc DNS hoặc tạo mạng khách (Guest Network) tách biệt hoàn toàn để bảo mật.
Bộ đôi hostapd và dnsmasq là linh hồn của hệ thống này. Hostapd chịu trách nhiệm phát sóng và xác thực, còn dnsmasq lo khâu cấp IP và phân giải tên miền. Chỉ cần thêm vài dòng IPTables để làm NAT, bạn sẽ sở hữu một chiếc router chuyên nghiệp và cực kỳ ổn định.
Quick Start: Phát Wi-Fi trong 5 phút
Nếu bạn muốn thấy kết quả ngay, hãy thực hiện các bước tối giản bên dưới. Trong ví dụ này, mình mặc định wlan0 là card phát Wi-Fi, còn eth0 là cổng nhận Internet từ modem.
Bước 1: Cài đặt công cụ cần thiết
sudo apt update
sudo apt install hostapd dnsmasq -y
sudo systemctl stop hostapd
sudo systemctl stop dnsmasq
Bước 2: Cấu hình hostapd
Tạo file /etc/hostapd/hostapd.conf. Đây là nơi định nghĩa tên Wi-Fi và mật khẩu của bạn:
interface=wlan0
driver=nl80211
ssid=Linux_AP_Pro
hw_mode=g
channel=7
wpa=2
wpa_passphrase=YourStrongPassword
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
Bước 3: Gán IP tĩnh cho card Wi-Fi
sudo ip addr add 192.168.10.1/24 dev wlan0
sudo ip link set wlan0 up
Bước 4: Kích hoạt thử nghiệm
sudo hostapd /etc/hostapd/hostapd.conf
Lúc này, hãy dùng điện thoại quét Wi-Fi. Nếu thấy tên “Linux_AP_Pro” xuất hiện, phần cứng của bạn đã hoạt động hoàn hảo.
Cấu hình hệ thống để chạy ổn định 24/7
Để biến máy tính thành router thực thụ, chúng ta cần thiết lập tự động hóa và tối ưu sâu hơn.
1. Kiểm tra khả năng hỗ trợ của phần cứng
Hãy chắc chắn card Wi-Fi của bạn hỗ trợ chế độ AP (Access Point mode). Bạn có thể kiểm tra nhanh bằng lệnh iw list. Nếu trong phần “Supported interface modes” xuất hiện chữ AP, bạn có thể yên tâm đi tiếp.
iw list | grep -A 10 "Supported interface modes"
2. Cấp IP tự động với dnsmasq
File cấu hình mặc định của dnsmasq thường rất rườm rà. Mình khuyên bạn nên backup file cũ và tạo một file /etc/dnsmasq.conf mới thật gọn gàng:
interface=wlan0
# Cấp IP từ .10 đến .100, thời gian thuê 12 giờ
dhcp-range=192.168.10.10,192.168.10.100,255.255.255.0,12h
# Sử dụng DNS của Google và Cloudflare
server=8.8.8.8
server=1.1.1.1
dhcp-option=3,192.168.10.1
3. Kích hoạt IP Forwarding và NAT
Hiện tại, thiết bị đã kết nối được Wi-Fi nhưng chưa thể ra Internet. Bạn cần cho phép Linux chuyển tiếp gói tin giữa các card mạng.
Mở file /etc/sysctl.conf, tìm và bỏ dấu comment dòng: net.ipv4.ip_forward=1. Sau đó, áp dụng thay đổi bằng lệnh sudo sysctl -p.
Cuối cùng, thiết lập luật NAT bằng IPTables để chia sẻ Internet:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo apt install iptables-persistent
Nâng cao: Tăng tốc độ và tính bảo mật
Đừng hài lòng với cấu hình mặc định. Nếu card mạng hỗ trợ chuẩn AC (5GHz), hãy đổi hw_mode=g thành hw_mode=a và chọn channel 36 hoặc 44. Băng tần 5GHz sẽ giúp bạn tránh khỏi sự nhiễu loạn của hàng chục mạng Wi-Fi hàng xóm, tăng tốc độ từ 54Mbps lên hàng trăm Mbps.
Ngoài ra, hãy chỉ định file cấu hình cho hệ thống bằng cách sửa /etc/default/hostapd: DAEMON_CONF="/etc/hostapd/hostapd.conf".
Kinh nghiệm thực chiến: Trị lỗi rớt gói (Packet Loss)
Mình từng đau đầu khi AP tự dựng chạy rất mượt ban ngày, nhưng cứ đến 5 giờ chiều là ping nhảy vọt từ 20ms lên 2000ms. Sau khi dùng wavemon theo dõi, mình phát hiện ra hai thủ phạm chính.
Đầu tiên là quá nhiệt. Các card Wi-Fi nhỏ gọn thường không có tản nhiệt tốt. Khi gánh trên 15 thiết bị cùng lúc, nó nóng ran và tự hạ công suất để bảo vệ phần cứng. Giải pháp đơn giản là lắp thêm một quạt 5V thổi trực tiếp vào card mạng.
Thứ hai là nhiễu kênh. Việc để channel=auto đôi khi khiến hostapd nhảy kênh liên tục khi thấy mạng xung quanh mạnh lên, gây ngắt kết nối đột ngột. Mình đã dùng ứng dụng Wi-Fi Analyzer trên điện thoại để tìm ra kênh trống nhất và cố định nó trong file cấu hình. Kết quả là hệ thống chạy ổn định suốt nhiều tháng liền.
Các lưu ý quan trọng để tránh “ăn hành”
- Xung đột NetworkManager: Linux Desktop thường tự chiếm quyền điều khiển Wi-Fi. Bạn phải đưa
wlan0vào danh sáchunmanagedtrong file config của NetworkManager để tránh tranh chấp. - Tắt Power Management: Chế độ tiết kiệm điện có thể gây lag khi bạn vừa bắt đầu duyệt web sau một lúc nghỉ. Hãy dùng lệnh
iw dev wlan0 set power_save offđể tắt nó. - Kiểm tra Log: Nếu gặp sự cố, đừng đoán mò. Lệnh
journalctl -u hostapd -fsẽ cho bạn biết chính xác thiết bị nào đang bị từ chối kết nối và lý do tại sao.
Tự xây dựng một Wireless Access Point là cách tốt nhất để hiểu sâu về tầng Link Layer và các giao thức mạng. Nếu bạn có một con Raspberry Pi hoặc PC cũ, hãy thử ngay hôm nay. Nếu gặp bất kỳ lỗi nào trong quá trình cấu hình, hãy để lại comment bên dưới, mình sẽ hỗ trợ giải đáp.

