How to configure a wlan interface on hotspot mode
来自百问网嵌入式Linux wiki
Zhouyuebiao(讨论 | 贡献)2019年12月26日 (四) 16:09的版本
如何将无线网卡配置为热点模式
将无线网卡配置为热点模式
- 为 systemd/netword 文件中中配置好wlan接口参数
- 在 /lib/systemd/network/ 文件中添加以下规则:
Board $> cat /lib/systemd/network/hostapd.network
[Match]
Name=wlan0
[Network]
Address=192.168.72.1/24
DHCPServer=yes
IPForward=ipv4
IPMasquerade=yes
- 192.168.72.1/24:配置好的热点设备的IP地址及子网掩码。
- 此配置将网卡设置为支持dhcpserver、ip forward、ip masquerade:wlan0。
- 通过以下内容替换到 /etc/hostapd.config 中创建新的热点配置信息:
Board $> cat /etc/hostapd.conf
interface=wlan0
driver=nl80211
# mode Wi-Fi (a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g)
hw_mode=g
ssid=STExampleNetwork
channel=7
wmm_enabled=0
macaddr_acl=0
# Wi-Fi closed, need an authentication
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=ExamplePassphareNetwork
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
STExampleNetwork 是新无线局域网热点(SSID)的可见名称。 ExamplePassphareNetwork 是与无线局域网热点(SSID)相关联的密码。
- 更正 systemd-networkd.service 的一个问题,该问题默认情况下不启用wifi链接
- 在 /lib/systemd/system/hostapd.service 文件中添加突出显示的行
Board $> cat /lib/systemd/system/hostapd.service
[Service]
ExecStartPre=/sbin/ip link set wlan0 up
ExecStart=/usr/sbin/hostapd /etc/hostapd.conf -P /run/hostapd.pid -B
- 启用系统服务
Board $> systemctl enable hostapd
如何配置网关配置
- 对于此配置示例,设置为:
- wlan0:通过 DHCP 连接到 SSID_NETWORK 的无线网卡
- eth0:具有静态 IP 的以太网接口,上面也有 DHCP server
- 数据包的转发在两个网络接口之间被激活。
配置无线接口
Board $> cat /lib/systemd/network/wlan0.network
[Match]
Name=wlan0
[Network]
DHCP=ipv4
IPForward=ipv4
- IP转发
- 允许将所有网络数据包从无线网络转发到其他网络。
- 为 SSID_NETWORK 网络配置无线接口:
Board $> mkdir -p /etc/wpa_supplicant/
echo "ctrl_interface=/var/run/wpa_supplicant" > /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
echo "eapol_version=1" >> /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
echo "ap_scan=1" >> /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
echo "fast_reauth=1" >> /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
echo "" >> /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
wpa_passphrase SSID_NETWORK PASSWORD_NETWORK >> /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
or
wpa_passphrase SSID_NETWORK >> /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
- 其中 SSID_NETWORK、PASSWORD_NETWORK 对应于无线网络的SSID和密码。
- 是配置信息生效(重启后要考虑):
Board $> systemctl enable wpa_supplicant@wlan0.service
systemctl restart systemd-networkd.service
systemctl restart wpa_supplicant@wlan0.service