树莓派实现无线路由器

树莓派买很久了,之前是用来做 nas,存点东西。最近没路由器用,就想把树莓派改成路由器。

本来想刷 openwrt,但是自己手上就一张系统 tf 卡,我又不想格掉。找一下不用刷 openwrt 也能做路由器的方案,结果还真有大佬实现过。

安装 create_ap

安装软件

1
2
3
4
sudo apt-get install util-linux procps hostapd iproute2 iw haveged dnsmasq
git clone https://github.com/oblique/create_ap
cd create_ap
sudo make install

测试

在这之前先要把网联连上树莓派,并且接上屏幕设置。

查看现在的网卡

1
ip addr

会看到lo,enxb827eb9eceed,wlan0三个设备,其中enxb827eb9eceed就是有线网的设备,而wlan0就是无线网。

测试一下

1
sudo create_ap wlan0 enxb827eb9eceed RasPi-wifi 12345678

如果执行出错,那可能是 wlan0 已经连上了网,这时候需要把 wifi 断开再重试

1
2
3
sudo ifconfig wlan0 down
# 如果不行用下面这个
rfkill unblock all

执行成功,这时候在手机上就能找到名字为RasPi-wifi的 wifi。

设置开机启动

修改/usr/lib/systemd/system/create_ap.service文件

1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=Create AP Service
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/create_ap --config /etc/create_ap.conf
KillSignal=SIGINT
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

修改 config 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
CHANNEL=default
GATEWAY=10.0.0.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=0
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=wlan0
INTERNET_IFACE=enxb827eb9eceed
SSID=RasPi-wifi
PASSPHRASE=12345678
USE_PSK=0

配置开机关闭 wifi,在/etc/rc.local 添加rfkill unblock all

1
+ rfkill unblock all

设置开机启动

1
sudo systemctl enable create_ap.service

重启。

停用

/etc/rc.local中删除rfkill unblock all

1
+ rfkill unblock all

关闭开机启动

1
sudo systemctl disable create_ap.service

参考资料


树莓派实现无线路由器
https://bubao.github.io/posts/2d0eb407.html
作者
一念
发布于
2021年6月12日
许可协议