本文最后更新于:2022年7月6日 晚上
刷入 Armbian 的 N1 可以通过安装 Docker 做很多事情,部署 OpenWRT 路由系统就是其中之一,同时利用 Hostapd 更可以开启 Wi-Fi 热点,方便作为一台便携路由使用。
该方案使用场景:在任意网络末端,N1 通过有线连接接入上级路由(DHCP或PPPoE),允许其他无线设备接入其 Wi-Fi 分享网络。
本方案在 armbian_5.77_aml-s905_Ubuntu_bionic_default_5.0.2_20190401.img.xz_ 和 Openwrt 18.06.2 官方固件下测试通过。
关于 N1 刷入 Armbian 并且安装 Docker 的步骤在此不再赘述,有需求的请先自行搜索完成安装。
基本设定
1 2 3 4
| Wi-Fi热点IP和网关地址 AP IP: 10.168.10.1, gateway: 10.168.10.10 Docker Container IP和网关地址,该处192.168.10.0可按照实际情况修改 container IP: 10.168.10.10, gateway: DHCP from upstream network 192.168.10.0/24
|
ARMBIAN 设置方案一
首先,完成相应的软件安装
1 2 3
| apt-get update apt-get install hostapd docker import https://downloads.openwrt.org/releases/18.06.2/targets/armvirt/64/openwrt-18.06.2-armvirt-64-default-rootfs.tar.gz openwrt:18.06.2
|
然后,修改相关的网络设置文件
- 修改“network/interfaces”
1 2 3 4 5 6 7
| vi /etc/network/interfaces #运行指令,以下为文件内容
... iface eth0 inet dhcp ... iface wlan0 inet manual ...
|
- 修改“interfaces.d/bridge”
1 2 3 4 5 6 7 8 9
| vi /etc/network/interfaces.d/bridge
auto br-lan iface br-lan inet static address 10.168.10.1 netmask 255.255.255.0 dns-nameserver 10.168.10.10 gateway 10.168.10.10 bridge_ports wlan0
|
- 修改“hostpad”
1 2 3 4 5
| vi /etc/default/hostapd
... DAEMON_CONF="/etc/hostapd.conf" ...
|
- 修改“hostpad.conf”
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| vi /etc/hostapd.conf #运行指令,以下为文件内容
interface=wlan0 hw_mode=g channel=44 bridge=br-lan driver=nl80211
logger_syslog=0 logger_syslog_level=0 wmm_enabled=1 wpa=2 preamble=1
wpa_psk=66eb31d2b48d19ba216f2e50c6831ee11be98e2fa3a8075e30b866f4a5ccda27 wpa_passphrase=12345678 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP auth_algs=1 macaddr_acl=0
noscan=1
ieee80211n=1 require_ht=1 ht_capab=[HT40+]()[SHORT-GI-20]()[SHORT-GI-40]()[DSSS]()[CCK-40] country_code=CN ieee80211d=1
hw_mode=a
ieee80211ac=1 vht_capab=[MAX-MPDU-3895]()[SHORT-GI-80]()[SU-BEAMFORMEE]() vht_oper_chwidth=1 vht_oper_centr_freq_seg0_idx=42 basic_rates=60 90 120 180 240 360 480 540 disassoc_low_ack=0 ssid=N1
ctrl_interface=/var/run/hostapd ctrl_interface_group=0
|
至此,重启 N1,新建 Container 与配套网络
1 2 3 4 5 6
| docker network create -d bridge --subnet 10.168.10.0/24 --gateway=10.168.10.1 -o "com.docker.network.bridge.name=br-lan" lanet docker run -d --name N1 --network lanet --privileged openwrt:18.06.2 /sbin/init docker network create -d macvlan --subnet=192.168.10.0/24 --gateway=192.168.10.1 -o parent=eth0 wanet docker network connect wanet N1
docker exec -it N1 sh
|
然后再次修改 network 文件
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
| vi /etc/config/network
config interface option ifname option proto option ipaddr option netmask
config globals option ula_prefix
config interface option type option ifname option proto option ipaddr option netmask option ip6assign
config interface config interface option ifname option proto
config interface option ifname option proto
|
最后重启 N1
reboot #重启N1
ARMBIAN 设置方案二
- 重启 N1 后,手工启动 container
docker start N1
- 更换缺省路由到 OpenWRT,确认网络环境正常
route del default
route add default gw 10.168.10.10
- 此时应该能够搜索到名为 N1 的无线信号,密码 12345678,确认一切正常后,设置 container 自动重启
docker update --restart always N1
- 修改网络设置
1 2 3 4 5
| vi /etc/network/interfaces
... iface eth0 inet manual ...
|
- 重启 N1,设置全部完成
- 登陆 N1 的无线网络后,可以通过 http://openwrt 访问路由器
参考链接
【原创】Docker内OpenWRT设置成主路由,为WiFi接入的客户提供源自有线网口的网络服务
利用hostapd启动ac 5G无线AP