首页 > 其他分享 >在树莓派上使用Dockers运行Openwrt并作为主路由器的旁路由

在树莓派上使用Dockers运行Openwrt并作为主路由器的旁路由

时间:2023-08-14 22:00:49浏览次数:37  
标签:Dockers 树莓 -- 192.168 etc openwrt rc local Openwrt


开启网卡混杂模式

sudo ip link set eth0 promisc on

首先需要新建一个/etc/rc.local并添加可执行权限

sudo touch /etc/rc.local
sudo chmod +x /etc/rc.local

内容如下:

#!/bin/sh -e
#/etc/rc.local
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

ip link set eth0 promisc on
ip link add link eth0 dev mynet type macvlan mode bridge
ifconfig mynet 192.168.2.149/24
route add 192.168.2.100 dev mynet
sleep 18
route add default gw 192.168.2.100 dev mynet

exit 0

添加systemd程序

sudo vim /etc/systemd/system/rc-local.service

内容如下:

[Unit]
 Description=/etc/rc.local Compatibility
 ConditionPathExists=/etc/rc.local
 After=network.target

[Service]
 Type=forking
 ExecStart=/etc/rc.local start
 TimeoutSec=0
 RemainAfterExit=yes

[Install]
 WantedBy=multi-user.target

启动systemd程序

sudo systemctl enable rc-local
sudo systemctl start rc-local.service
sudo systemctl status rc-local.service

安装Openwrt

创建网络

docker network create -d macvlan --subnet=192.168.0.0/24 --gateway=192.168.0.1 -o parent=eth0 macnet
docker network ls

拉取镜像:

arch # 查看系统内核架构,最好拉取和系统架构相符合的镜像
# 拉取镜像,可以从https://hub.docker.com/r/sulinggg/openwrt查看
docker pull registry.cn-shanghai.aliyuncs.com/suling/openwrt:rpi4

启动镜像

启动命令如下

sudo docker run --restart always --name openwrt -d --network macnet --privileged registry.cn-shanghai.aliyuncs.com/suling/openwrt:rpi4 /sbin/init

--restart always参数表示容器退出时始终重启,使服务尽量保持始终可用;

--name openwrt参数定义了容器的名称;

-d参数定义使容器运行在 Daemon 模式;

--network macnet参数定义将容器加入 maxnet网络;

--privileged 参数定义容器运行在特权模式下;

registry.cn-shanghai.aliyuncs.com/suling/openwrt:armv8为 Docker 镜像名,因容器托管在阿里云 Docker 镜像仓库内,所以在镜像名中含有阿里云仓库信息;

/sbin/init定义容器启动后执行的命令。

docker container ps -a

修改容器相关参数

进入容器

docker exec -it openwrt bash
vim /etc/config/network
config interface 'lan'
        option ifname 'eth0'
        option proto 'static'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option ipaddr '192.168.2.100' #修改一个静态地址,可以通过这个地址访问到树莓派
        option gateway '192.168.2.1' #修改为路由器地址
        option dns '192.1682.1'     #修改为路由器地址
/etc/init.d/network restart

解决在docker中运行openwrt宿主机无法通信的问题

ip link set eth0 promisc on
ip link add link eth0 dev mynet type macvlan mode bridge
ifconfig mynet 192.168.2.149/24
route add 192.168.2.100 dev mynet
sleep 18
route add default gw 192.168.2.100 dev mynet



标签:Dockers,树莓,--,192.168,etc,openwrt,rc,local,Openwrt
From: https://blog.51cto.com/ifan/7082255

相关文章

  • EdgeBERT:极限压缩,比ALBERT再轻13倍!树莓派上跑BERT的日子要来了?
    文|Sheryc_王苏这个世界上有两种极具难度的工程:第一种是把很平常的东西做到最大,例如把语言模型扩大成能够写诗写文写代码的GPT-3;而另一种恰恰相反,是把很平常的东西做到最小。对于NLPer来说,这种“小工程”最迫在眉睫的施展对象非BERT莫属。从18年那个109M参数的BERT,到52M......
  • VSCode远程开发树莓派
    一、安装Remote-SSH在插件中直接搜索ssh,可找到Remote-SSH,点击安装。二、配置Remote-SSH2.1配置远程树莓派的IP和登录用户名2.2配置使用账号密码方式登录文件--->首选项--->设置--->扩展--->找到ShowLoginTerminal并勾选。三、连接树莓派可以选择在本窗口或者新建......
  • openwrt dns ssh相关问题
    DHCP/DNS中的技术叫dnsmasq可配置hosts和自定义挟持域名配置image.pngimage.png拦截优先级为挟持域名最高,另外需要重启服务方可生效,在系统,启动项中重启dnsmasqssh使用root用户SSH登录服务器出现AccessDenied错误只输入root就出现了错误,但是输入其他......
  • 试试用Rust为树莓派RP2040开发程序
    试试用Rust为树莓派RP2040开发程序实验环境树莓派Pico开发板DAPLINK调试器原工程链接:https://github.com/rp-rs/rp-hal-boards假设读者已经安装配置好了cargo环境1.安装配置获取工具链rustupselfupdaterustupupdatestablerustuptargetaddthumbv......
  • 树莓派烧录系统并在无外接屏幕的情况下连接VNC
    ​ 上个月老板给了块树莓派3B,开心坏了,在咸鱼上掏了很多零件,花了一段时间做出了一个二驱动的智能小车,但是觉得小车太小,就在又在咸鱼上掏了个四区的地盘,但是在拆卸的过程中,发现树莓派WIFI没有了,一开始我以为是零件的影响,拆了零件单独运行树莓派还是没有wifi,刷了个系统还是没有,最后得......
  • OpenWrt 关闭网口指示灯(适用各种路由器)
    手头有一个小米路由器4A(百兆版),网上能搜索到的方法只能关闭路由器的电源指示灯(左边),不能关闭网口指示灯(右边)。有说“黑色胶布贴住灯”的,也有说“带眼罩”的。经过多方查找,找到了关闭网口指示灯的方法。适用于各种路由器。注:需要openwrt系统打开路由器SSH在系统——管理权中新......
  • Raspberry Pi(树莓派4B)4轻松入门(上)-安装
    1-RaspberryPi4入门RaspberryPi是一款功能齐全的计算机,包装小巧,价格实惠--虽然价格因计算能力而异,但基本的Pi4起价为35美元。无论您是想要一个可以用来执行日常计算任务的设备,如创建令人惊叹的程序、电路或控制其他物理设备,RaspberryPi都能满足需求。RaspberryPi品牌......
  • frp 树莓派通过systemd设置开机启动
    树莓派操作系统为xxx@raspberrypi:$cat/etc/os-releasePRETTY_NAME="DebianGNU/Linux11(bullseye)"NAME="DebianGNU/Linux"VERSION_ID="11"VERSION="11(bullseye)"VERSION_CODENAME=bullseyeID=debianHOME_URL="https:......
  • 树莓派设置开机启动
    树莓派设置开机启动前言树莓派设置开机自启,看了好多教程都没有成功.我是要设置树莓派开机运行一个fastapi或者flask的服务,要求该程序在后台运行创建一个bash脚本运行python程序很关键,一定要使用bash脚本去运行python程序,然后关键一步要给你的bash脚本sud......
  • Exsi 安装OpenWRT并使用gparted扩容
    Exsi安装OpenWRT并使用gparted扩容所有操作均基于MACOS参考资料下载OpenWRT镜像镜像库地址:https://mirror.sjtu.edu.cn/openwrt/releases/[VERSION_ID]/targets/x86/64/22.03.5下载地址cd~\Downloadswgethttps://mirror.sjtu.edu.cn/openwrt/releases/22.03.5/targ......