一、前言
学校里连校园网一般只能连接一个设备,如果要连接多个设备的话就要来回切换,比较麻烦。正好手里有一个树莓派,就试试看能不能做一个WiFi热点,让我可以多设备同时连接树莓派。
二、准备
-
树莓派4b(装好系统)
-
具有ap功能的无线网卡
-
Github项目:Create_ap(项目地址:GitHub - oblique/create_ap: [NOT MAINTAINED] This script creates a NATed or Bridged WiFi Access Point.)
三、制作步骤
首先将Github项目克隆到树莓派上
git clone https://github.com/oblique/create_ap
进入项目文件夹
cd create_ap
make一下
sudo make install
安装依赖程序
sudo apt-get install bash util-linux procps hostapd iproute2 iw iwconfig haveged
插上无线网卡,然后就可以开启无线热点功能了,原项目提供了几种WiFi热点方式:
-
开放式网络(无密码):
create_ap wlan0 eth0 MyAccessPoint
-
WPA+WPA2网络:
create_ap wlan0 eth0 MyAccessPoint MyPassPhrase
-
无互联网连接的网络:
create_ap -n wlan0 MyAccessPoint MyPassPhrase
-
桥接互联网共享:
create_ap -m bridge wlan0 eth0 MyAccessPoint MyPassPhrase
-
桥接互联网共享(预配置网桥接口):
create_ap -m bridge wlan0 br0 MyAccessPoint MyPassPhrase
-
从同一 WiFi 接口共享互联网:
create_ap wlan0 wlan0 MyAccessPoint MyPassPhrase
-
选择不同的 WiFi 适配器驱动程序:
create_ap --driver rtl871xdrv wlan0 eth0 MyAccessPoint MyPassPhrase
-
没有使用管道的密码短语(开放网络):
echo -e "MyAccessPoint" | create_ap wlan0 eth0
-
使用管道的 WPA + WPA2 密码短语:
echo -e "MyAccessPoint\nMyPassPhrase" | create_ap wlan0 eth0
-
启用 IEEE 802.11n:
create_ap --ieee80211n --ht_capab '[HT40+]' wlan0 eth0 MyAccessPoint MyPassPhrase
-
客户端隔离:
create_ap --isolate-clients wlan0 eth0 MyAccessPoint MyPassPhrase
详细命令可以输入:
create_ap -h
四、开机启动
每次输指令开启树莓派比较麻烦,我们需要让树莓派能够在开机的同时启动热点,因此我们要用到systemd服务。
编辑create_ap的服务文件:
sudo nano /etc/create_ap.conf
内容和解释如下:
CHANNEL=default
GATEWAY=192.168.12.1
WPA_VERSION=2
ETC_HOSTS=0
DHCP_DNS=gateway
NO_DNS=0
NO_DNSMASQ=0
HIDDEN=0
MAC_FILTER=0
MAC_FILTER_ACCEPT=/etc/hostapd/hostapd.accept
ISOLATE_CLIENTS=0
SHARE_METHOD=nat
IEEE80211N=1
IEEE80211AC=0
HT_CAPAB=[HT40+]
VHT_CAPAB=
DRIVER=nl80211
NO_VIRT=0
COUNTRY=
FREQ_BAND=2.4
NEW_MACADDR=
DAEMONIZE=0
NO_HAVEGED=0
#开启热点要用的网卡,填你插到树莓派上的网卡名
WIFI_IFACE=wlan1
#互联网入口,填你树莓派接入互联网的网卡名
INTERNET_IFACE=eth0
#网络名称
SSID=
#密码
PASSPHRASE=
USE_PSK=0
保存并关闭文件。输入以下指令让create_ap能够开机自启:
sudo systemctl start create_ap
sudo systemctl enable create_ap
重启树莓派,你就能找到你刚刚设置好的热点了
五、一些问题
网卡插到树莓派上有可能射频被锁了,导致无法开启热点,输入rfkill查看是否有block项,如果有,输入
sudo rfkill unblock all
解锁网卡射频。
如果有“ERROR: Failed to initialize lock”错误,输入:
sudo rm /tmp/create_ap.all.lock
再尝试开启热点。