Linux开启热点

Linux 开启热点

使用Linux命令开启WiFi热点可以使嵌入式设备作为无线接入点,允许其他设备(如智能手机、平板、笔记本电脑等)连接到该设备,使用其网络连接。尤其适用于嵌入式系统需要与其他设备进行数据传输或共享互联网连接时。如果嵌入式设备需要与周围的其他设备(如传感器、智能家居设备等)进行无线通信,开启WiFi热点可以为它们提供一种便捷的通信方式,而不需要复杂的网络基础设施支持。在没有其他可用网络环境(例如没有路由器或交换机的情况下),开启WiFi热点可以在设备之间临时建立一个网络,尤其适用于开发调试、测试以及设备之间的数据传输。

对于嵌入式设备,开启WiFi热点还可以作为一种远程管理的方式,开发人员或用户可以通过连接WiFi热点,访问设备的Web界面或SSH端口进行配置、调试或更新。对于IoT(物联网)设备,开启WiFi热点可以实现设备间的局域网连接,支持设备之间的数据交换和控制命令传递。例如,智能家居系统中的嵌入式设备可以通过WiFi热点与其他设备进行通信,形成一个局部的自组网。

作者:炭烤毛蛋 ,点击博主了解更多。


提示:linux 通过界面设置开启热点相对简单,本篇文章简述使用命令开启WiFi热点。


1. buildroot 开启热点(hostapd udhcpd)

buildroot 开启WiFi热点依赖 hostapd和udhcpd两个服务,在构建文件系统时需要格外注意一下哎。

1.1 hostapd 配置共享热点

启动hostapd前需要修改好配置文件 hostapd.conf,启动 AP 前会解析相关配置。

hostapd.conf https://w1.fi/cgit/hostap/plain/hostapd/hostapd.conf

buildroot 默认配置位置 /etc/hostapd.conf

# 选择的网口名称,系统是wlan0。具体可以ifcofnig看下当前设备下偶那些网口
interface=ap0
# 线驱动,一般有两种:wext/nl80211,wext版本较旧目前一般使用nl80211 
driver=nl80211 
# iEEE802.11n
ieee80211n=1
# 802.11g,一般三个模式: a,b,g。a->5GHZ,g->2.4GHZ
hw_mode=g
# wifi工作的信道,2.4GHZ(1~14)
channel=6
# AP的名称,类似于我们的路由器名称
ssid=smartlife123456
# 选择加密方式为WPA2,常用加解密方法是有WEP、WPA、WPA2、WPA3
wpa=2
# 密码
wpa_passphrase=1234567890
# 加密方式
wpa_key_mgmt=WPA-PSK
# 加密算法
rsn_pairwise=CCMP TKIP
wpa_pairwise=TKIP CCMP
AP 无密码模式
interface=ap0
driver=nl80211 
ieee80211n=1
hw_mode=g
channel=6
ssid=smartAP
AP 加密
interface=ap0
driver=nl80211
ieee80211n=1
hw_mode=g
channel=6
ssid=smartAP
wpa=2
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP TKIP
wpa_pairwise=TKIP CCMP

1.2 hostapd 启用热点

  • 查看无线网卡是否支持AP模式
iw list | grep -A 8 "Supported interface modes"
        Supported interface modes:
                 * IBSS
                 * managed
                 * AP
                 * P2P-client
                 * P2P-GO
                 * P2P-device
        Band 1:
                Capabilities: 0x1020
  • 启动热点
hostapd /etc/hostapd/hostapd.conf -B

1.3 dhcpd 动态分配 IP

dhcpd是工作在server端的DHCP服务,udhcpc则是工作在client端的DHCP服务。udhcpc是用来获取IP地址的,而dhcpd则是用来为设备分配IP地址的。

dhcpd.conf 在buildroot 默认配置位置 /etc/dhcpcd.conf [https://udhcp.busybox.net/]
udhcpd.conf 示例

start 192.168.175.2
end 192.168.175.254
interface ap0
max_leases 234
opt router 192.168.175.1

启用 dhcpd

dhcpd /etc/dhcpd/dhcpd.conf &

1.4 查看热点

iwconfig 命令(适用于使用iwconfig工具的系统,通常是用于较老的网络接口管理)

iwconfig
dummy0    no wireless extensions.

ip_vti0   no wireless extensions.

wlan0     IEEE 802.11  ESSID:"AndroidAP_7623"  Nickname:""
          Mode:Master  Frequency:2.437 GHz  Access Point: 22:FE:0D:96:37:D9
          Bit Rate=173 Mb/s   Tx-Power:32 dBm
          Retry min limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off

lo        no wireless extensions.

ip6_vti0  no wireless extensions.

sit0      no wireless extensions.

eth0      no wireless extensions.

ip6tnl0   no wireless extensions.

从命令结果可以看到WiFi热点已经正常开启。

1.5 hostapd 开启热点如何重置名字

  • 重置热点名
nmcli connection modify <连接名称或UUID> connection.id "<新的热点名称>"
  • 重启网络生效
nmcli connection up NewHotspot

2. Linux 开启热点(hostapd udhcpd)

在 Linux 系统中,要使用命令开启热点(Wi-Fi 热点),通常可以通过 hostapd 和 dnsmasq 工具来完成。
使用 wpa_cli 命令连接 WiFi 网络的过程涉及到与 wpa_supplicant 交互,它是 Linux 系统下管理无线网络连接的工具。

2.1 安装必要的软件包

如果你的系统上没有安装这些工具,可以使用以下命令来安装它们(以 Ubuntu 为例):

sudo apt update
sudo apt install hostapd dnsmasq

2.2 配置 hostapd

hostapd 用来管理 Wi-Fi 热点的设置,首先需要创建一个配置文件。
创建一个配置文件 /etc/hostapd/hostapd.conf,内容如下:

interface=wlan0
driver=nl80211
ssid=YourSSID
hw_mode=g
channel=7
macaddr_acl=0
auth_algs=1
wpa=2
wpa_passphrase=YourPassword

这里的字段解释:

  • interface=wlan0:无线网卡接口。
  • ssid=YourSSID:你想设置的无线网络名称。
  • wpa_passphrase=YourPassword:设置的密码。

2.3 配置 dnsmasq

dnsmasq 作为 DHCP 服务器,分配 IP 地址给连接到热点的设备。
创建或修改文件 /etc/dnsmasq.conf,并添加以下内容:

interface=wlan0
dhcp-range=192.168.1.50,192.168.1.150,12h

2.4 启用 IP 转发和网络地址转换(NAT)

编辑 /etc/sysctl.conf,启用 IP 转发:

net.ipv4.ip_forward=1

然后执行:

sudo sysctl -p

设置 NAT(假设你要将流量从无线网络通过以太网网卡 eth0 转发):

sudo iptables --table nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables-save > /etc/iptables/rules.v4

2.5 启动热点服务

  • 启动 hostapd
sudo systemctl start hostapd
  • 启动 dnsmasq
sudo systemctl start dnsmasq

2.6 使设置开机自动启动

如果希望每次启动时自动启用热点,可以执行以下命令:

sudo systemctl enable hostapd
sudo systemctl enable dnsmasq

3. Linux 开启热点(nmcli)

nmcli是NetworkManager的命令行工具,可以方便地创建WiFi热点。
大多数Linux发行版默认都会安装NetworkManager,但你可以通过以下命令确保它已安装:

sudo apt-get install network-manager
  1. 查看网络适配器:
    首先,你可以使用nmcli命令来查看你系统中的网络适配器。你需要确认你的无线网卡支持热点功能。
nmcli device

确认无线网卡名称(通常是类似wlan0wlp2s0这样的名称)。

  1. 创建WiFi热点:
    使用nmcli命令来设置一个WiFi热点。
nmcli dev wifi hotspot ifname <无线网卡名称> con-name Hotspot ssid <热点名称> password <密码>
  • <无线网卡名称>: 替换为你的无线网卡名称,例如wlan0

  • <热点名称>: 设置你希望的WiFi热点名称。

  • <密码>: 设置WiFi的密码。

  • 示例:

nmcli dev wifi hotspot ifname wlp2s0 con-name MyHotspot ssid MyHotspotPassword password mypassword123
  1. 查看热点状态:
    如果你希望确认热点是否成功创建,可以通过以下命令查看状态:
nmcli connection show
  1. 停止WiFi热点:
    停止WiFi热点的命令是:
nmcli connection down Hotspot

Tips

  • 无线网卡的实际接口名称(如 wlan0wlp2s0)来修改配置文件。
  • 无线网卡的驱动支持 nl80211 驱动,并且网卡能够支持无线热点功能。

结语

不枉博主详细讲解,欢迎订阅博主–炭烤毛蛋

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值