OECT刷飞牛,用docker安装openwrt后不能进入openwrt
OECT 刷完飞牛,Docker 里跑的 OpenWrt 死活进不去后台,90% 都是“macvlan 把宿主机和容器彻底隔开了”——也就是你能从手机、电脑 ping 通 OpenWrt,但飞牛本体死活打不开 192.168.x.x,于是你以为“没启动”,其实它好着呢,只是你没给它搭个“跳板”。
下面按人话步骤来,一条一条对号入座。
1. 先确认容器真的在跑
SSH 进飞牛,敲:
docker ps -a | grep openwrt
看到 STATUS 是
Up x minutes 就继续;如果是 Exited,先 docker logs openwrt 看报错,大概率是 IP 冲突或没加 --privileged,把日志贴出来再对症下药。2. 给物理网卡开“混杂模式”
飞牛 OS 的网卡名字怪,别照抄别人教程的
先
eth0。先
ip a 找到带 -ovs 的那一项,比如我的是 enp2s0-ovs,接着:ip link set enp2s0-ovs promisc on
重启会失效,想开机自动执行:
飞牛面板 → 控制面板 → 计划任务 → 开机脚本,把上面那条塞进去,保存
。
飞牛面板 → 控制面板 → 计划任务 → 开机脚本,把上面那条塞进去,保存
3. 建 macvlan 网络(别照抄 IP,换成你自己家网段)
我家主路由是 192.168.31.1,所以:
# 先删掉之前乱建的
docker network rm openwrt-lan 2>/dev/null
# 再建新的
docker network create -d macvlan \
--subnet=192.168.31.0/24 --gateway=192.168.31.1 \
-o parent=enp2s0-ovs openwrt-lan
4. 拉镜像 + 跑容器
docker run -d --restart always --name openwrt \
--network openwrt-lan \
--privileged \
sulinggg/openwrt:x86_64 /sbin/init
镜像用
sulinggg 就行,别用太老的版本。5. 改 OpenWrt 自己的 LAN IP
容器里执行:
docker exec -it openwrt bash
vi /etc/config/network
找到
改完重启网络:
config interface 'lan',把 option ipaddr 改成你家网段里没人用的地址,比如我改成 192.168.31.2。改完重启网络:
/etc/init.d/network restart
6. 最关键一步——给飞牛自己搭“跳板”
macvlan 默认不让宿主机和容器互通,所以你在飞牛浏览器里输入 192.168.31.2 会超时,并不是 OpenWrt 挂了,而是数据包被隔离了。
解决办法:在飞牛宿主机再虚拟一个小接口当“内鬼”:
解决办法:在飞牛宿主机再虚拟一个小接口当“内鬼”:
# 名字随便起,me_to_op 就行
ip link add me_to_op link enp2s0-ovs type macvlan mode bridge
ip addr add 192.168.31.5/24 dev me_to_op
ip link set me_to_op up
# 让访问 192.168.31.2 的流量走这个接口
ip route add 192.168.31.2 dev me_to_op
执行完立刻去飞牛浏览器敲 192.168.31.2,熟悉的 LuCI 登录界面就蹦出来了
。
7. 想让“跳板”开机自动有?
把上面 4 条命令扔
/etc/rc.local(没有就新建),或者飞牛计划任务里再加一条“开机脚本”,完事。8. 还是进不去?
-
电脑、手机能 ping 通 192.168.31.2,但飞牛不行 → 100% 没搭跳板,回第 6 步。
-
全都 ping 不通 → 容器没跑起来,回第 1 步看日志。
-
能打开页面,但拨号失败 → 容器里 WAN/LAN 口顺序反了,把
-o parent的两张网卡对调再重建网络。
一句话总结:
容器其实早就启动了,就是 macvlan 把飞牛本体挡在了门外;给宿主机加个小接口当“内鬼”,立马能进后台。
容器其实早就启动了,就是 macvlan 把飞牛本体挡在了门外;给宿主机加个小接口当“内鬼”,立马能进后台。
展开全文


发表评论