[N1盒子]Docker内OpenWRT设置成主路由,docker上的OpenWRT连接光猫拨号上网
警告:大量CLI操作,不熟悉Linux者慎入
前两天看到这篇恩山网友大作,非常有启发。其中详细地记录了在N1、光猫(必须关闭DHCP服务)都接在普通交换机的网络环境下,N1通过内部运行在docker上的OpenWRT连接光猫拨号上网,为交换机上其他设备提供网络服务的设置过程。相当于单臂路由另一种很好的实现,armbian提供硬件驱动与服务,路由系统却是货真价实的OpenWRT。
本帖延续这个思路,硬件层仍由armbian控制,运行在docker上的OpenWRT作为主路由,扮演Routerd AP的角色。
本方案适用场合:在家里网络末端提供一台软路由,有线接入上级网络(DHCP或PPPOE),允许其它无线设备接入其WiFi分享网络。出差外出时也可随身携带,提供自己熟悉的网络环境。
本方案在armbian_5.60_aml-s9xxx_debian_stretch_default_4.18.7_20180922.img.xz与armbian_5.77_aml-s905_debian_stretch_default_5.0.2_20190401.img.xz上均测试通过,OpenWRT用的是18.06.2官方版本,其它标准OpenWRT应该也没问题(未做测试)。
以下为具体设置步骤,假设N1已经刷好armbian系统,参考 N1刷入Armbian后换软件源、安装Docker并提速 安装docker
基本设定
host IP: 192.168.1.254, gateway: 192.168.1.1(OpenWRT) container IP: 192.168.1.1, gateway: DHCP from upstream
ARMBIAN设置
1 软件准备
# 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
2 网络设置
# vi /etc/network/interfaces
...
iface eth0 inet dhcp
up ip link set eth0 promisc on
....
# vi /etc/network/interfaces.d/bridge
auto br-lan
iface br-lan inet static
address 192.168.1.254
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1
bridge_ports wlan0
3 启动WiFi(2.4G)
# vi /etc/default/hostapd
...
DAEMON_CONF="/etc/hostapd.conf"
...
# vi /etc/hostapd.conf
...
interface=wlan0
...
bridge=br-lan
driver=nl80211
...
4 N1重启后,新建container与配套网络
# docker network create -d bridge --subnet 192.168.1.0/24 --gateway=192.168.1.254 -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 -o parent=eth0 wanet # docker network connect wanet N1 # docker exec -it N1 sh
Container(OpenWRT)设置
网络设置
# vi /etc/config/network
...
config interface 'wan'
option ifname 'eth1'
option proto 'dhcp'
config interface 'wan6'
option ifname '@wan'
option proto 'dhcpv6'
ARMBIAN设置
1 重启N1后,手工启动container
# docker start N1
2 更换缺省路由到OpenWRT,确认网络环境正常: 手机可以看到N1放出的ARMBIAN 无线信号,用密码 12345678 登入后应能正常上网。网络设置里可以看到gateway为192.168.1.1
确认一切正常?设置container自动重启
# docker update --restart always N1
3 确认/etc/resolv.conf内nameserver 指向正确的IP(按本文设置应该是192.168.1.1):设置docker后DHCP获取上级网络信息往往出问题,导致docker内OpenWRT DNS不能正常解析。
4 最后重启N1,设置全部完成。
登入N1的无线网络后,可以通过 http://openwrt 访问路由器。
原文:https://www.right.com.cn/forum/thread-757154-1-1.html
点击链接加入群聊四群:722808830
点击链接加入群聊三群:751529538(已满)
点击链接加入群聊二群:376877156(已满)
点击链接加入群聊一群:622891808(已满)
饿了么红包
本站附件分享,如果附件失效,可以去找找看