树莓派安装OpenWrt
开启网卡混杂模式
sudo ip link set eth0 promisc on
创建网络
docker network create -d macvlan --subnet=192.168.198.0/24 --gateway=192.168.198.1 -o parent=eth0 macnet
macvlan 是一种虚拟网卡的解决方案:
macvlan并不创建网络,只创建虚拟网卡。
macvlan会
共享物理网卡
所链接的外部网络
,实现的效果跟桥接模式是一样的。
使用 docker network ls
命令可以看到网络macnet
已建立成功
下载镜像
docker pull sulinggg/openwrt:latest
创建并启动容器
docker run --restart always --name openwrt -d --network macnet --privileged sulinggg/openwrt:latest /sbin/init
其中:
--restart always
参数表示容器退出时始终重启,使服务尽量保持始终可用;
--name openwrt
参数定义了容器的名称;
-d
参数定义使容器运行在 Daemon 模式;
--network macnet
参数定义将容器加入 maxnet
网络;
--privileged
参数定义容器运行在特权模式下;
/sbin/init
定义容器启动后执行的命令。
进入容器修改参数
docker exec -it openwrt bash
vim /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 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'
config interface 'vpn0'
option ifname 'tun0'
option proto 'none'
所有的 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'
option ipaddr
项目定义了 OpenWrt 的 IP 地址,在完成网段设置后,IP最后一段可根据自己的爱好修改(前提是符合规则且不和现有已分配 IP 冲突)。