本文最后更新于: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 的步骤在此不再赘述,有需求的请先自行搜索完成安装。

基本设定

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 设置方案一

首先,完成相应的软件安装

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

然后,修改相关的网络设置文件

  1. 修改“network/interfaces”
vi /etc/network/interfaces #运行指令,以下为文件内容

...
iface eth0 inet dhcp
...
iface wlan0 inet manual
...
  1. 修改“interfaces.d/bridge”
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
  1. 修改“hostpad”
vi /etc/default/hostapd #运行指令,以下为文件内容

...
DAEMON_CONF="/etc/hostapd.conf"
...
  1. 修改“hostpad.conf”
vi /etc/hostapd.conf #运行指令,以下为文件内容

# 
# armbian hostapd configuration example
# 
# nl80211 mode
# 

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

### IEEE 802.11n
ieee80211n=1
require_ht=1
ht_capab=[HT40+]()[SHORT-GI-20]()[SHORT-GI-40]()[DSSS]()[CCK-40]
country_code=CN
ieee80211d=1
### IEEE 802.11n

### IEEE 802.11a
hw_mode=a
### IEEE 802.11a

### IEEE 802.11ac
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
### IEEE 802.11ac

# controlling enabled
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0

至此,重启 N1,新建 Container 与配套网络

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 文件

vi /etc/config/network

config interface 'loopback'
	option ifname 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config globals 'globals'
	option ula_prefix 'fd09:e695:b0d5::/48'

config interface 'lan'
	option type 'bridge'
	option ifname 'eth0'
	option proto 'static'
	option ipaddr '10.168.10.10'
	option netmask '255.255.255.0'
	option ip6assign '60'

config interface 'wan'
	config interface 'wan'
	option ifname 'eth1'
	option proto 'dhcp'	

config interface 'wan6'
	option ifname '@wan'
	option proto 'dhcpv6'

最后重启 N1

reboot #重启N1

ARMBIAN 设置方案二

  1. 重启 N1 后,手工启动 container
    docker start N1
  2. 更换缺省路由到 OpenWRT,确认网络环境正常
    route del default
    route add default gw 10.168.10.10
  3. 此时应该能够搜索到名为 N1 的无线信号,密码 12345678,确认一切正常后,设置 container 自动重启
    docker update --restart always N1
  4. 修改网络设置
vi /etc/network/interfaces #运行指令,以下为文件内容

...
iface eth0 inet manual
...
  1. 重启 N1,设置全部完成
  2. 登陆 N1 的无线网络后,可以通过 http://openwrt 访问路由器

参考链接

【原创】Docker内OpenWRT设置成主路由,为WiFi接入的客户提供源自有线网口的网络服务
利用hostapd启动ac 5G无线AP


本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!

利用 Clash 搭配机场实现科学上网 上一篇
关于 N1 旁路由的设置 下一篇