1. 说明
某种情况下需要使用wifi进行通信时,可以在linux系统中发射一个热点让以使别的设备能够连接,然后进行通信。一般情况下可以在有无线wifi发射器的情况下,每次linux系统开机后,手动设置开启热点,但这种方式比较麻烦,可以通过命令脚本的形式在系统开机后自动开启热点,方便使用。
2. 实现步骤:
第一步:
首先,需要在linux系统中安装一些依赖库,使用下面的命令进行安装:
sudo apt-get install hostapd iptables dnsmasq
sudo apt-get install util-linux procps iproute2 iw haveged
安装完成后,需要在github上找到一个开源项目下载下来:
sudo git clone https://github.com/oblique/create_ap
下载下来之后,进入到下载的文件夹:
cd create_ap
然后执行命令进行安装配置:
sudo make install
第二步:
打开终端,查看网卡的配置情况:
iwconfig
上图所示中,enp2s0为有线网卡名,wlx08beac31bd43为无线网卡名,则可使用下述方式创建热点:
sudo create_ap wlx08beac31bd43 enp2s0 selfHot 12345678
上面命令行中:selfHot为热点名称,12345678为热点连接密码
执行上面的命令后,如果出现下面的问题:
表明系统的无线设备被禁用,需要解锁才行,在终端中输入下面的命令:
rfkill unblock all //解锁所有的无线设备
若出现下面的问题,提示iptables出错,是因为linux系统中的防火墙默认使用的使 nftables , 而不是iptables,所以需要做一些防火墙方面的更新,在终端中执行下面的命令:
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
更新完成后,再次执行创建热点的命令,即可成功创建:
sudo create_ap wlx08beac31bd43 enp2s0 selfHot 12345678
此时打开其它的设备,即可搜索到热点 selfHot
第三步:
创建开机自启动脚本,实现开机自动启动热点。
在/etc中创建rc.local文件,进入编辑:
sudo gedit /etc/rc.local
打开文件后,加入下面的代码:
#!/bin/sh -erfkill unblock all //解锁所有的无线设备
sudo create_ap wlx08beac31bd43 enp2s0 selfHot 12345678exit 0
保存后,为防止开机无法自启动,最后给这个文件一个可执行权限:
sudo chmod +x /etc/rc.local
以后开机后启动,linux系统即可自动创建热点了。