关于基于 docker 部署 openwrt

2023-04-20 15:54:16 +08:00
 JOKERdmb

我先陈述一下环境吧!

硬件:畅网双网口软路由 系统:ubuntu 22.04 网络环境:学校工位,通过一个静态 ip 上网(只有一个静态 ip ),软路由的 eth0 连接到外网。eth1 连接了一个小交换机。

各位大佬帮帮忙,卡在这个问题上好久好久了。自编译了一个支持 docker 部署的 openwrt 镜像,但是不想在真机上部署,想把它部署在 docker 上。现在搜了好多好多教程,基本的配置方法大概是: 1 、开启网卡混杂模式 2 、创建一个 macvlan 的虚拟网络,然后将 lan 口(在我的机器上是 eth1 )加入这个 macvlan 的网络 这两步已经成功,并且能够进入 web 管理界面,但是现在的问题就是,我不知道该如何配置 wan 口也就是上网的口(在我的机器上是 eth0 ),看了好多教程都是开启 DHCP 等待分配,但是学校工位的网络是给一个网口给一个静态 ip ,没找到类似这种的教程,望大佬们帮帮忙给小弟一个具体的 Docker 部署 openwrt 的方法,万分感谢!

3057 次点击
所在节点    宽带症候群
21 条回复
kaedeair
2023-04-20 16:07:05 +08:00
docker 部署的 openwrt 只能做旁路由不能做主路由
JOKERdmb
2023-04-20 16:13:29 +08:00
@kaedeair 啊!! T T ,那还需要再给镜像加一个网络吗(我现在只有一个 macvlan ,用在了 lan 口),直接 DHCP 就可以吗
EasonSummer
2023-04-20 16:14:24 +08:00
我没实践过 搜到这个不知道对你有没有帮助。https://www.cnblogs.com/luoshuifushen/p/16989469.html
JOKERdmb
2023-04-20 16:15:27 +08:00
@EasonSummer 我来康康!!!
mohumohu
2023-04-20 16:36:18 +08:00
其实你有没有考虑过你真的需要 openwrt 吗?你都能部署 docker 了,那 openwrt 提供的服务是不是对应的 docker 也可以提供
kaedeair
2023-04-20 16:36:31 +08:00
@JOKERdmb 2# 做主路由需要虚拟机跑 openwrt ,并直通一个物理网口做 wan
EasonSummer
2023-04-20 16:43:00 +08:00
也是,如果要富强,v2rayA 或 clash 的 docker 都能办到也能透明代理。其他业务 docker 更是可以了
JOKERdmb
2023-04-20 16:46:29 +08:00
@kaedeair 大佬,也就是 docker 不行,需要 kvm 是不是
JOKERdmb
2023-04-20 16:46:53 +08:00
@EasonSummer 我其实也就是富强,是不是没有必要非要 op
JOKERdmb
2023-04-20 16:49:31 +08:00
@mohumohu 我其实就是一个富强,别的没有啥刚需。大佬一语点醒梦中人
JOKERdmb
2023-04-20 16:50:51 +08:00
@mohumohu 说白了,我需要的功能就是帕斯沃,不知道有没有替代品
kaedeair
2023-04-20 16:57:59 +08:00
你这个需求,直接 linux 跑代理就行了啊
levenwindy
2023-04-20 17:02:00 +08:00
```bash
# 假设 lan 口 (eth1)为 192.168.1.1 ,作为网关, 没有 ipv6 就删掉(--ipv6 --subnet=fe80::/80 )
docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 --ipv6 --subnet=fe80::/80 -o parent=eth1 macvlan1
# 指定 ip 192.168.1.254 ( OP 管理口)
docker run -d --name op1 --restart=always --privileged --net=macvlan1 --ip=192.168.1.254 < 镜像名 >
```
/etc/config/network 记得修改里面的配置,后面自己弄吧
totoro625
2023-04-20 17:02:01 +08:00
你可能仅仅需要一个能配置机器代理的程序 ShellClash: https://github.com/juewuy/ShellClash
luckjoe680
2023-04-20 17:02:06 +08:00
@JOKERdmb 跑个 clash 不比 passw 强?
JOKERdmb
2023-04-20 17:06:33 +08:00
@totoro625 跑起来这个以后,效果跟 pw 一样吗
JOKERdmb
2023-04-20 17:07:32 +08:00
@luckjoe680 我是想软路由接一个交换机,然后笔记本啥的客户端接上去就能富强,小猫也能做到吗
cwbsw
2023-04-20 19:42:52 +08:00
docker 设计是部署应用的,网络配置就是残废。
你的需求建议用 LXC 来解决,和 docker 同样是基于 linux 容器技术,但是功能强大的多。
luckjoe680
2023-04-21 07:39:36 +08:00
@JOKERdmb 小猫就是用来干这个的呀 openwrt 上也是用小猫呀
libook
2023-04-21 12:22:20 +08:00
Docker 是可行的,我曾经使用 OpenWrt 官方的 rootfs 镜像成功做过旁路网关,几台设备配置网关为这个 OpenWrt 的地址实现透明代理,但已经忘了怎么配置的了。

可以参考这个,但不确定是不是我最终参考的 https://sspai.com/post/68511

不过有两点不是很好。
一个是容器几乎劫持了宿主机,包括但不限于 tty ,这个跟用容器来做环境隔离避免污染的预期不大相符。
另一个是做的所有配置更改都是在容器内部,重新部署就全都丢失了,得研究如何在更新镜像的同时保留设置。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/934065

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX