爱快&openwrt虚拟机最优配置的重构版

上篇讲的比较笼统, 模糊, 现在进行重新撰写

开篇

开始前,先补充一点儿知识

分流

流控 分流,在网络行业上就是将流量分开,让其分道而行。
网络上支持分流的路由系统有好几款,我只说我在用的爱快。
在爱快中,分流模式有:多线负载、协议分流、端口分流、域名分流、上下行分离。
多线负载:在该模式下,内网流量会根据设置的负载比例,将流量分配到外网线路上。
协议分流:根据应用所使用的协议,流量而进行分流,比如游戏走线路1,视频走线路2。
端口分流:根据源IP、目的IP、端口进行分流。比如192.168.0.1/24走线路1,192.168.1.1/24走线路2。
域名分流:根据域名进行分流。比如www.baoidu.com走线路1,www.google.com走线路2。
上下行分流:用不到,有兴趣自行看爱快文档。

分流模式的优先级:静态路由>域名分流>端口分流>协议分流>多线负载>默认网关
同一个分流模式下,新建的分流规则优先于旧的分流规则。

DNS

我们知道,在互联网中,我们是通过IP进行互相访问的,而通常,IP对于人是不好记的。于是就出现了域名这种东西,通过一串字符就可以让我们访问到相应的IP。比如我们访问www.baidu.com,实际访问的就是14.215.177.38这个IP。而将这一串字母转换为IP的东西,就是DNS(域名解析服务器)。

正常上网,我们把需要访问的域名告诉DNS,让DNS告诉我们,这个域名所代表的IP是多少,然后我们再通过这个IP,去访问相应的服务。有了DNS,我们才能正常的访问各种网站,应用程序。

翻墙模式

一般我们的梯子软件,都提供了4种翻墙模式:

  1. 全局模式:所有的流量都走梯子
  2. GFW模式:被防火墙拦截的域名走梯子
  3. 绕过中国大陆模式:中国大陆IP直连服务器,不走梯子,其他全部走梯子
  4. 规则模式:2,3模式的合并。

分流模式的选择和设置

从翻墙模式来看,这和流控分流是没什么区别的。所以,我们完全可以用分流来代替梯子中的翻墙模式。假设我们有两条外网,一条是wan1(国内宽带接入网络),一条是wan2(国际网络)。

设置wan2为默认网关,然后把中国大陆的IP导入到爱快的IP分组中,并配置端口分流,指定中国大陆的IP走wan1。是不是就相当于翻墙模式中的绕过中国大陆模式

设置wan1为默认网关,然后把GFW的域名导入到域名分流,指定线路为wan2。是不是就相当于翻墙模式中的GFW模式

设置wan1为默认网关,然后在协议分流中配置Google协议走wan2,然后配置端口分流配置Telegram的IP走wan2,域名配置Github的域名走wan2。是不是就相当于翻墙模式中的规则模式。(当然,这个没意义,除非你是多条线路,可以设置游戏走那条线,上网或者其他走那条线。部署的时候不讲这个。)

OpenWrt的两种设置方法

支持梯子的固件有很多,但我只说OpenWrt,万法相通,都一个样的。

OpenWrt有多个网口

OpenWrt的wan口接入爱快的lan口,OpenWrt的lan口接入爱快的wan口。(本文采用这种方法)

OpenWrt只有一个网口

独臂旁路由,参考著名的N1旁路由设置

DNS服务器的设置

前面说了,有了DNS,才能通过域名访问相应的服务,所以设置一个正确的DNS才能流畅的访问网络,因为国内的部分DNS是不会解析国外的一些域名的。在爱快的DNS设置中,有一个多线路DNS,可以为不用的线路单独设置DNS,比如国内线路DNS设置为223.5.5.5,119.29.29.29;国外线路DNS设置为8.8.4.4,1.1.1.1。需要值得注意的是,在多线路DNS中,客户端发出的请求会先通过默认网关请求一次设置的默认DNS,然后才会进行按照多线路的DNS进行请求。

如果你是x86的爱快,同时又有着DNS重写,去广告等功能需求,可以选择和我一样,单独虚拟一个AdGuard Home。至于为什么不用OpenWrt插件的AdGuard Home,我只能说,我CPU核多。

实践

本文内容只说裸机装爱快,和爱快中虚拟OpenWrt的设置,Pve和Esxi仅供参考。同时,默认省去一些基础操作。

演示机器配置:
倍控工控机G31准系统
CPU: N5105
内存:16G
硬盘:250G固态
网卡:I225v3 2.5G网卡 4口

演示网络:
OpenWrt内网地址:192.168.2.1/24
爱快内网地址:192.168.1.1/24
爱快wan口配置:
wan1:运营商拨号上网
wan2:静态地址:192.168.2.254;子网掩码:255.255.255.0;网关:192.168.2.1。
DNS内建地址:192.168.1.253(可选操作)

个人愚见:用来纯做路由还是不错的,但是做All in one,还是差点儿意思。 可能是我玩的方法不对,反正已经吃灰半年多了。

安装爱快路由系统

固件下载
安装教程
然后配置网络,达到能够正常上网,同时配置wan1为默认网关(国内流量)。
在wan2的线路检测中,配置为http检测,地址就www.youtube.com就行(当能http检正常时,所有流量会走该wan口,当http检测不正常时,配合端口分流主备模式,可自动切换到其他线路,如wan1)。
如果没有选择内建DNS,DNS设置中不要打开DNS加速,然后配置多线路DNS,wan1为国内DNS,wan2为国外DNS。
在DHCP服务端设置中,网关设置为爱快(192.168.1.1),首选DNS:223.5.5.5,备用DNS:8.8.4.4。

虚拟机安装OpenWrt路由器系统

安装固件自己百度寻找,也可以在Telegram频道群員固件交流-Pi&N1中下载。如果用不起,需要转换固件格式为爱快虚拟机可用的,我转换为了vmdk后缀格式的固件。转换软件名:StarWind V2V Converter

先在 系统设置-磁盘管理-磁盘分区中 进行分区,用于安装虚拟机,绑定业务为普通存储。
重启后上传OpenWrt固件到刚刚新建的分区
在 高级应用→虚拟机中,添加虚拟机。
安装磁盘:刚刚分区的名字
虚拟机名称:OpenWrt
类型:Linux
CPU使用率:100
CPU核心:1
虚拟机内存:1024
新建设备-网卡-wan2(半虚拟化)
新建设备-网卡-lan1(半虚拟化)
新建磁盘-引用磁盘-选择自己刚刚上传的固件
PS:网卡顺序不能变。
VNC自行配置,反正要开

在VNC中,执行 vi /etc/config/network ,修改lan IP地址为:192.168.2.1。然后通过192.168.2.1进入管理后台,完善lan口设置。然后配置wan口:
IP:192.168.1.254
掩码:255.255.255.0
网关:192.168.1.1
广播地址:192.168.1.255
DNS:配置为国外DNS,也可使用内建DNS。
配置你的梯子客户端,并设置为全局上网模式,建议使用OpenClash。

如果需要配置奈飞分流等,自行修改梯子软件相关规则,但是依旧要保持全局上网模式,因为我们对于国外流量的分流是基于爱快的流控分流。

使用内建DNS时,需要关闭Openclash的本地DNS劫持。

内建DNS(可选)

在爱快中虚拟自己喜欢的Liunx系统,配置ip为192.168.1.253 然后自己网上找方法安装AdGuard Home,我的是虚拟的CentOS7 安装的。

在DNS设置,上游DNS中填入以下内容:(仅做参考,按自己喜欢的来,反正国内国外DNS都要填)

#阿里系
#223.5.5.5
#223.6.6.6
https://dns.alidns.com/dns-query
tls://dns.alidns.com
#Google系
#8.8.8.8
8.8.4.4
#腾讯系
#119.29.29.29
#119.28.28.28
https://dns.pub/dns-query
tls://dot.pub
#cloudflare
#1.1.1.1
#1.0.0.1
https://dns.cloudflare.com/dns-query
#adguard
#94.140.14.140
https://unfiltered.adguard-dns.com/dns-query

设置为最快的IP地址(仅供参考),在Bootstrap DNS 服务器中填入以下内容

223.5.5.5
8.8.4.4
119.29.29.29
1.1.1.1
94.140.14.140

在DNS重写中,可以直接配置dns域名的IP,比如dns.alidns.com的IP就是223.5.5.5和223.6.6.6。具体自己ping一下,因为腾讯dns域名的IP不是119.29.29.29,避免其他和腾讯一样**。可以避免出现我请求我自己的IP是多少这样的事。

然后DNS缓存配置中,全部留空不填。去广告看个人需求,我自己没有用这个功能。

然后在爱快DHCP中,配置首选备选DNS为:192.168.1.253。

配置分流规则

在爱快中操作

GFW分流

该方式不支持只有一个口的路由,因为域名分流没法分到内网

下载GFW域名,导入到流控分流-域名分流中,然后修改线路为wan2。

绕过大陆IP(需要使用协议分流时不建议使用)

下载大陆IP分组,导入到网络设置-终端分组设置-IP分组。

打开-流控分流-端口分流

创建第一条规则,流量默认走wan2:
分流方式:外网线路,如果是独臂就是下一跳网关。
链路:wan2,wan1 独臂没有该选项。
下一跳网关:独臂旁路由的IP地址,外网线路没有该选项。
线路绑定:取消勾选(避免故障时无法切换到wan1),独臂没有该选项。
负载均衡:主备模式,独臂没有该选项。
协议:任意
源地址:内网IP,文中为192.168.1.1/24
目的地址:不填
备注:默认流量出口
然后保存,此时打开https://www.ip138.com/,你会发现是国外IP地址。如果没网,或者不是国外IP地址,请检查OpenWrt的配置。独臂不支持主备模式,所以如果使用独臂,当独臂外网线路故障,没有开机时,所有国外网站无法访问,比如Github,hub.docker.com,有个变通的解决方案就是OpenClash不设置为全局,使用规则模式。

注意,主备模式下,主线路在第一个,备线路在主线路后面。如果不需要主备模式(方便判断故障)。链路选wan2,负载均衡选新建连接数。

创建第二条规则,国内IP走wan1:
分流方式:外网线路
链路:wan1
线路绑定:勾选(避免故障切换到wan2)。
负载均衡:看自己,如果只有一条线路,就新建连接数。
协议:任意
源地址:不填
目的地址:选择刚刚导入的大陆IP地址
备注:国内流量出口

创建三条规则(该规则用于避免环路):
分流方式:外网线路
链路:wan1
线路绑定:勾选(避免故障切换到wan2)。
负载均衡:看自己,如果只有一条线路,就新建连接数。
协议:任意
源地址:OpenWrt的wan口地址,比如文中的192.168.1.254
目的地址:不填
备注:VPN流量出口

需要严格按照顺序创建,因为同一个分流模式下,新建的分流规则优先于旧的分流规则。
这个时候再打开https://www.ip138.com/,你会发现IP又变为了国内IP,然后再打开google,如果可以打开,至此设置完成。打不开,检查配置,重新阅读。