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

自己家里电信宽带,光猫桥接,JD云无线宝路由器负责拨号,都知道JD路由器为JD自己系统,开放性比较保守,因此很多功能无法实现。正好家里有台群晖DS220+,因此这台DS220+就担负起搭建单臂旁路由的重任(DS220+有2个千兆网口)。根据上述简单网络拓扑,只需要在群晖NAS上部署支持旁路由的系统即可,路由系统比较多,也没啥考虑的选的用的最多的openwrt。
二、部署
群晖NAS上部署旁路由系统,有2种方式,一种是利用群晖虚拟机功能,一种是利用Docker部署,这个需要根据自己群晖NAS支持能力来部署,自己的群晖NAS两种方式都支持,考虑到易用性和可维护性,选则了利用Docker部署,其实原理都一样,只是方法不同而已。
1、群晖NAS Container Manager(群晖7.2系统把Docker改成这个名字)注册表里搜opemwrt。选标星最多的。
选则openwrt镜像2、选好,下载,下载时需要在选则标签里填写x86_64,因自己的群晖NAS是intel cpu,当然你也可以不选择修改标签,按latest默认下载。
标签处可以填写信息更准确下载符合设备的镜像下载好后就可以开始部署,请在容器里新增加,选好刚才下载的镜像,我自己的环境旁路由只运行1个应用,占用CPU和内存资源很少,因此CPU和内存处做了一些设置,这个可以自己根据自己实际情况进行设置。当然为了稳定运行,也勾选了“启用自动重新启动”
初始设置CPU、内存按自己实际需求修改接下来的一些配置大部分按默认选则,网络这里先选则默认的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的网络设备给旁路由使用上述完成后,可以在Container Manager界面里的“网络”看到刚才创建的新的网络设备
创建好的网络设备创建好后,就可以在“管理”里把openwrt的容器加到这个网络设备里。
添加openwrt容器到这个网络设备此时容器虽然已经添加到创建好的网路设备中,但是openwrt容器的地址还没有设置,因此需要启动这个容器并修改这个容器的地址为192.168.58.2,先启动容器,然后到容器里找到这个启动的容器,右键选“打开终端机”,新增一个命令“/bin/sh”,然后执行这个命令就可以进入openwrt的命令行操作界面。
打开终端机

在命令行操作界面,对openwrt的网络配置文件/etc/config/network进行修改,修改lan的配置信息,把分配给openwrt的地址192.168.58.2和网关192.168.58.1修改好并保存。
修改openwrt的network配置文件上述完成后,保存配置文件,并重新启动容器。启动好后,浏览器输入openwrt容器地址192.168.58.2就可以看到openwrt访问界面:root用户,密码password。
登陆openwrt进行设置三、openwrt上设置和使用
群晖NAS的Docker上部署好openwrt容器后,需要对openwrt进行一些设置后这样单臂旁路由才能启用。
1、openwrt上lan上关闭DHCP
我们只需要openwrt安心做旁路由,不需要承担IP分配管理,因此需要在lan设置里关闭DHCP功能,在设置里最下面勾选“忽略此接口”既这个接口不提供DHCP服务。
网络里找到lan,修改关闭DHCP服务
关闭lan口DHCP服务2、lan上DNS设置主路由器地址为第一DNS服务器
lan口DNS设置主路由器地址为第一DNS服务器3、如果电脑或者其他需要使用旁路由上网的设备(网关设置为旁路由地址)需要在openwrt的防火墙中“区域设置”中把“转发”设置为“接受”。
防火墙这里的转发设置为“接受”上述设置完成后,就可以到openwrt的“系统“里的”软件包“查找下载你需要的软件安装设置使用了。

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

四、总结
总的来说,如果你有群晖NAS,也有旁路由器的需求,那么你无需再购买路由器,可以在群晖NAS上部署旁路由来满足你的需求。其部属相对简单容易一些,非常适合新手。当然最最重要的是你得有一台支持 Docker的群晖NAS或者别的支持Docker的NAS。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

洛马米河
校验提示文案
哈利波特别特别大
校验提示文案
梁下君子
校验提示文案
sole_zy
校验提示文案
lzboyly
校验提示文案
爱生活爱萧萧
校验提示文案
胸无空杯具了
校验提示文案
船长99
校验提示文案
KASIM7
校验提示文案
val1nna
校验提示文案
值友3124647196
校验提示文案
new1943
校验提示文案
值友2917418552
校验提示文案
ShellenZ
校验提示文案
M31领航员
校验提示文案
new1943
校验提示文案
我去年买个表
校验提示文案
结城晶
校验提示文案
结城晶
校验提示文案
值友4199432413
做到这一步了懵逼了 该输入啥代码 啊 大神 照着图片输啥都不好使 求指导 大神
校验提示文案
值友4199432413
做到这一步了懵逼了 该输入啥代码 啊 大神 照着图片输啥都不好使 求指导 大神
校验提示文案
结城晶
校验提示文案
结城晶
校验提示文案
我去年买个表
校验提示文案
值友3124647196
校验提示文案
new1943
校验提示文案
new1943
校验提示文案
val1nna
校验提示文案
M31领航员
校验提示文案
KASIM7
校验提示文案
ShellenZ
校验提示文案
船长99
校验提示文案
胸无空杯具了
校验提示文案
爱生活爱萧萧
校验提示文案
洛马米河
校验提示文案
lzboyly
校验提示文案
sole_zy
校验提示文案
值友2917418552
校验提示文案
梁下君子
校验提示文案
哈利波特别特别大
校验提示文案