草庐IT

OpenWrt旁路由设置教程

秋之颂 2023-05-19 原文

OpenWrt旁路由设置教程-超详细解析+教程

一、前言

本文会介绍旁路由的原理以及搭建旁路由系统的集体操作流程。由于支持旁路由的设备群非常庞大,故本文中以TP-LINK路由器作为主路由,而搭载OpenWrt系统的软路由R2S作为旁路由,使用的终端机型是MacBook Pro和iPhone,对于其他设备,原理是一样的,只是操作起来会稍有差异,同样可以作为参考。如果仅仅想了解旁路由工作原理作为学习只用,请直接跳到第二节;如果对旁路由这些原理都懂的朋友,希望具体操作搭建的,请直接跳到第三节

  • 请勿通过本教程进行违规上网用途,本教程仅作为技术参考之用,因个人原因造成的后果请自己负责。

二、什么是旁路由?

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

1、概念

旁路由——顾名思义,就是搭建在“旁边的路由”,你需要一个主路由用于家庭/公司等组网,然后在主路由的旁边搭建一个旁路由,这个旁路由的作用一般用于处理数据,比如搭建NAS,进行异地组网,流量监控等操作,以实现自己想要的功能。优点是,一般来说,旁路由我们通常会选用性能较强的设备,比如小主机、软路由这种,用旁路由来处理数据,然后通过主路由转发出去,可以实现主路由无法实现的功能,同时也不会牺牲主路由的性能。

2、图解

一般来说,我们通常通过以下图示搭建旁路由系统。

旁路由LAN口主路由某个LAN口相连,设备通过连接主路由的另一个LAN口或者WiFi信号来上网。如果需要旁路由进行数据处理,那么数据将被分发至旁路由,处理后会再次转到主路由上,然后通过主路由转发到互联网。

(1) 普通路由系统具体的数据分发流程

情况一:设备终端向互联网传送数据

① 终端设备发出数据到达主路由LAN1(或者通过WiFi到达);
② 数据从主路由LAN1到达主路由WAN;
③ 数据由主路由WAN送至送至互联网。


情况二:互联网向设备终端返回数据

① 互联网返回的数据到达主路由WAN;
② 由主路由WAN送至LAN1;
③ 由LAN1(或WiFi)分发至对应设备。


(2) 旁路由系统具体的数据分发流程

情况一:设备终端向互联网传送数据

① 终端设备发出数据到达主路由LAN1(或者通过WiFi到达);
② 数据从主路由LAN1到达LAN2;
③ 数据从LAN2到达旁路由LAN;
④ 数据经由旁路由处理又回到旁路由LAN;
⑤ 由旁路由LAN到达主路由LAN2;
⑥ 由主路由LAN2到达WAN;
⑦ 由主路由WAN送至送至互联网。


情况二:互联网向设备终端返回数据

① 互联网返回的数据到达主路由WAN;
② 由主路由WAN送至LAN2;
③ 主路由LAN2送至旁路由LAN;
④ 数据经由旁路由处理又回到旁路由LAN;
⑤ 由旁路由LAN送至主路由LAN2;
⑥ 由主路由LAN2经由LAN1;
⑦ 由LAN1(或WiFi)分发至对应设备。

相信到这里,就已经能够明白旁路由系统数据具体分发的流程了。

3、关键

让旁路由正常工作的关键就是要确保需要的数据能够经由旁路由转发至设备终端,而终端上载的数据也同样经过旁路由转发至主路由,再由主路由向更上一级分发。因此这里就需要设置数据转发的入口——网关,也就是说,在终端上,如果将网关设置为主路由,那么数据就不会经过旁路由处理,就像正常上网那样,而如果把网关设置为旁路由LAN口IP,那么最终到达终端设备的数据必将经过旁路由处理。那对于旁路由呢?只需将其网关IP设置为主路由LAN口IP即可,这样即可保证数据在需要的时候可以正常从主路由分发至旁路由。


三、搭建旁路由

1、搭建前主路由与旁路由的一些IP状态信息

因为每个人目前的主路由和旁路由的IP地址网关地址什么的都不一样,为了下面的操作步骤容易区分,这里提前说明下本文中主路由和旁路由的一些相关信息。

搭建旁路由系统之前的状态:
(1) 主路由(TP-LINK路由器)LAN口IP:192.168.0.1
(2) 旁路由(R2S软路由)LAN口IP:10.0.5.1
(3) 子网掩码:统一均为255.255.255.0

  • 如果实在对数字非常非常不敏感的朋友,可以提前按照上面的设置自己的主路由和旁路由。

搭建完成后的状态:
(1) 主路由LAN口IP:192.168.0.1(不变)
(2) 旁路由LAN口IP:192.168.0.2(设置为与主路由同一网段)
(3) 子网掩码:统一均为255.255.255.0

2、物理层连接方式

根据上面的旁路由图示,只需将旁路由的LAN口主路由的LAN口连接即可。同时把电脑(没有的话,用iPad/手机接入主路由WiFi也可)接入主路由的另一个LAN口

如果你的主路由连接到了互联网,那么你的电脑是可以正常上网的,也可以正常访问主路由的管理页面,但这个时候你会发现无法正常进入旁路由的管理页面。这是因为你的旁路由与主路由不在同一网段

3、旁路由配置

(1) 设置与主路由于同一网段内

① 保持你的终端设备与主路由的连接,在终端的网络设置中,将IPv4配置改为手动,设置成与旁路由同一网段的任意IP地址。比如说我的旁路由LAN口IP地址为10.0.5.1,就代表网段标识是10.0.5.x,因此这里的IP地址设置为10.0.5.2~10.0.5.254(排除广播地址255)之间的任意一个均可以。在本文中,我使用10.0.5.101这个地址。

② 根据操作系统不同,Windows要求填写子网前缀长度,就填写24,而macOS子网掩码要填写255.255.255.0. (当然,如果你的子网掩码是16位前缀长度,那就保持255.255.0.0即可)

③ Windows中网关填写旁路由的LAN口IP地址:10.0.5.1,对应macOS中路由器的位置。然后保存应用。

④ 这个时候,你从浏览器中就可以进入旁路由的后台界面了。

⑤ 进入管理界面后,我们依次找到网络-接口-LAN

点击修改,在基本设置中,将传输协议改为静态地址

IPv4地址修改到与主路由同一网段的任意地址,比方说,主路由的LAN口IP地址为192.168.0.1,子网掩码是255.255.255.0,那么其网段标识即为192.168.0.x,则从192.168.0.2到192.168.0.254中任选一个即可(但是要避开目前已经连接主路由的其他设备,避免IP地址冲突),在本文中,使用192.168.0.2作为旁路由的IPv4地址;

子网掩码也填写255.255.255.0,与主路由保持一致即可;

IPv4网关要填写主路由LAN口的IP地址,这里是192.168.0.1;

DNS这里也分配给主路由,交给主路由来操作;

下面,IPv6分配长度,我们尽可能选择禁用,这些都是主路由的事情;

同理,下面的DHCP服务也尽可能给他关掉,勾选忽略接口

高级设置中,也尽可能关闭IPv6管理。

⑦ 点击保存应用,这个时候不要等待页面的回应了,因为你更改了旁路由IP地址后,你用目前的电脑已经访问不到它了。

⑧ 重新进入电脑的网络设置,根据操作系统不同,在IPv4设置里,重新修改为DHCP或者自动获取IP地址

(2) 防火墙配置

① 电脑自动获取到IP地址后,在浏览器中输入之前修改后的旁路由IP地址,本文中是192.168.0.2,进入旁路由管理页面。

② 依次找到网络-防火墙,在区域转发中,关闭SYN-flood防御开启IP动态伪装,然后保存应用

⑤ 到这里,旁路由系统已经搭建完成,可以在网络-诊断中看看能不能ping通外网,如果不行,请检查以上是否都设置正确。

4、客户端配置

这个时候将你的终端设备连接到主路由,发现你的旁路由并没有其任何作用,想要的服务还是没有得到,这是什么原因呢?

还是这个图,你可以发现,从互联网进来的数据经过光猫到达主路由。但是主路由会直接把数据分发给终端设备,而不是先送至旁路由进行处理。这是什么原因呢?没有在终端设备设置网关!

我们必须在终端设备设置网关,才能要求路由器在分发给自己(终端设备)之前,先去旁路由走一遭。

设置方法很简单,不管你是WiFi链接还是网线连接,以iPhone为例,在WiFi配置中,将配置IP选择为手动:

之后IP地址框中填入与你的主路由网段相同的任意IP地址,注意这里要避开你的旁路由IP地址,并且不要和其他设备冲突。比如,这里填入192.168.0.150,子网掩码就填入255.255.255.0路由器(Windows系统叫做网关,一个意思)这里要注意,填上你的旁路由IP地址,这里是192.168.0.2,这样才能保证数据会先去旁路由处理:

这个时候,你就可以检查下,是否可以正常在终端设备使用旁路由设置的服务了,如果还是有问题,则进行下一步,将DNS填写你的主路由IP地址,这里是192.168.0.1:

到这里,旁路由系统就完全搭建成功了,进行享受旁路由带来的便捷吧!


四、额外补充:旁路由的端口转发设置

由于我的OpenWrt软路由在搭建旁路由系统之前运行了端口转发相关的服务,比如远程SSH、FTP等等,这样旁路由系统搭建好之后这些服务配置也要相应更改。

可以发现,软路由与主路由之间的通信仅仅是在两个LAN口之间进行,因此我们只需要在主路由上设置端口转发,而旁路由上的转发设置全部可以停用

比如,我想使用DDNS服务,我希望能够远程访问旁路由的后台系统,那么我可以在主路由上将外部某端口(比如1000)转发到内部端口80,那么我在访问我的域名:1000的时候,就会自动转发到旁路由192.168.0.2:80.

其他服务均类似设置即可,只需记住一点,主路由可以直接转发到旁路由LAN,而在旁路由里不需要再单独设置转发。

打字、作图不易,如果觉得有用,别忘了点赞😊。

有关OpenWrt旁路由设置教程的更多相关文章

  1. ruby - 使用 RubyZip 生成 ZIP 文件时设置压缩级别 - 2

    我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看ruby​​zip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d

  2. ruby-on-rails - Rails 3 中的多个路由文件 - 2

    Rails2.3可以选择随时使用RouteSet#add_configuration_file添加更多路由。是否可以在Rails3项目中做同样的事情? 最佳答案 在config/application.rb中:config.paths.config.routes在Rails3.2(也可能是Rails3.1)中,使用:config.paths["config/routes"] 关于ruby-on-rails-Rails3中的多个路由文件,我们在StackOverflow上找到一个类似的问题

  3. ruby-openid:执行发现时未设置@socket - 2

    我在使用omniauth/openid时遇到了一些麻烦。在尝试进行身份验证时,我在日志中发现了这一点:OpenID::FetchingError:Errorfetchinghttps://www.google.com/accounts/o8/.well-known/host-meta?hd=profiles.google.com%2Fmy_username:undefinedmethod`io'fornil:NilClass重要的是undefinedmethodio'fornil:NilClass来自openid/fetchers.rb,在下面的代码片段中:moduleNetclass

  4. ruby-on-rails - 如何使用 instance_variable_set 正确设置实例变量? - 2

    我正在查看instance_variable_set的文档并看到给出的示例代码是这样做的:obj.instance_variable_set(:@instnc_var,"valuefortheinstancevariable")然后允许您在类的任何实例方法中以@instnc_var的形式访问该变量。我想知道为什么在@instnc_var之前需要一个冒号:。冒号有什么作用? 最佳答案 我的第一直觉是告诉你不要使用instance_variable_set除非你真的知道你用它做什么。它本质上是一种元编程工具或绕过实例变量可见性的黑客攻击

  5. ruby-on-rails - date_field_tag,如何设置默认日期? [ rails 上的 ruby ] - 2

    我想设置一个默认日期,例如实际日期,我该如何设置?还有如何在组合框中设置默认值顺便问一下,date_field_tag和date_field之间有什么区别? 最佳答案 试试这个:将默认日期作为第二个参数传递。youcorrectlysetthedefaultvalueofcomboboxasshowninyourquestion. 关于ruby-on-rails-date_field_tag,如何设置默认日期?[rails上的ruby],我们在StackOverflow上找到一个类似的问

  6. ruby-on-rails - 在 Rails 开发环境中为 .ogv 文件设置 Mime 类型 - 2

    我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain

  7. ruby - rails 3 redirect_to 将参数传递给命名路由 - 2

    我没有找到太多关于如何执行此操作的信息,尽管有很多关于如何使用像这样的redirect_to将参数传递给重定向的建议:action=>'something',:controller=>'something'在我的应用程序中,我在路由文件中有以下内容match'profile'=>'User#show'我的表演Action是这样的defshow@user=User.find(params[:user])@title=@user.first_nameend重定向发生在同一个用户Controller中,就像这样defregister@title="Registration"@user=Use

  8. ruby-on-rails - Rails 3,嵌套资源,没有路由匹配 [PUT] - 2

    我真的为这个而疯狂。我一直在搜索答案并尝试我找到的所有内容,包括相关问题和stackoverflow上的答案,但仍然无法正常工作。我正在使用嵌套资源,但无法使表单正常工作。我总是遇到错误,例如没有路线匹配[PUT]"/galleries/1/photos"表格在这里:/galleries/1/photos/1/edit路线.rbresources:galleriesdoresources:photosendresources:galleriesresources:photos照片Controller.rbdefnew@gallery=Gallery.find(params[:galle

  9. ruby-on-rails - 有没有办法为 CarrierWave/Fog 设置上传进度指示器? - 2

    我在Rails应用程序中使用CarrierWave/Fog将视频上传到AmazonS3。有没有办法判断上传的进度,让我可以显示上传进度如何? 最佳答案 CarrierWave和Fog本身没有这种功能;你需要一个前端uploader来显示进度。当我不得不解决这个问题时,我使用了jQueryfileupload因为我的堆栈中已经有jQuery。甚至还有apostonCarrierWaveintegration因此您只需按照那里的说明操作即可获得适用于您的应用的进度条。 关于ruby-on-r

  10. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

随机推荐