一、wifi的基础知识储备
wifi通常情况下可以处在sta和ap模式下:
sta模式:作为终端去连接其他WiFi网络
ap模式:作为接入的热点中心,被其他终端连接
二、实操:设备在sta模式下,怎么通过命令连入别的wifi网络?
要在设备上以**STA(Station)模式**连接到其他WiFi网络,您可以使用命令行工具,通常使用**wpa_supplicant**和**wpa_cli**工具来配置和管理WiFi连接。以下是一般步骤:
1. **检查WiFi适配器**:首先,确保您的设备上有可用的WiFi适配器,并且已正确安装WiFi驱动程序。
2. **启动wpa_supplicant**:运行以下命令来启动wpa_supplicant,其中 `interface_name` 是您的WiFi适配器的名称:
```shell
sudo wpa_supplicant -B -i interface_name -c /etc/wpa_supplicant.conf
```
`-B` 标志表示在后台运行,`-i` 指定WiFi接口,`-c` 指定配置文件的路径。请确保 `/etc/wpa_supplicant.conf` 文件包含要连接的WiFi网络的配置信息。示例配置:
```plaintext
network={
ssid="Your_SSID"
psk="Your_Password"
}
```
替换 `"Your_SSID"` 和 `"Your_Password"` 为目标WiFi网络的SSID和密码。
3. **使用wpa_cli连接**:运行以下命令使用wpa_cli连接到WiFi网络:
```shell
sudo wpa_cli -i interface_name
```
这将进入wpa_cli的交互模式。
4. 在wpa_cli中,输入以下命令连接到WiFi网络(请替换 `<Your_SSID>` 和 `<Your_Password>` 为目标网络的SSID和密码):
```shell
scan
add_network
set_network 0 ssid "<Your_SSID>"
set_network 0 psk "<Your_Password>"
enable_network 0
```
这将扫描可用的WiFi网络,为目标网络创建一个新网络配置,并启用它。确保使用正确的SSID和密码。
5. 最后,运行以下命令来等待连接到网络:
```shell
select_network 0
```
如果一切设置正确,您的设备应该会连接到目标WiFi网络。
请注意,这些步骤可能会因不同的Linux发行版和WiFi适配器而有所不同。确保您的设备已正确配置并具有连接到WiFi网络的权限。如果需要,还要检查网络设置,如DHCP等。
6. 按照上面操作后,连入网络后,ifconfig wlan0 查询不到ip,执行了dhcpcd wlan后得到分配的ip,但是不是期待中的,目前尝试半天也行,
(因为我按照上面操作连入到无线网,然和将笔记本电脑连入到同样的网络,发现两者ip不在同一个网段,相互ping不同,目前尚未解决)
三、实操:在ap模式 做了哪些操作?
/system/bin/hostapd /data/misc/wifi/hostapd.conf
其中hostapd是必须要运行起来的,配置文件可以参考官方提供的写
将这个运行起来后,终端设备连入后,发现起终端设备并没有自动dhcp到ip地址,需要手动配置成和ap设备同网段的ip后,才能连接。
后查询发现,需要执行dnsmasq 这个工具,它可以充当 DHCP 服务器,为局域网中的设备分配IP地址、子网掩码、网关地址和DNS服务器地址等网络配置。这对于自动化管理设备的网络配置非常有用。
因此执行/system/bin/dnsmasq -C /system/etc/dnsmasq.conf -u root -g root -k -x /data/dnsmasq.pid 具体的参数说明可以查看--help
其中dnsmasq.conf配置了相关信息如下:
# 指定 DHCP 范围
dhcp-range=172.18.2.100,172.18.255.254,12h
# 指定默认网关
dhcp-option=3,172.18.2.1
# 指定 DNS 服务器
dhcp-option=6,114.114.114.114,8.8.8.8
dnsmasq.pid存放的是进程的pid号
(未完待续)