要在 wlan0 无线网卡上发射热点(即创建 WiFi 热点),可以使用 hostapd 和 dnsmasq 这两个工具。hostapd 用于创建热点,而 dnsmasq 用于提供 DHCP 和 DNS 服务,以便连接到热点的设备可以获取 IP 地址并访问互联网。
下面是在 Ubuntu 中设置 wlan0 网卡发射热点的步骤:
1. 安装必要的软件包
首先,确保安装了 hostapd 和 dnsmasq:
sudo apt update
sudo apt install hostapd dnsmasq
2. 配置 hostapd
创建 hostapd 的配置文件:
sudo vi /etc/hostapd/hostapd.conf
将以下内容粘贴到文件中,并根据你的需求进行配置:
interface=wlan0
driver=nl80211
ssid=YourHotspotName
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=YourPassword
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
ssid: 设置热点的名称。
channel: 设置热点的信道号。
wpa_passphrase: 设置热点的密码。
wpa_key_mgmt: 设置 WPA 密钥管理类型。
wpa_pairwise 和 rsn_pairwise: 设置加密算法。
3. 配置 dnsmasq
编辑 dnsmasq 的配置文件:
sudo vi /etc/dnsmasq.conf
将以下内容添加到文件末尾:
interface=wlan0
dhcp-range=192.168.1.100,192.168.1.200,255.255.255.0,24h
listen-address=192.168.1.1
这将配置 dnsmasq 使用 wlan0 网卡,分配 IP 地址范围为 192.168.1.100 到 192.168.1.200。这个可以自定义范围,按需填写;租期24小时
注意:这时候dnsmasq 默认监听53端口的,很容易和systemd-resolved端口冲突,可以用这个命令查一下
sudo netstat -tulpn | grep :53
这时候可以,在/etc/dnsmasq.conf里找到
#port=5353
#把port=5353取消注释掉,变成
port=5353
就可以用5353端口了,也可以自定义端口号
4. 很关键,给wlan0IP地址,不然dnsmasq开启时和连接热点后会出现无法分配ip问题
#设置无线网卡ip
sudo ifconfig wlan0 192.168.1.1
# 我也不知道是什么,可执行也可不执行
sudo dhcpd wlan0 -pf /var/run/dhcp-server/dhcpd.pid
# 如果有有线网卡,则可以用有线网卡的网络,实现接外网,eth0是有线网卡名称,可执行也可不执行
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
5. 启动热点
使用以下命令启动 hostapd 和 dnsmasq:
sudo systemctl unmask hostapd
sudo systemctl enable hostapd #开机后也会自动创建WiFi热点
sudo systemctl start hostapd #开启热点的
sudo systemctl enable dnsmasq #开机后也会自动开启dns服务
sudo systemctl start dnsmasq #开启热点的dns服务和分配ip的
这就成功了
若我想创建一个开放的wifi热点,那么hostapd.conf应该怎么配置
编辑 hostapd 配置文件:
# 指定无线网卡的接口名称
interface=wlan0# 驱动程序设置,通常为nl80211
driver=nl80211# 设置热点的SSID(网络名称)
ssid=MyOpenWiFi# 设置热点模式为g(802.11g标准,支持更多设备)
hw_mode=g# 允许所有设备连接,无需密码
auth_algs=1
wpa=0
在这个示例配置中:
interface 指定了无线网卡的接口名称,通常为 wlan0。
driver 设置为 nl80211,这是hostapd使用的常见驱动程序。
ssid 是您想要设置的热点的名称,这里是 MyOpenWiFi。
hw_mode 设置为 g,表示使用802.11g标准,支持更广泛的设备。
auth_algs=1 表示使用开放式认证,即允许所有设备连接而无需密码。
wpa=0 确保不使用WPA加密。