家庭网络和存储折腾之路(4)- 旁路由

2022-10-13 11:31:31 20点赞 199收藏 17评论

第二篇中提到,路由器一旦开了流量统计,2.5G的速度就降到了250M,所以明白了一件事,路由不能干太多事(至少TP是这样的)。加了一个QNAP八口的2.5G交换机(有点贵的,浪费)解决了内网大数据交换的问题。但还是有很多事情需要路由去干的,硬路由又干不了(至少影响性能)怎么办呢?于是 我加个软路由(旁路由)。

什么是旁路由?

网上很多都有讲到旁路由这个词不够严谨,不应该叫旁路由应该叫旁路网关。我也认为叫网关更加合适,但我们在这里不纠结名字,知道什么就好了,所以依然跟随大多数人的叫法“旁路由”。

旁路由是一个挂接在主路由lan口下的一个终端设备,我理解和其他在网络中的终端设备在网络地位上没什么本质的区别。

旁路由的IP段和主路由一致,所以他和二级路由不一样,二级路由的ip段和主路由不一样。旁路由的功能就是让进来的数据经过主路由后进入旁路由再到接收数据的终端设备,让出去的数据先经过旁路由再从主路由出去。那么在数据经过旁路由的时候就可以进行处理了,比如加解密、广告过滤、某些网站限制访问、上网行为控制(比如儿童使用的设备不能访问游戏软件、游戏网站,或者只能某个时间段上网等等)。总之给了我们一个在网络数据出去和进来之前进行处理的机会。当然旁路由也可以根据某些条件进行判断哪些数据需要处理哪些数据不需要处理直接转发给主路由。所以旁路由的功能理论上几乎没什么做不到。当然很特殊的一些功能也许需要自己动手了。大概的网络架构和数据链路如下:

家庭网络和存储折腾之路(4)- 旁路由

这样的网络架构还有很多优点:

1、对现有网络架构影响很小,特别适合网络已经在运行的情况下进行改造

2、一旦旁路由出现故障,不影响整个网络的运行

3、可扩展性非常好,只要将额外的功能加入到旁路由里就可以

4、只要对数据处理的复杂度不高,对整体网络性能的影响几乎可以忽略

5、旁路由可以使用现有nas或者废旧电脑安装软路由即可,对于成本敏感的人来说是个福音

查阅了网上资料,用的人比较多的是ikuai和openwrt两个系统,我选择了openwrt。

openwrt有很多版本,我用过固件版本Openwrt Koolshare mod V2.31 r10822-50aa0525d1/内核版本4.14.115以及固件版本OpenWrt 22.03.0-rc6 r19590-042d558536 / LuCI openwrt-22.03 branch git-22.237.32198-08fb383/内核版本5.10.134(官网版本):

Openwrt Koolshare mod V2.31 r10822-50aa0525d1界面Openwrt Koolshare mod V2.31 r10822-50aa0525d1界面

OpenWrt 22.03.0-rc6 r19590-042d558536界面OpenWrt 22.03.0-rc6 r19590-042d558536界面

第一次用的是koolshare的版本,配置好了之后就一直在用,主要是ddns和其他的一些服务。他的好处是里面有一个酷软的菜单,里面有很多预置的服务,只要点一下就可以安装,很方便。我的版本有61个服务。主体配置也非常简单,只要配置静态ip,设置和主路由一个ip段,关闭dhcp,设置网关到主路由就可以工作。具体的设置网上很多就不啰嗦了。官网的版本相对复杂一点,我后来换官网的版本是因为要配置wireguard,希望在外面的时候手机可以连接到家里的网络,一方面是方便操作家里的设备一方面是方面通过家里的网络访问。因为koolshare已经很稳定在用,所以也不敢升级。也不想在这个版本上测试怎么安装 wireguard。于是在官网版本上完成测试wireguard之后再把koolshare版本上的功能在官网版本重新实现了一遍。这样就完成了稳定的切换。

首先从官网下载镜像,我选择的是Stable Release builds,也就是稳定版本,最新版是22.03.0-rc6(下载的地址:https://downloads.openwrt.org/releases/22.03.0-rc6/targets/x86/64/openwrt-22.03.0-rc6-x86-64-generic-ext4-combined.img.gz)。官网下载的img是raw格式的,QNAP的virtualization station并不支持这种格式,需要转换为qcow2格式。两种方法:

1、windows:通过starwind转换为vmdk格式,再上传qnap,通过QNAP提供的功能转为qcow2格式的img。

2、mac:首先安装brew:

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

brew install qemu

大概率安装qemu会出错,显示gettext not in a git directory.先执行:

git config --global --add safe.directory /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core

git config --global --add safe.directory /usr/local/Homebrew/Library/Taps/homebrew/homebrew-services

git config --global --add safe.directory /usr/local/Homebrew/Library/Taps/homebrew/homebrew-caskgit

然后再安装qemu,安装 完成后通过qemu转换img,从raw转换为qcow2格式。

qemu-img convert -p -f raw -O qcow2 openwrt-22.03.0-rc6-x86-64-generic-ext4-combined.img openwrt.qcow.img.

如果你不方便转换 ,可以留言,我已经转换好格式的镜像。

将转换后的img传到QNAP,创建虚拟机,选择genaric。运行起来之后。在 /etc/config/network里修改ip。通过web 进入openwrt,进入网络接口,设置静态ip,关闭dhcp,设置网关和dns,否则网络不通。

这里介绍一下我基于官网的版本是怎么配置ddns和wireguard的。

DDNS是为了能够在外面访问家里的网络,这里需要拨号时的公网IP,上一篇介绍过了。

1、安装DDNS插件,可以收工安装也可以从 openwrt里直接安装,推荐第二种方法。

手工安装4.45,无法运行,出现Error relocating /usr/bin/v2ray: __nanosleep_time64: symbol not found。重新安装4.40,没问题。

更方便的安装方法是进入system-software,点击update lists...更新完毕后,在filter中输入ddns,安装luci-app-ddns、ddns-scripts、luci-i18n-ddns-zh-cn(中文语言),我用的cloudflare,所以还安装ddns-scripts-cloudflare,

2、DDNS的配置。安装完毕后点击server-DDNS进入cloudflare设置,唯一需要注意的是“域名”的填写比较特殊,比如你需要设置的域名是abc.def.com,那么填入abc@def.com。其他按照提示填写即可。设置完成 后可以进入“日志查看器 ”查看日志是否成功设置ip。

有了nas,我们在家里就可以随意访问,但是一旦离开家的wifi那么就无法访问nas了。而我们有时候不在也可能有需要访问nas或者家里的服务。如果你的网络有那种服务,随时都能通过家里的网络访问那么会很方便。DDNS就是实现这个功能的前置条件,当然你可以用第三方的。有了DDNS,接下来典型的方法有两个,一个是通过在路由器上设置端口转发,将家里的每一个服务对应一个端口,通过固定端口转发到某一个服务进行访问,这种方法相对来说比较简单,只要在路由器中简单设置就能完成。缺点也很难明显,一是每个服务都需要一个端口,记起来用起来都比较麻烦,第二个缺点就是安全问题,因为将服务暴露到了互联网。我一开始也是用的这个方案,后来放弃了。改用了第二个方法----VPN。VPN就要安全得多了,一旦通过vpn方式连到家里的网络,那么你即使不在家里你也可以像在家里一样用家里的网络,可以轻松访问家里内网以及内网的所有服务。就像在家里一样。vpn有很多中,典型的有PPTP、L2TP/IPsec、SSL VPN、OpenVPN、wireguard这几种 。pptp安全性是比较低的,l2tp/ipsec、ssl vpn配置起来比较复杂。wireguard是最近几年才出来的新技术,该技术已经进入了最近的linux内核,也就是说该技术可以直接通过内核调用执行,性能上远超其他VPN技术,在传输层,该技术采用的udp协议传输,对于nat后的vpn有着较好的支持。而配置的难度远低于其他。并且可以随意指定端口(你知道的,支持指定端口有多重要!)。安装方法 和ddsn一样,update lists之后安装uci-app-wireguard,自动会安装另外三个组件:kmod-wireguard、luci-proto-wireguard和wireguard-tools。

安装完成后进行配置:

1、进入网络-interfaces,点击“add new interface

家庭网络和存储折腾之路(4)- 旁路由

名称随便填写,比如WG0,Protocol选择Wireguard VPN,当选择了Wireguard VPN之后,device自动被隐藏。

2、进行WG0的配置

家庭网络和存储折腾之路(4)- 旁路由

高级设置不需要改。进入防火墙 :

家庭网络和存储折腾之路(4)- 旁路由

由于是旁路由,所以只要 选择 你的lan就可以了。

DHCP也不需要改。

进入对端进行设置:

家庭网络和存储折腾之路(4)- 旁路由

家庭网络和存储折腾之路(4)- 旁路由

这样在openwrt中的wireguard就设置完成了。

接下来最后一步,你需要连入家里网络的设备 ,比如说iphone,从App Store下载wireguard(需要在其他国家的区域)。

编辑一个iphone.conf的文件 ,内容如下:

[Interface]

Address = 192.168.8.2

# 对应 iphone 客户段分配的IP,就是上面peer中的ip

PrivateKey = xxxx

#客户端privatekey,就是上面 peer中产生的privatekey

DNS = 192.168.0.x

# 本地的 DNS 服务器或者公有 DNS 服务器,例如: 114.114.114.114

[Peer]

PublicKey = xxxxx

#服务端公钥

AllowedIPs = 0.0.0.0/0

# 设置为 0.0.0.0/0 为全局模式.

PresharedKey = xxxxx

# 上面步骤中产生的预共享密钥

Endpoint = xxxx.yyyy.com:port

#你的ddsn域名和 端口

PersistentKeepalive = 25

将这个conf文件导入给wireguard客户端,就可以使用了。

连接后,如果你看到了“发送数据量”和“接收数据量”,并且有数值。在浏览器中直接访问你的内网 ip,如果通了,那么说明成功了。如果不通,请从头检查每一步设置是否正确。

至此,旁路由的两个基础功能就有了DDNS和wireguard。当然旁路由还有很多其他功能 ,比如广告过滤、上网控制。广告过滤我的需求不强 ,我觉得用免费的东西稍微有点广告也是应该的。 只要别太过分 ,像那种看一个视频要我先看3分钟广告,中间还要停下来看就有点过分了。上网控制我是有需求的,还没研究,等试好了再写一篇。

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

展开 收起
17评论

  • 精彩
  • 最新
  • 旁路由的插件全套你懂的,可以共享一下吗

    校验提示文案

    提交
    这个不太好讨论 [口罩]

    校验提示文案

    提交
    收起所有回复
  • QNAP自带VPN的,你的主路由tplink那个设备也带,用openwrt里面部署wireguard来完成这个有什么特别的好处吗?

    校验提示文案

    提交
    tplink的vpn连不通,咨询了周围人,得到的答案是需要去运营商申请这个功能,没有验证是否准确。
    qnap我看到有反向代理,没注意看到有vpn功能。
    wireguard我用下来的最大的好处是,通过手机5g连接,几乎在1-2秒内完成连接。家里带宽1000M,试过在同一城市,手机5g连到vpn再把网络共享给电脑,电脑通过远程桌面连接家里的win11虚拟机,基本感觉不出来和在家里的区别。

    校验提示文案

    提交
    tplink的vpn配置了不通,咨询了周围人,据说是硬路由的vpn是需要去运营商申请开通的,无法验证是否真实。
    QNAP里面有反向代理,没注意到vpn
    wireguard我用下来很稳定,性能也好。手机5g连接在1-2秒完成。
    在同城测试过,用手机5g拨wireguard,网络共享给电脑,电脑通过远程桌面连接家里win11的虚拟机,除了拷贝大文件,其他基本和在家里没区别。

    校验提示文案

    提交
    收起所有回复
  • 旁路由就是串联而非并联模式 对吧

    校验提示文案

    提交
    就是主路由的一个终端设备。旁路由的网关要指到主路由,否则主路由无法端口转发到旁路由

    校验提示文案

    提交
    旁路由连接到主路由,成为主路由的一个终端。旁路由的网关需要指到主路由否则主路由无法端口转发

    校验提示文案

    提交
    收起所有回复
  • 酷软现在能更新么?

    校验提示文案

    提交
    有提示升级但我没升,怕不稳定

    校验提示文案

    提交
    收起所有回复
  • 我之前也在openwtr上配置了wg,但是没法登录和连接家里的白群和自组的TrueNas的服务器。是nas权限设置的问题还是我wg配置上的问题呢?我wg可以访问路由器后台,wg回家问题不大

    校验提示文案

    提交
    旁路由指向主路由试试

    校验提示文案

    提交
    收起所有回复
  • 题图看起来很高端

    校验提示文案

    提交
  • 鸡场鸡场

    校验提示文案

    提交
  • 申请了公网IP,软路由直接win10在外面远程访问,和本地电脑一样用

    校验提示文案

    提交
  • 反正我用旁路由碰到好多奇奇怪怪的问题,比如wifi不能联网,或者不能留学,或者不能看国内的网站,解决了一个问题,又有别的问题,除非旁路由接管DHCP服务,那就很正常了

    校验提示文案

    提交
  • 2.5g就是250m呀 1g等于125m

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
相关好价
最新文章 热门文章
199
扫一下,分享更方便,购买更轻松