光猫+无线路由器+Openwrt 旁路网关家庭网络方案


先看概念

路由器(Router)

将数据包从一个网络转发到另一个网络的网络设备。基于内部路由表,路由器读取每个传入的数据包并决定如何转发它,将数据传送到指定的IP地址。

数据在一个子网中传输到另一个子网中,可以通过路由器的路由功能进行处理。在网络通信中,路由器具有判断网络地址以及选择IP路径的作用,可以在多个网络环境中,构建灵活的链接系统,通过不同的数据分组以及介质访问方式对各个子网进行链接。路由器在操作中仅接受源站或者其他相关路由器传递的信息,是一种基于网络层的互联设备。

网关(Gateway)

又称网间连接器协议转换器。网关在网络层以上实现网络互连,是复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。 网关是一种充当转换重任的计算机系统或设备。使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。

网关实质上是一个网络通向其他网络的IP地址

比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;

网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0;

在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)与主机的IP 地址作 “与” 运算的结果不同判定两个网络中的主机处在不同的网络里。

而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。这就是网络A向网络B转发数据包的过程。

所以说,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信。那么这个IP地址是哪台机器的IP地址呢?网关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备有路由器、启用了路由协议服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。

DNS

是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。DNS中保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名。

比如:把 xiaolaiwo.com 转换为 139.198.11.208 的IP地址;

DNS服务器可以有很多层,下层代理和缓存上层数据,接下来就会配置一个本地的DNS服务解决某些域名无法直链访问的问题。

无线路由器(Wireless Router)

无线路由器是一个综合性硬件设备,具备拨号上线、路由、网关、DNS、防火墙、无线网络等功能。

简单点也可以说是家庭上网的一体化软硬件解决方案。

安装网关服务器

硬件

系统安装

Openwet 固件地址Release openwrt-bcm27xx-bcm2710 · SuLingGG/OpenWrt-Rpi (github.com)

下载固件 immortalwrt-bcm27xx-bcm2710-rpi-3-ext4-sysupgrade.img.gz

安装烧录工具balenaEtcher – Flash OS images to SD cards & USB drives

固件刷入到 SD 卡

SD卡插回到树莓派,插电开机,开机过程中我们先看下openwrt固件的文档

项目介绍 – doc.openwrt.cc

确认初始设置这里的用户名和密码

通过网线连接电脑和树莓派,浏览器打开http://192.168.1.1

输入密码 password 登陆

配置

首先拔掉网线,让电脑连入无线路由器网络;

设置IP为自动获取模式,登陆无线路由器后台。

进入DHCP服务器设置

设置开始地址为60,保存。

断开无线,插入网线,手动设置电脑的IP;

192.168.1.59 与 网关服务器的IP 192.168.1.1 在同一网段;

浏览器访问http://192.168.1.1 登陆网关服务器;

进入 网络 – 接口 菜单,找到LAN 网络 ,点击修改

传输协议为静态地址;

IP地址设置一个和现有局域网同网段的静态 IP 地址,注意不要和现有设备的 IP 地址冲突; 192.168.1.6

将 LAN 网络接口的“默认网关”设为主路由的 IP 地址;192.168.1.1

使用自定义的 DNS 服务器”设为主路由的 IP 地址;192.168.1.1

禁用IPv6分配服务。

然后应用 设置。注意是应用,不是保存并应用

物理设置的接口选择 eth0,多网口网线接哪个口选择哪个

忽略DHCP

禁用所有IPV6设置

点击保存,不是保存并应用

进入 网络 – 防火墙,不启用“ SYN-flood防御”;

不启用 “IP 动态伪装”

点击保存并应用。

用网线链接把无线路由器的LAN口和树莓派的有线网口链接。

电脑连接到无线,并测试网络是否连通;

修改电脑的网关和 DNS 为 192.168.1.6,再次测试网络连通性。这种设置方法只对当前设备有效,比如你只想自己的设备走代理的话可以这么设置。调试时也建议使用这种。

另一种全局的设置方法,直接修改无线路由器的 DHCP

修改网关和 DNS 后若无法上网,说明网关服务器配置有错误,可以把网关和DNS改回192.168.1.1,浏览器访问http://192.168.1.6 登陆到网关服务器检查配置。

部分无线路由器会校验数据包的ip和mac地址的对应关系,由于网关转发数据时的mac是网关服务器自己的与数据的IP不一致,所以校验失败。

解决办法是增加一个防火墙规则

如果你的路由器不需要这么设置是最好的,这样做的后果就是所有的流量都会经过树莓派的网关服务器,树莓派只有百兆的网络带宽,降低了网络性能。

网络

理想情况旁路网关不会影响局域网性能,也不会影响广域网下行性能。

因此,使用旁路网关的主要目的如果只是用来转发代理上网的流量,旁路网关的性能并不重要。

  1. 局域网互访,不经过网关
  2. 广域网下行,不经过旁路网关
  3. 广域网上行,经过旁路网关再经过上级网关
  4. 代理无论上行下行都经过旁路网关

注意设置了防火墙规则后全部流量经过网关。

代理

代理的安装和配置部分参考谷歌教程,网关服务器的代理设置和软路由代理设置相同。

只试用了 PassWall 下中国列表,代理正常运行。

另外 FRP 也可以正常使用,有需要可参考另一篇文章。

要所有设备走代理记得改无线路由器DHCP服务器的网关和DNS。

参考文章:

Openwrt 作为旁路网关(不是旁路由、单臂路由)的终极设置方法,破解迷思 – 少数派 (sspai.com)

doc.openwrt.cc

balenaEtcher – Flash OS images to SD cards & USB drives

百度百科_全球领先的中文百科全书 (baidu.com)

发表评论