如何给 Unraid 设置一机双网关

2023-06-26 20:28:51 27点赞 225收藏 46评论

前言: 自从去年双十一在朋友的推荐下自助了一台 NAS 后,以 Unraid 为底层使用至今。一路上看了不少教程和帖子,受益匪浅。现如今也分享自己的一点粗浅经验,多多指教(抱拳)。

本帖需要一定的操作/知识(也许吧)

目的:

对宿主 UNRAID 里的不同设备( Docker等)进行分流,从而实现 (从我的使用角度):

1. Unraid 本身包括但不限于 Docker / 插件 / 商店 走旁路由

2. BT / 迅雷 / DDNS / 等无需网络增强的服务 走主路由

准备:

硬件:双网口起步,网口速率不限

系统:只测试了 6.11.x~6.12.1

内网已有旁路由

教程环境简介:

主网段:10.10.8.0/24

主路由 IP:10.10.8.1

Unraid IP:10.10.8.2

网 关 IP:10.10.8.3


开始:

我的主板自带一个 2.5G 网口,又加了一块 4x2.5 的转接卡。

  • 首先在 工具 - 系统设备 里,确认下你需要用到的网口双取消勾选的状态,也就是不要将其直通。

确认网口状态确认网口状态

如图,我是将板载网口作为主网口,另选一个外接网口为辅。


  • 然后去 设置 - 网络设置 ,进行系统网络设置:

网络设置-1网络设置-1

网络设置-2网络设置-2

图2 所示,最下方 接口规则 接口 eth0 选板载网口(MAC地址 00:xxxx:74),接口 eth1 选外接网口 (MAC地址 88:xxxx:2C)

-- 系统网络设置:

启用绑定:否

启用桥接:是,并分别桥接对应接口: br0-eth0 / br1=eth1

网络协议:根据你的网络设置,我家宽只有 IPv4 ,所以选仅 IPv4

IP 地址分配:10.10.8.2(参考上面说的环境简介,我的是设为固定)

网关: 10.10.8.3(走增强的)/ 10.10.8.1(直连的)

eth0 还要多设置一些 DNS,我的分别是自己的 DNS / 主路由 IP / 公共 DNS


  • 最后是打开 终端 对 Docker 进行针对性网络设置

-- 针对性网络设置:

Docker:(利用自定义网络的特性,创建两个网段并分配不同网关)

docker network create -d macvlan --gateway=10.10.8.3 --subnet=10.10.8.0/24 --ip-range 10.10.8.2/29 -o parent=br0 net1(创建一个 net1 为增强网络,10.10.8.2/29 是因为我需要增强的设备寥寥无几,/29 的范围内就够用了,可根据自己需求加大,net2 的网段范围也是这个原因)

docker network create -d macvlan --gateway=10.10.8.1 --subnet=10.10.8.0/24 --ip-range 10.10.8.6/25 -o parent=br1 net2 (创建一个直连网络,网关走主路由的 10.10.8.1)


ip route delete default

ip route add default via 10.10.8.3 dev br0

(这两句是删除路由表里的 default 并创建一个走 br0 的默认路由。有这两句是因为有时候 UNRAID 重启后 default 会变成默认的 10.10.8.1 via br1,导致增强失败,😅)

路由表路由表


效果:

☑️ UNRAID 系统内的 插件/ Docker / 商店 网络增强 (因为 Unraid 这三处是在自身网络环境里的,自身10.10.8.2 处于 br0 中,所以它们走的网关是 10.10.8.3

☑️ 部分 Docker 网络增强(比如 Nastool 里的刮削服务需要增强才好用,我将其IP 固定为 10.10.8.5 ,同上,增强成功)

☑️ 部分 Docker 网络直连(比如 BT 服务,只需将其 IP设置为 br1 网段内即可)

写在最后:

可能会有人说,既然有旁路由了,为何还要这样麻烦

我忘了啥原因了,反正我就是分享一下我的一个思路。

谢谢观看。

补充更新:

上文提到:当 Unraid 重启后,路由表那块网络有可能会恢复成默认路由的两条解决命令:

ip route delete default

ip route add default via 10.10.8.3 dev br0

每次去修改也有点烦吧,就直接就地取材利用脚本实现每次启动阵列后自动更正,内容如下:

  • 确保Unraid 里已安装插件:User Scripts

确保Unraid 里已安装插件:User Scripts确保Unraid 里已安装插件:User Scripts

  • 添加并编辑新脚本,将自己对应的两条命令粘贴进去即可(注意不要删除第一行)

如何给 Unraid 设置一机双网关

如何给 Unraid 设置一机双网关

如何给 Unraid 设置一机双网关

如何给 Unraid 设置一机双网关

  • 最后将其运行方式设定为启动阵列后运行。也可以创建完后直接手动运行一次。


运行方式运行方式

  • 就可以看到路由表里已经更正啦~








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

展开 收起
46评论

  • 精彩
  • 最新
  • 我的方法给你参考,我的每个docker容器都有一个IP,我在爱快主路由上进行判断,如果是docker的IP或者某个需要科学的设备IP,就下一跳走可以科学的op,这样很方便,任何一个设备不止docker.都可以灵活控制是不是要走

    校验提示文案

    提交
    谢谢,这些我都用过,或者all in boom 啥的,哈哈哈

    校验提示文案

    提交
    请问有教程么?是在爱快主路由上配置而不是在终端配置的么?

    校验提示文案

    提交
    还有8条回复
    收起所有回复
  • 意思是根据DNS选择是否需要科学对吧?

    校验提示文案

    提交
    根据网关

    校验提示文案

    提交
    收起所有回复
  • proxy editor也用过 ,有时候也不是太有效 ,能否详细解说一下分配的地址池具体所指,谢谢

    校验提示文案

    提交
    比如?

    校验提示文案

    提交
    ip-range 10.10.8.2/29 比如这一部分

    校验提示文案

    提交
    还有4条回复
    收起所有回复
  • 从路由下手更好一点,双网卡还是主要规避6.12的macvlan的bug,

    校验提示文案

    提交
    从路由下手的话,针对每个有需要的Docker去一一配置网关更为繁琐一点吧,这个方案第一次可能繁琐点但后续如果有新Docker加入也只是在配置Docker的时候选择一下网卡和IP就好了

    校验提示文案

    提交
    不是,我意思是 你不需要配置不同网关,而是让软路由自己去自动分流国内国外, docker的vlan只用负责去手动区分下ip段,就能轻松实现无感自由切换上网

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 没明白为什么需要两个网关,热备的话做vrrp就好了

    校验提示文案

    提交
    因为不仅是热备啊...

    校验提示文案

    提交
    收起所有回复
  • 我测试的,unraid重启后,docker网络会恢复默认,怎么解决的?

    校验提示文案

    提交
    重新运行下最后那两条命令,文章已更新等审核过了看看结尾。

    校验提示文案

    提交
    关闭阵列,设置-docker-高级设置-保留用户定义网络开启 就可以了,重启macvlan也不会掉了

    校验提示文案

    提交
    收起所有回复
  • unraid好用吗? 和黑群晖哪个好用点?

    校验提示文案

    提交
    unraid可以装黑裙,同样好用,没有区别。

    校验提示文案

    提交
    收起所有回复
  • Unraid怎么安装到硬盘啊

    校验提示文案

    提交
    Unraid是安装到U盘的。

    校验提示文案

    提交
    我知道啊,我想安装到硬盘用,有大佬知道办法吗

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 学习了

    校验提示文案

    提交
  • 一直想这么干,奈何网络知识没达标总是配置失败。楼主给我了个模板,太感谢了

    校验提示文案

    提交
    彼此彼此

    校验提示文案

    提交
    收起所有回复
  • 有没有遇到休眠过后唤醒他的直筒网卡连不上

    校验提示文案

    提交
  • 谢谢大佬 默认网关那个解决了我双网口不能科学的问题,谢谢!

    校验提示文案

    提交
    双网口都需要插网线不?比如原本的管理口肯定是插到交换机上面的,第二个网口需要插不?

    校验提示文案

    提交
    收起所有回复
  • 大佬,我没ikuai,我的unraid商店,emby这些需要走科学,但是tr ,qb又不需要科学,目前用的atv当旁路由,unraid的网关直接写了atv网关,这样有个问题就是我远程ddns不能访问改了atv网关的unraid和emby这些了

    校验提示文案

    提交
  • 不需要命令,只需要设置一个指标就行了

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章

Anoyou

Ta还没有介绍自己

关注 打赏
最新文章 热门文章
目录
225
扫一下,分享更方便,购买更轻松