在 CentOS 系统上建立一个 Wi-Fi 热点,可以将有线网络连接通过无线网卡分享出去,为其他设备提供网络接入,这个过程主要依赖于命令行工具,需要对 Linux 网络配置有一定了解,以下是一份详尽的指南,旨在帮助您在 CentOS 上成功搭建一个稳定可靠的 Wi-Fi 热点。

准备工作与硬件检测
在开始之前,最关键的一步是确认您的无线网卡支持 AP(Access Point)模式,并非所有无线网卡都具备此功能,尤其是某些老旧或专为客户端设计的网卡。
您可以使用以下命令来查看系统中的无线网卡及其驱动信息:
lspci -knn | grep -iA3 net # 或者对于 USB 无线网卡 lsusb
执行命令后,找到您的无线网卡设备(通常以 wlan0, wlp3s0 等命名),使用 iw 工具来检查其支持的模式:
iw list
在输出的信息中,寻找 “Supported interface modes” 部分,如果其中包含 AP 或 master 字样,那么恭喜您,您的硬件是支持建立热点的,如果未找到,您可能需要更换一块支持 AP 模式的 USB 无线网卡。
安装核心软件
CentOS 建立热点需要两个核心软件包:hostapd 和 dnsmasq。
- hostapd: 这是用户空间的守护进程,用于将无线网卡配置成接入点,并处理认证和关联。
- dnsmasq: 这是一个轻量级的 DHCP 和 DNS 服务器,它将为连接到热点的设备自动分配 IP 地址,并提供 DNS 解析服务。
使用 dnf(CentOS 8 及以上版本)或 yum(CentOS 7)来安装它们:
sudo dnf install hostapd dnsmasq
配置 Hostapd(无线接入点服务)
hostapd 的主配置文件位于 /etc/hostapd/hostapd.conf,我们需要创建并编辑这个文件来定义热点的各项参数。
sudo nano /etc/hostapd/hostapd.conf
粘贴到文件中,并根据您的需求进行修改:
# 使用 nl80211 驱动 driver=nl80211 # 无线网卡接口名称,请根据实际情况修改 interface=wlp3s0 # 热点的 SSID 名称 ssid=MyCentOSHotspot # 热点所在的模式与信道 hw_mode=g channel=6 # 启用 WPA2 安全认证 wpa=2 wpa_passphrase=YourStrongPassword wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP
关键参数说明表:

| 参数 | 含义 | 示例值 |
|---|---|---|
driver | 使用的驱动类型,现代网卡通常为 nl80211 | nl80211 |
interface | 无线网卡的接口名称 | wlp3s0 |
ssid | 广播的网络名称 | MyCentOSHotspot |
hw_mode | 无线标准,a=5GHz, b=2.4GHz, g=2.4GHz | g |
channel | 使用的信道,1-13 | 6 |
wpa_passphrase | WPA2 密码,8-63个字符 | YourStrongPassword |
配置 Dnsmasq(DHCP 与 DNS 服务)
配置 dnsmasq 为连接的设备提供 IP 地址,编辑其配置文件:
sudo nano /etc/dnsmasq.conf
在文件末尾添加以下配置:
# 监听的接口,与 hostapd.conf 中的 interface 保持一致 interface=wlp3s0 # DHCP 分配的 IP 地址范围和租约时间 dhcp-range=192.168.10.50,192.168.10.150,12h # 向客户端提供的网关地址(即热点自身的 IP) dhcp-option=3,192.168.10.1 # 向客户端提供的 DNS 服务器地址(可使用公共 DNS) dhcp-option=6,8.8.8.8,8.8.4.4 # 绑定到指定接口,防止响应其他接口的请求 bind-interfaces # 不读取 /etc/resolv.conf,使用下面指定的上游 DNS 服务器 no-poll server=8.8.8.8
此配置将热点网络设置为 168.10.0/24 网段,并为连接的设备分配该网段内的 IP。
开启 IP 转发与 NAT
为了让连接到热点的设备能够通过 CentOS 系统访问外部网络(例如通过有线网卡 enp0s3),我们需要开启内核的 IP 转发功能,并设置网络地址转换(NAT)。
开启 IP 转发:
临时开启:sudo sysctl -w net.ipv4.ip_forward=1
永久开启,编辑
/etc/sysctl.conf文件:sudo nano /etc/sysctl.conf
确保以下行存在且未被注释:
net.ipv4.ip_forward=1保存后,执行
sudo sysctl -p使配置立即生效。配置防火墙与 NAT:
CentOS 默认使用firewalld,确定您的有线网卡名称(enp0s3),然后执行以下命令:
# 添加网卡到信任区域,允许流量通过 sudo firewall-cmd --permanent --zone=trusted --add-interface=wlp3s0 # 开启地址伪装(MASQUERADE),这是 NAT 的一种形式 sudo firewall-cmd --permanent --add-masquerade # 重载防火墙配置 sudo firewall-cmd --reload
启动服务与测试
所有配置完成后,现在可以启动服务了,为无线网卡分配一个静态 IP 地址:
sudo ip addr add 192.168.10.1/24 dev wlp3s0
启动并启用 hostapd 和 dnsmasq 服务:
sudo systemctl start hostapd sudo systemctl enable hostapd sudo systemctl start dnsmasq sudo systemctl enable dnsmasq
使用 systemctl status hostapd 和 systemctl status dnsmasq 检查服务状态,确保它们正在正常运行。
用您的手机或笔记本电脑搜索 Wi-Fi 网络,应该能看到名为 “MyCentOSHotspot” 的热点,输入您设置的密码 YourStrongPassword 进行连接,连接成功后,设备应该能获得一个 168.10.x 的 IP 地址,并且可以正常访问互联网。
相关问答 FAQs
问题 1:为什么我的设备搜不到创建的 WiFi 热点?
答: 这是一个常见问题,可能的原因有几个,请使用 systemctl status hostapd 命令检查 hostapd 服务是否成功启动,如果没有,请查看日志 (journalctl -u hostapd) 排查配置文件错误,确认您的无线网卡确实支持 AP 模式,检查 hostapd.conf 中的 interface 名称是否与您的实际无线网卡名称完全匹配,某些笔记本电脑有物理或软件的无线开关,请确保它已打开。
问题 2:连接上热点后无法上网怎么办?
答: 如果能连接上热点但无法访问互联网,问题通常出在 IP 转发或 NAT 配置上,请按以下步骤排查:1) 使用 sysctl net.ipv4.ip_forward 确认内核 IP 转发已设置为 1,2) 确认您的 CentOS 主机本身可以通过有线网卡(如 enp0s3)正常上网,3) 检查 firewalld 的规则,确保 masquerade 已添加并重载,4) 在连接的客户端设备上,检查是否获取到了正确的 IP 地址、网关(168.10.1)和 DNS 服务器,问题都出在 NAT 规则不正确或 IP 转发未开启上。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复