树莓派hostapd + dnsmasq搭建软路由, docker openwrt 配置旁路由网上教程都挺多,但很少把两个同时结合起来使用 。
配置如下:
树莓派4b ubuntu20.04
WAN:自带网卡(eth0) 手机usb共享热点(eth1)
LAN:wlan0(5g wifi) wlan1(2.4g wifi) eth2(usb转网卡rj45)
通过eth0 或eth1 从上级路由获取网络,通过无线网卡和usb有线网卡分享出去,openwrt旁路由处理部分网络(可选)
安装必要工具
# 先更新apt源(可以换清华大学或者中科大源)
sudo apt update
docker 按照官方文档安装,网络不好可以按照文档Install from a package 手动下载arm64的deb包放到树莓派,然后dpkg安装
Install Docker Engine on Ubuntudocs.docker.com![9193884279ecf6b1be779dc0bf40591c.png](https://i-blog.csdnimg.cn/blog_migrate/8300a7927faebdf7133456f21f8fa0f4.png)
创建docker bridge(同时也是分享热点bridge)
=192.168.22.1/24 --gateway
启动openwrt容器
docker pull buddyfly/openwrt-aarch64:latest
docker run --name openwrt --network mybr -d --cap-add=NET_ADMIN buddyfly/openwrt-aarch64:latest
配置ubuntu网络
#修改未如下
hostapd配置2.4g 和 5g wifi
两个基本一样,就interface, hw_mode, channel,ssid稍微有改动
网卡wlan0
# 指定网卡
网卡wlan1
# 指定网卡
开启wifi
sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf /etc/hostapd/hostapd_wlan1.conf
现在应该能搜索到RASPNET_wlan0 和 RASPNET_wlan1的wifi热点
dnsmasq 配置dhcp服务
#先备份文件
sudo cp /etc/dnsmasq.conf /etc/dnsmasq.confback
sudo nano /etc/dnsmasq.conf
访问外网
#开启内核转发
sudo nano /etc/sysctl.conf
OK!现在手机连上热点应该可以访问外网了 ~
配置旁路由
#进入容器
docker
浏览器访问192.168.22.230,默认密码password
![5e37189eaf50c9421ff72ade6a5626e8.png](https://i-blog.csdnimg.cn/blog_migrate/e13744727fbf043d9c02469df84ea4c7.jpeg)
修改dnsmasq配置,自动下发旁路由网关
#下发网关 把之前的192.168.22.1改成230
dhcp-option
重新连接热点,如果可以上网就全部完成了~
设置开机启动
#内容如下 start
完工~, 其他设备可以通过连接wifi 或者 usb网口连接树莓派上网了
反正加入设备之后,就往bridge添加网口,这样就可以通过新网口共享网络
#eth3 eth4 可以从执行ip a命令查看
sudo brctl addif brlan eth3
sudo brctl addif brlan eth4
......