Page 1
Last updated
Was this helpful?
Last updated
Was this helpful?
步骤开始成功登陆到树莓派的 SSH 后,在拉取镜像之前,我们还需要进行一些额外的工作:
1.打开宽带混杂模式
sudo ip link set eth0 promisc on
2.创建网络(须结合实际网络情况,不能照抄命令)
这一条命令需要根据树莓派的网络环境来修改,使用 sudo ifconfig 命令来查看树莓派eth0是否获得的IP地址。
如果树莓派获得的IP地址为192.168.2.154,那么说明树莓派集中192.168.2.x网段。
相应的,命令中的192.168.123.0和192.168.123.1需要被替换成192.168.2.0和192.168.2.1
docker network create -d macvlan --subnet=
192.168.2.0
/24 --gateway=
192.168.2.1
-o Parent=eth0 macnet
此时,我们使用 docker network ls
命令可以看到网络macnet已创建成功:
$ docker network ls NETWORK ID NAME DRIVER SCOPE 10e676133746bridgebridgelocalf5308b94e8fahosthostlocal16745ea66852macnetmacvlanlocal5e72e41ea02anonenulllocal
3.拉取镜像若身处国内,为提高拉取速度,请拉取阿里云仓库中的镜像:
docker pullregistry.cn-shanghai.aliyuncs.com/suling/openwrt:latest
同时也提供仓库在 Docker 官方仓库中的镜像:
docker pull sulinggg/openwrt:latest
镜像拉取完成后,我们可以执行docker images
命令查看镜像:
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZEregistry.cn-shanghai.aliyuncs.com/suling/openwrtlatest 4f4bc5dca2d9
3小时前112MB可见,镜像已成功拉取到本地。
4.创建并启动容器
docker run --restart always --name openwrt -d --network macnet --privilegedregistry.cn-shanghai.aliyuncs.com/suling/openwrt:latest /sbin/init
其中:
--restart always参数表示容器退出时不断重新启动,使服务尽量保持始终可用;
--name openwrt参数定义了容器的名称;
-d 参数定义使容器在 Daemon 模式下运行;
--network macnet 参数定义将容器加入 maxnet 网络;
--privileged 参数定义容器运行在特权模式下;
registry.cn-shanghai.aliyuncs.com/suling/openwrt:latest为Docker镜像名,因容器托管在阿里云Docker镜像仓库内,所以在镜像名中含有阿里云仓库信息;
/sbin/init定义容器启动后执行的命令。
启动容器后,我们可以使用 docker ps -a 命令查看当前运行的容器:
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a26cee7cade6 openwrt:latest "/sbin/init" 3hours ago Up 3hours openwrt
若容器运行信息STATUS均UP状态,则说明容器运行正常。
5.进入容器并修改相关参数(须结合实际网络情况,不能照抄配置)
docker exec -it openwrt bash 其中:
openwrt为容器名称;
bash为进入容器后执行的命令。
执行此命令后我们便进入 OpenWrt 的命令行界面,首先,我们需要编辑 OpenWrt 的网络配置文件:
vim /etc/config/network
我们需要更改 Lan 口设置:
配置接口 'lan' 选项类型 'bridge' 选项ifname 'eth0' 选项协议 'static' 选项ipaddr '192.168.123.100' 选项网络掩码 '255.255.255.0' 选项ip6assign '60' 选项网关 '192.168.123.1' 选项广播 '192.168.123.255' 选项dns '192.168.123.1' 其中:
所有的192.168.123.x需要根据树莓派剩余网段,选项网关和选项dns填写路由器的IP,若树莓派获得的IP为192.168.2.154,路由器IP为192.168.2.1,则需要这样修改:
配置接口'lan'选项类型'bridge'选项ifname'eth0'选项proto'static'选项ipaddr'192.168.2.100'选项网络掩码'255.255.255.0'选项ip6assign'60'选项网关'192.168.2.1'选项广播'192.168 .2.255' option dns '192.168.2.1' option ipaddr 项目定义了 OpenWrt 的 IP 地址,在完成网段设置后,IP 最后一段可根据自己的爱好修改(前提是已符合规则且不和现有分配 IP 冲突)。
6.重启网络 /etc/init.d/network restart
用户名:root
密码:password
8.关闭DHCP服务在“网络-接口-局域网-修改”界面中,勾选下方的“忽略此接口(此处接口不提供DHCP服务)”,并“保存&应用”。
关闭 “DHCP 服务”
9.主路由 DHCP 设置进入路由器后台中,将主路由的 DHCP 的默认网关和 DNS 服务器设置为第 5 步中选项 ipaddr 项目中的 IP。
主導 DHCP 设置
10.重新连接路由器完成以上操作后,断开设备(如手机,电脑)与路由器的连接,重新连接路由器,连接路由器的设备将获取到我们设置到的IP。
其他修复
1.关闭 WLAN 硬件加速旁路路由后,若出现访问国内网站网速慢、不稳定情况的(多见于 Pandavan 及其改版固件,如华硕老毛子固件),请在路由器的控制面板中关闭有关 WLAN 的硬件加速,比如选择“Offload TCP/UDP for LAN”(若未出现此现象请忽略):
关闭 WLAN加速
2. 行走机网络修复OpenWrt容器运行后,行走机内部可能无法正常连接外部网络,需要修改行走机的 /etc/network/interfaces 文件以修复:
(须结合实际网络情况,不能照抄配置)
cp /etc/network/interfaces /etc/network/interfaces.bak # 备份文件 vim /etc/network/interfaces # 使用 vim 编辑文件以“树莓派兴趣基地”64位 Debian为例,向文件补充添加:
自动 eth0 iface eth0 inet 手动
auto macvlan iface macvlan inet 静态地址 192.168.123.200 网络掩码 255.255.255.0 网关 192.168.123.1 dns-nameservers 192.168.123.1 pre-up ip link add macvlan link eth0 type macvlan modebridge post-down ip link del macvlan link eth0 mac VLAN模式桥接其中,所有的192.168.123.x都需要按照树莓派相邻网段更改,gateway和dns-nameservers填写路由器的IP,若树莓派获得的IP为192.168.2.154,路由器IP为192.168.2.1,则需要这样修改:
自动 eth0 iface eth0 inet 手动
auto macvlan iface macvlan inet 静态地址 192.168.2.200 网络掩码 255.255.255.0 网关 192.168.2.1 dns-nameservers 192.168.2.1 pre-up ip link add macvlan link eth0 类型 macvlan 模式网桥 post-down ip link del macvlan 链路 eth0 类型 macvlan 模式网桥修改后重启树莓派,之后树莓派的交换机IP地址将固定为/etc/network/interfaces文件中地址参数中的地址。
3. 如果路由器固件不支持自定义 DHCP 服务的网关及 DNS 地址,请手动指定网关(常见于路由器)
7.进入控制面板在浏览器中输入第5步option ipaddr项目中的IP进入Luci控制面板,若option ipaddr的参数为192.168.123.100,则可以在浏览器输入