本文使用的是树莓派来进行的部署,拥有docker的主机均可食用本教程
开启网卡混用
ip link set eth0 promisc on
创建网络
docker network create -d macvlan --subnet=192.168.123.0/24 --gateway=192.168.123.1 -o parent=eth0 macnet
这一条命令需要根据树莓派所处的网络环境来做修改,可以使用 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 pull registry.cn-shanghai.aliyuncs.com/suling/openwrt:latest
or
docker pull sulinggg/openwrt:latest
or
docker pull docker.m.daocloud.io/nonnichen/nonniwrt:latest
创建并启动
docker run --restart always --name openwrt -d --network macnet --privileged registry.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 exec -it openwrt bash
其中:
openwrt为容器名称;
bash为进入容器后执行的命令。
执行此命令后我们便进入 OpenWrt 的命令行界面,首先,我们需要编辑 OpenWrt 的网络配置文件:
vim /etc/config/network
我们需要更改 Lan 口设置
config interface 'lan'
option type 'bridge'
option ifname 'eth0'
option proto 'static'
option ipaddr '192.168.123.100'
option netmask '255.255.255.0'
option ip6assign '60'
option gateway '192.168.123.1'
option broadcast '192.168.123.255'
option dns '192.168.123.1'
其中:
所有的 192.168.123.x 需要根据树莓派所处网段修改,option gateway和option dns填写路由器的 IP,若树莓派获得的 IP 为 192.168.2.154,路由器 IP 为192.168.2.1,则需要这样修改:
config interface 'lan'
option type 'bridge'
option ifname 'eth0'
option proto 'static'
option ipaddr '192.168.2.100'
option netmask '255.255.255.0'
option ip6assign '60'
option gateway '192.168.2.1'
option broadcast '192.168.2.255'
option dns '192.168.2.1'
重启网络
/etc/init.d/network restart
进入控制面板
在浏览器中输入第 5 步option ipaddr 项目中的 IP 进入 Luci 控制面板,若option ipaddr 的参数为 192.168.123.100,则可以在浏览器输入 http://192.168.123.100进入控制面板。
用户名:root
密码:password
关闭 DHCP 服务
在 “网络 - 接口 - Lan - 修改” 界面中,勾选下方的 “忽略此接口(不在此接口提供 DHCP 服务)”,并“保存&应用”。
其他修复
1.关闭 WLAN 硬件加速
设置旁路路由后,若出现访问国内网站网速慢,不稳定的情况(多见于 Pandavan 及其改版固件,如华硕老毛子固件),请在路由器的控制面板中关闭有关 WLAN 的硬件加速,比如选择“Offload TCP/UDP for LAN”(若未出现此现象请忽略):
2.宿主机网络修复
OpenWrt 容器运行后,宿主机内可能无法正常连接外部网络,需要修改宿主机的/etc/network/interfaces文件以修复:
(须结合实际网络情况,不能照抄配置)
cp /etc/network/interfaces /etc/network/interfaces.bak # 备份文件
vim /etc/network/interfaces # 使用 vim 编辑文件
以“树莓派爱好者基地”64 位 Debian 为例,向文件末尾添加:
auto eth0
iface eth0 inet manual
auto macvlan
iface macvlan inet static
address 192.168.123.200
netmask 255.255.255.0
gateway 192.168.123.1
dns-nameservers 192.168.123.1
pre-up ip link add macvlan link eth0 type macvlan mode bridge
post-down ip link del macvlan link eth0 type macvlan mode bridge
其中,所有的 192.168.123.x都需要按照树莓派所处网段更改,gateway和dns-nameservers填写路由器的 IP,若树莓派获得的 IP 为 192.168.2.154,路由器 IP 为192.168.2.1,则需要这样修改:
auto eth0
iface eth0 inet manual
auto macvlan
iface macvlan inet static
address 192.168.2.200
netmask 255.255.255.0
gateway 192.168.2.1
dns-nameservers 192.168.2.1
pre-up ip link add macvlan link eth0 type macvlan mode bridge
post-down ip link del macvlan link eth0 type macvlan mode bridge
修改后重启树莓派,之后树莓派的局域网 IP 地址将会固定为/etc/network/interfaces文件中address参数中的地址。
评论 (0)