恩山无线论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
当贝投影
查看: 292|回复: 11

自编译openwrt,在群晖docker下可以上网,但是不能使用科学插件!

[复制链接]
发表于 2022-4-25 23:46 | 显示全部楼层 |阅读模式
本帖最后由 fine864 于 2022-4-26 00:00 编辑

自编译的openwrt,一个原版的,一个lean版的,2个镜像在群晖docker下安装,作为旁路由,表现为:局域网机器指定网关后可以上国内网站,但是使用科学插件添加airport(节点没有问题)就是不能出外面(打不开谷歌和油管),无论是插件““师夷长技以制夷”plus”还是“怕啥啥wall”都不能。同样的镜像在虚拟机ubuntu的docker里使用一切正常,添加同样的airport节点也可以顺利使用(可以打开谷歌和油管),在群晖的docker里就是死活不能使用科学插件。我想应该是我的群晖网络设置有问题,就是用别人编译好的镜像也应该是不能出去外面的,我搜索好久没有查找到同样问题的关键字,不得不发帖求助,可能对大神来说就是简单的一个命令,请不吝教一下小白!

以下是我群晖的一些网络设置:

7.png
微信图片_20220425230036.png

5.png
删除过和重新建立过macvlan
使用命令:sudo docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 --ip-range=192.168.1.50/24 -o parent=ovs_eth0 macvlan-lan


3.jpg

4.jpg

ip link set ovs_eth0 promisc on
容器使用的是macvlan网络,无论网卡是否打开混杂模式都没有用!

容器里可以ping通域名,指定这个容器的IP作为网关,可以上国内的网站
9.png

这是科学插件的设置,在科学插件里可以连接谷歌
微信图片_20220425230148.png

以下是我测试过的方法(都没用):
转发规则无论是接受还是拒绝
8.png
防火墙添加规则
6.png


iptables -t nat -I POSTROUTING -j MASQUERADE
iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53
iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53

这几条规则都试过!

进入镜像关闭防火墙:
/etc/init.d/firewall disable && /etc/init.d/firewall stop





我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-4-26 00:06 | 显示全部楼层
向大神学习下
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2022-4-26 11:52 | 显示全部楼层
各种关键词搜索过,找不到同样问题的解决放方法在线等
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-4-26 20:48 | 显示全部楼层
群晖的 docker 创建网络为什么创建 192.168.1.0/24 这个网段的?

sudo docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 --ip-range=192.168.1.50/24 -o parent=ovs_eth0 macvlan-lan

改成别的网段的,比如 192.168.2.0/24 的

192.168.1.1 是你的路由器 IP,192.168.1.16 是你的群晖 IP?

点评

是的,192.168.1.1是主路由的IP,群晖的IP是192.168.1.16,不想他指派IP的时候跟原有网络IP冲突,所以用192.168.1.50/24,这样他会在192.168.1.50开始分配IP,不知道这样对否?  详情 回复 发表于 2022-4-27 02:13
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2022-4-27 02:13 | 显示全部楼层
AllenHua 发表于 2022-4-26 20:48
群晖的 docker 创建网络为什么创建 192.168.1.0/24 这个网段的?

sudo docker network create -d macvla ...

是的,192.168.1.1是主路由的IP,群晖的IP是192.168.1.16,不想他指派IP的时候跟原有网络IP冲突,所以用192.168.1.50/24,这样他会在192.168.1.50开始分配IP,不知道这样对否?

点评

我理解你的想法,但是我猜测 docker 的 nat 可能会因为你这样的设置无法工作,。docker 会创建相关网卡,然后对宿主机的 iptables 的 nat 和 filter 表创建链和相关规则,如果和主路由处于同一个网段了 nat 可能会失  详情 回复 发表于 2022-4-27 09:16
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-4-27 09:16 | 显示全部楼层
fine864 发表于 2022-4-27 02:13
是的,192.168.1.1是主路由的IP,群晖的IP是192.168.1.16,不想他指派IP的时候跟原有网络IP冲突,所以用1 ...

我理解你的想法,但是我猜测 docker 的 nat 可能会因为你这样的设置无法工作,。docker 会创建相关网卡,然后对宿主机的 iptables 的 nat 和 filter 表创建链和相关规则,如果和主路由处于同一个网段了 nat 可能会失败。你试试改成不同网段的看看。其实不用自己创建网络的,docker 默认的 bridge network 是基于 bridge 的驱动,就够用了。它创建的是 172.17.0.0/16 网段的网络,可以容纳的主机数量还更多。

点评

docker的nat应该是正常工作的,不然容器里不会ping的通百度。而指定不同网段的话或者使用默认的bridge,可以让容器里的openwrt正常工作吗?容器的openwrt怎么指定网关?是指定宿主机作为网关吗?  详情 回复 发表于 2022-4-27 19:49
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-4-27 09:18 | 显示全部楼层
既然用了 docker,这一层 nat 的损耗是不可避免的。当然了,这些损耗和 docker 带来的便利比起来其实不值一提。(有误请指正
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-4-27 10:13 | 显示全部楼层
同样搞了好久了搞不定,楼主解决了告诉我,谢谢
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2022-4-27 19:49 | 显示全部楼层
本帖最后由 fine864 于 2022-4-27 19:59 编辑
AllenHua 发表于 2022-4-27 09:16
我理解你的想法,但是我猜测 docker 的 nat 可能会因为你这样的设置无法工作,。docker 会创建相关网卡, ...

docker的nat应该是正常工作的,不然容器里不会ping的通百度。而指定不同网段的话或者使用默认的bridge,可以让容器里的openwrt正常工作吗?容器的openwrt怎么指定网关?是指定宿主机作为网关吗。这样的话我局域网的机器如何配置ip才能既使用旁路由功能,又和局域网的其他机器正常通信?

点评

容器对应网络的网关 就是 openwrt 的出口地址 你创建网络的语句 sudo docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 --ip-range=192.168.1.50/24 -o parent=ovs_eth0 macv  详情 回复 发表于 2022-4-27 20:00
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2022-4-27 19:56 | 显示全部楼层
我在Windows下用VM虚拟机装了一个ubuntu,同样的网络配置,同样的镜像,却是一点问题都没有(可以使用科学插件浏览外网)。。。难道我的群晖出问题了?
我的群晖有一些个人相片,和一些积攒来学习的高清电影,太多内容不好迁移,我也不敢随便重置它!
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-4-27 20:00 | 显示全部楼层
fine864 发表于 2022-4-27 19:49
docker的nat应该是正常工作的,不然容器里不会ping的通百度。而指定不同网段的话或者使用默认的bridge, ...

容器对应网络的网关 就是 openwrt 的出口地址

你创建网络的语句

sudo docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 --ip-range=192.168.1.50/24 -o parent=ovs_eth0 macvlan-lan

这不是 192.168.1.1 似乎是和你的主路由 IP 冲突了?

点评

我在虚拟机ubuntu下也是同样的网络配置,命令也是一样的,却没有问题。。。  详情 回复 发表于 2022-4-27 20:04
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2022-4-27 20:04 | 显示全部楼层
AllenHua 发表于 2022-4-27 20:00
容器对应网络的网关 就是 openwrt 的出口地址

你创建网络的语句

我在虚拟机ubuntu下也是同样的网络配置,命令也是一样的,却没有问题。。。
我的恩山、我的无线 The best wifi forum is right here.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )|网站地图

GMT+8, 2022-5-19 07:30

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表