群晖NAS使用分享系列:单臂旁路由部署(Docker版)

2023-08-21 21:50:15 17点赞 279收藏 56评论

前言:因为一些原因,我们需要给家里增加个路由器达到某些功能,尤其家里的路由器是无法刷开放版本的路由器,我们为了节约成本就必须借助于软件来实现路由器的功能,因此软路由应用而生,本文分享如何在群晖DSM 7.2系统环境下部署基于Docker的单臂软旁路由。关于如何在群晖DSM系统7.2版本部署Docker,请参考下面文章,本文默认您已经部署好Docker,并了解相关Docker操作和具有初步的Linux下操作命令能力。

一、网络环境

部署搭建单臂旁路由前,有必要简单介绍一下自己家网络环境,因为只有充分了解自己的网络环境才能合理的搭建适合自己的单臂旁路由系统。

群晖NAS使用分享系列:单臂旁路由部署(Docker版)

自己家里电信宽带,光猫桥接,JD云无线宝路由器负责拨号,都知道JD路由器为JD自己系统,开放性比较保守,因此很多功能无法实现。正好家里有台群晖DS220+,因此这台DS220+就担负起搭建单臂旁路由的重任(DS220+有2个千兆网口)。根据上述简单网络拓扑,只需要在群晖NAS上部署支持旁路由的系统即可,路由系统比较多,也没啥考虑的选的用的最多的openwrt。

二、部署

群晖NAS上部署旁路由系统,有2种方式,一种是利用群晖虚拟机功能,一种是利用Docker部署,这个需要根据自己群晖NAS支持能力来部署,自己的群晖NAS两种方式都支持,考虑到易用性和可维护性,选则了利用Docker部署,其实原理都一样,只是方法不同而已。

1、群晖NAS Container Manager(群晖7.2系统把Docker改成这个名字)注册表里搜opemwrt。选标星最多的。

选则openwrt镜像选则openwrt镜像

2、选好,下载,下载时需要在选则标签里填写x86_64,因自己的群晖NAS是intel cpu,当然你也可以不选择修改标签,按latest默认下载。

标签处可以填写信息更准确下载符合设备的镜像标签处可以填写信息更准确下载符合设备的镜像

下载好后就可以开始部署,请在容器里新增加,选好刚才下载的镜像,我自己的环境旁路由只运行1个应用,占用CPU内存资源很少,因此CPU和内存处做了一些设置,这个可以自己根据自己实际情况进行设置。当然为了稳定运行,也勾选了“启用自动重新启动”

初始设置CPU、内存按自己实际需求修改初始设置CPU、内存按自己实际需求修改

接下来的一些配置大部分按默认选则,网络这里先选则默认的bridge,需要注意的是“执行命令”处需要填写“/sbin/init",如果此处不填写,则镜像无法执行启动。

此处默认此处默认网络先默认bridge,执行命令处需要填写”/sbin/init网络先默认bridge,执行命令处需要填写”/sbin/init

另外“功能”处也请赋予openwrt镜像容器多的系统权限,毕竟是路由系统,对系统权力太少的权限会影响到路由系统的稳定运行。

功能处需要给容器一些系统使用权限功能处需要给容器一些系统使用权限

上述完成后,检查一下设置是否正常,“向导完成后立即启动容器”不要勾选,因为还需要对容器最重要的网络进行设置。

设置完成后先不要启动容器设置完成后先不要启动容器

接下来是最重要的容器网络配置,作为单臂旁路由,需要把旁路由器的地址设置成和主路由器的地址在同一个网段,并且互相通信无问题。作为Docker就需要新建一个网络设备利用Docker支持的macvlan协议打通容器与主路由器的通信。这个在群晖NAS的Container Manager里无法实现,必须用命令行来创建,通过SSH连接到群晖NAS,并切换到root用户,如何SSH连接群晖和切换root请参考下面文章。

登陆群晖命令行执行如下命令建立一个名字叫“openwrt_lan”,协议使用macvlan的网络设备,其主网络设备是群晖NAS的第二个千兆网口eth1,网关是主路由器地址192.168.58.1,子网和网关在一个网段的网络设备:

docker network create -d macvlan --subnet=192.168.58.0/24 --gateway=192.168.58.1 -o parent=eth1 openwrt_lan

创建协议为macvlan的网络设备给旁路由使用创建协议为macvlan的网络设备给旁路由使用

上述完成后,可以在Container Manager界面里的“网络”看到刚才创建的新的网络设备

创建好的网络设备创建好的网络设备

创建好后,就可以在“管理”里把openwrt的容器加到这个网络设备里。

添加openwrt容器到这个网络设备添加openwrt容器到这个网络设备

此时容器虽然已经添加到创建好的网路设备中,但是openwrt容器的地址还没有设置,因此需要启动这个容器并修改这个容器的地址为192.168.58.2,先启动容器,然后到容器里找到这个启动的容器,右键选“打开终端机”,新增一个命令“/bin/sh”,然后执行这个命令就可以进入openwrt的命令行操作界面。

打开终端机打开终端机群晖NAS使用分享系列:单臂旁路由部署(Docker版)群晖NAS使用分享系列:单臂旁路由部署(Docker版)

在命令行操作界面,对openwrt的网络配置文件/etc/config/network进行修改,修改lan的配置信息,把分配给openwrt的地址192.168.58.2和网关192.168.58.1修改好并保存。

修改openwrt的network配置文件修改openwrt的network配置文件

上述完成后,保存配置文件,并重新启动容器。启动好后,浏览器输入openwrt容器地址192.168.58.2就可以看到openwrt访问界面:root用户,密码password。

登陆openwrt进行设置登陆openwrt进行设置

三、openwrt上设置和使用

群晖NAS的Docker上部署好openwrt容器后,需要对openwrt进行一些设置后这样单臂旁路由才能启用。

1、openwrt上lan上关闭DHCP

我们只需要openwrt安心做旁路由,不需要承担IP分配管理,因此需要在lan设置里关闭DHCP功能,在设置里最下面勾选“忽略此接口”既这个接口不提供DHCP服务。

网络里找到lan,修改关闭DHCP服务网络里找到lan,修改关闭DHCP服务关闭lan口DHCP服务关闭lan口DHCP服务

2、lan上DNS设置主路由器地址为第一DNS服务器

lan口DNS设置主路由器地址为第一DNS服务器lan口DNS设置主路由器地址为第一DNS服务器

3、如果电脑或者其他需要使用旁路由上网的设备(网关设置为旁路由地址)需要在openwrt的防火墙中“区域设置”中把“转发”设置为“接受”。

防火墙这里的转发设置为“接受”防火墙这里的转发设置为“接受”

上述设置完成后,就可以到openwrt的“系统“里的”软件包“查找下载你需要的软件安装设置使用了。

群晖NAS使用分享系列:单臂旁路由部署(Docker版)

3、需要使用单臂旁路由器的设备只需要修改其网关为单臂旁路由器的地址192.168.58.2就可以使用旁路由了。

群晖NAS使用分享系列:单臂旁路由部署(Docker版)

四、总结

总的来说,如果你有群晖NAS,也有旁路由器的需求,那么你无需再购买路由器,可以在群晖NAS上部署旁路由来满足你的需求。其部属相对简单容易一些,非常适合新手。当然最最重要的是你得有一台支持 Docker的群晖NAS或者别的支持Docker的NAS。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
56评论

  • 精彩
  • 最新
  • 是不是漏了一步,在Container Manager界面里的“网络”要把容器从bridge里删除掉再放进openwrt_lan里?

    校验提示文案

    提交
    是的,这一步确实漏了。 [大囧]

    校验提示文案

    提交
    收起所有回复
  • 我也部署了,这样好处是哪怕主路由不是智能路由都可以用了……

    校验提示文案

    提交
    是的,这个是个好的补充

    校验提示文案

    提交
    收起所有回复
  • 群晖的docker op只能用小猫咪才能翻墙

    校验提示文案

    提交
    目前看是这样

    校验提示文案

    提交
    不知道为什么小猫咪配好了订阅也启动了但是ping不通YouTube。。。

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 在因此需要启动这个容器并修改这个容器的地址为192.168.58.2,出现错误代码:failed to create the macvlan port : device or resource busy。是啥原因?我的NAS920+,现在用的是第一接口,原ip地址是192.168.10.7.

    校验提示文案

    提交
    你可以搜一下这个报错信息,我觉得你应该不要用192.168.58.2这个地址

    校验提示文案

    提交
    来自网络的回复:我试了能成功。

    如果你由于使用了VMM或其他原因开启了open vSwitch,那么在创建macvlan的时候不要选择物理网卡eth0而选择使用ovs虚拟的网卡osv_eth0就不会有问题:
    原命令:
    docker network create -d macvlan --subnet=10.0.0.0/24 --gateway=10.0.0.1 -o parent=eth0 openwrt
    改为:
    docker network create -d macvlan --subnet=10.0.0.0/24 --gateway=10.0.0.1 -o parent=ovs_eth0 openwrt

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 同为220+,请教楼主:你的主路由器地址是192.168.58.1,openwrt的网址是58.2,那群晖本身的地址也是58.2吗?还是别的?

    校验提示文案

    提交
    群晖地址是58.188和58.199

    校验提示文案

    提交
    你看我文章里的网络构造拓扑图,上面很清晰标明群晖地址

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 大佬们请教一下,我把玩客云刷个OPENWRT做旁路由能限制手机电视上APP访问网络吗?比如斗音

    校验提示文案

    提交
    应该可以。op上可以安装相关限制插件,手机和电视网关用op的地址

    校验提示文案

    提交
    收起所有回复
  • 我用的群晖虚拟机,比这个简单多了,非常稳定

    校验提示文案

    提交
    群晖虚拟机?群晖里的虚拟系统?还是虚拟了个群晖系统?

    校验提示文案

    提交
    DSM里的虚拟机

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 我是用虚拟机部署的,简单得多

    校验提示文案

    提交
    虚拟机感觉比docker耗资源

    校验提示文案

    提交
    装win那肯定是!但openwrt本来也就只占2,3百M的内存,几乎没区别

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • [皱眉] 我天,好复杂啊,操作到一半发现没ROOT权限,后面就不会玩了。。我也是220+

    校验提示文案

    提交
    呵呵 不急多看教程多研究

    校验提示文案

    提交
    直接用appletv做旁路由了,nas还是老老实实当个网络硬盘吧

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 请教楼主,是无线 ap 吗?还是说只能用群晖另一个网口有线外接出来

    校验提示文案

    提交
    不是无线ap,就是用群晖的网口来部署的。网口可以复用

    校验提示文案

    提交
    收起所有回复
  • 追问一下,如果只想让群晖docker里的某一个容器经过旁路由该如何设置? 比如emby和jellfin的刮削服务器被墙,我其他都不需要,只需要他们刮削时候通过旁路由能访问指定被墙的服务器该如何设置

    校验提示文案

    提交
    那你容器的网络网关要指向旁路由

    校验提示文案

    提交
    我也想实现跟你一样的效果,如何搞?

    校验提示文案

    提交
    收起所有回复
  • 额。。群晖也想科学。。但好像很多教程都是说群晖装openwrt给其他设备科学。那群晖自身想科学咋整?

    校验提示文案

    提交
    同问 紫薯补丁

    校验提示文案

    提交
    群晖网络里把网关改成虚拟路由的地址,刮削和docker都可用了。但有个问题是外网端口转发就用不了了

    校验提示文案

    提交
    收起所有回复
  • 我试试,想去墙外看看!!

    校验提示文案

    提交
  • 这样部署的op怎么代理群晖自身的网络

    校验提示文案

    提交
  • /sbin/init: format error,不知道为什么,启动不了

    校验提示文案

    提交
    搞定了

    校验提示文案

    提交
    这个问题也遇到了,怎么解决的?

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 群晖本身也可以使用这个地址么?

    校验提示文案

    提交
    同问 拉不了docker现在

    校验提示文案

    提交
    收起所有回复
  • 注册表里搜opemwrt,怎么艘不到呀

    校验提示文案

    提交
  • 两年前在群晖220+部署了虚拟机做旁路由,docker 有什么更多的优势?我的麻烦是群晖不是24小时开机的,一关机有些设备就无法上网了,比较麻烦

    校验提示文案

    提交
  • 群晖220+,7×24小时不关机,据说不太好?因为是机械硬盘

    校验提示文案

    提交
  • 在命令行操作界面,对openwrt的网络配置文件/etc/config/network进行修改,修改lan的配置信息,把分配给openwrt的地址192.168.58.2和网关192.168.58.1修改好并保存。

    做到这一步了懵逼了 该输入啥代码 啊 大神 照着图片输啥都不好使 求指导 大神

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
279
扫一下,分享更方便,购买更轻松