Soft AP(Software Access Point)利用支援 AP 模式的無線網卡,將筆電/桌機轉為無線熱點,成本遠低於硬體 AP。Ubuntu 需手動安裝 hostapd(AP 守護程式)與 dnsmasq(DHCP/DNS 伺服器)並設定網路介面。本文提供完整四步驟設定流程。
iw list | grep -A 10 "Supported interface modes"
# 輸出應包含:
# * AP
# * AP/VLAN
# 若無 AP 模式,該網卡無法作為 Soft AP
常見支援晶片:Atheros (ath9k/ath10k)、Intel (iwlwifi)、Realtek (rtl88xxau)、MediaTek (mt76)。
sudo apt-get update
sudo apt-get install hostapd
編輯 /etc/hostapd/hostapd.conf:
interface=wlan0
driver=nl80211
ssid=MySoftAP
hw_mode=g
channel=6
ieee80211n=1
wmm_enabled=1
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=YourStrongPassword123
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
指定設定檔:
sudo sed -i 's|#DAEMON_CONF=""|DAEMON_CONF="/etc/hostapd/hostapd.conf"|' /etc/default/hostapd
sudo nmcli con add type wifi ifname wlan0 con-name Hotspot autoconnect yes ssid MySoftAP
sudo nmcli con modify Hotspot 802-11-wireless.mode ap 802-11-wireless.band bg ipv4.method shared
sudo nmcli con up Hotspot
或手動編輯 /etc/network/interfaces(非 NetworkManager 環境):
auto wlan0
iface wlan0 inet static
address 192.168.10.1
netmask 255.255.255.0
sudo apt-get install dnsmasq
備份原設定,編輯 /etc/dnsmasq.conf:
interface=wlan0
dhcp-range=192.168.10.10,192.168.10.100,12h
dhcp-option=3,192.168.10.1
dhcp-option=6,192.168.10.1
server=8.8.8.8
server=1.1.1.1
log-queries
log-dhcp
重啟服務:
sudo systemctl restart dnsmasq
# 1. 啟用 IP forwarding
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
# 2. 設定 NAT(假設上游介面為 eth0)
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
# 3. 持久化 iptables(需安裝 iptables-persistent)
sudo apt-get install iptables-persistent
sudo netfilter-persistent save
sudo systemctl start hostapd
sudo systemctl enable hostapd dnsmasq
# 檢查狀態
sudo systemctl status hostapd
iw dev wlan0 station dump # 查看連接客戶端
# 手機/筆電搜尋 SSID "MySoftAP" 連線測試
| 現象 | 原因與解決 |
|---|---|
| hostapd 啟動失敗 "Interface doesn't support AP mode" | 驅動程式不支援,嘗試更新核心/固體韌體,或更換網卡 |
| 客戶端連上但無法上網 | NAT 規則缺失、IP forwarding 未開啟、上游介面名稱錯誤 |
| dnsmasq 無法綁埠 53 | systemd-resolved 佔用,停用 systemctl disable systemd-resolved 或改用非標準埠 |
| 頻道衝突導致不穩 | 使用 iwlist wlan0 scan 檢查周圍頻道,選擇較乾淨頻道 |
# /usr/local/bin/softap-start.sh
#!/bin/bash
ip link set wlan0 up
ip addr add 192.168.10.1/24 dev wlan0
systemctl start hostapd dnsmasq
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
chmod +x /usr/local/bin/softap-start.sh
# 加入 /etc/rc.local 或 systemd service
Ubuntu 啟用 Soft AP 核心四步驟:確認硬體支援 → 設定 hostapd → 設定 dnsmasq → 開啟 NAT/IP Forward。完成後即擁有功能完整的無線熱點,支援 WPA2 加密、DHCP 自動分派 IP、DNS 轉發與網際網路共享。適合會議示範、臨時網路、物聯網裝置測試等場景。