[2020.03.15] WR1200JS 路由器在OpenWRT系统下双WAN同时接入并实现自定义路由运营商

中国奠信,世界加钱可及

作为一名 VPS 老年玩家,各种奇葩的机器配置和路由咱都差不多艹了个遍。但是,当玩腻了之后,想从中挑选一只满意的机器又何其困难。其中最大的坎就卡在网络连接的问题上了。就拿谷歌云举个例子,谷歌云的线路与境外各大运营商之间的互联已经算得上是几乎完美的了。然而从大陆电信访问就是花式丢包加上各种魔法绕路。加上最近受不明原因的影响,CN2 也跪了。单方走访调查 后,最终选择了加一条备胎的方案。大陆流量喂给电信,境外的就塞给联通好了。

提前跟联通派上门的小哥沟通好了,从他那儿接过了 PPPOE 账号密码。剩下的需要我做的有这么几件事儿:

  1. 在 WR1200JS 上配置两条运营商同时接入
  2. 写路由,让路由器根据目标 IP 地址自动选择对应的 WAN 口走出去
  3. 告别辣鸡电信出口,享受美好生活

(一 双 WAN 接入,同时拨号

WR1200JS 只有一个蓝色的 WAN 口,但对这于 OpenWRT 这样强大的系统来说都不是事。登录路由器管理界面,备份好当前配置后切换到 Network → Switch(中文名叫交换机)。在预置VLAN ID1的那一行中,将 LAN 1 接口由 untagged(未标记)设置为 off。这样 LAN 1 接口就会被释放出来,用于备胎接入的 WAN 口。然后点击左下角的【ADD VLAN】,在新加的 VLAN 中设置 CPU 接口为 tagged(已标记),LAN 为 untagged(未标记),其余接口不做修改。看上去像这样:
wqwdws.JPG

继续配置拨号。Network → Interfaces 新加一个接口,姑且命名为【UNION】好了。协议选【PPPOE】,Interface 是刚才划出来的 VLAN, 名为【eth0.3】。建好后编辑它,输入联通小哥给的用户名和密码,Firewall Settings 选择【WAN】,保存并生效后顺利拿到 IP。至此双线接入 & 拨号已经解决。
fnwerofknf.JPG
(上方电信,下方联通)

(二 告诉路由器如何分配流量

路由器当然不知道我们的想法,在它看来两个 WAN 接口之间是无异的。于是默认情况下路由器会随机选择这两个 WAN 口转发流量。有可能前一秒走电信网络,后一秒跳成联通了。不仅给网络稳定性造成了负面影响,它还会使一些网站的账号登不上去。接下来要做的就是告诉路由器,将个别 IP(梯子节点)的流量路由到备胎联通,剩下的路由到正宫。为此需要给 两个 WAN 口 以及下面添加的 自定义路由 设置不同的跃点数(优先级)。

关于为什么只设置个别 IP 而不是全体境外 / 境内 IP 段,这是因为 WR1200JS 的核心——MT7530 性能不太行,设置太多的静态路由会增加路由耗时,造成网络堵塞严重影响使用。所以,为了你好它好,还是别给它太大的压力吧

咱钦定的跃点数为:

目标 优先级 跃点数
梯子节点 5
非梯子节点 10

回到路由器管理界面,Network → Interfaces,编辑 电信 的 WAN 接口,Advanced Settings 选项卡下 【Use gateway metric】设置为 【10】 。 联通 的接口也最好锁定一下跃点。否则万一 联通 接口自动分配的跃点数比 电信 还低,流量又会全跑到联通那边去了。仿照设置 电信 接口的方法,对 联通 的接口设置一个很大的数字,比如说 【50】 就可以了。

* 在后期的使用中,我发现部分网站(如百度等)会解析到 联通 的 IP,而根据咱的路由规则这些 IP 走的又是 电信 的出口。理论上 OpenWRT 应该查询跃点数低的接口的 DNS,不知道这是咱这边的网络不稳定还是 OpenWRT 的 Bug。为了避免这种情况,需要把 联通 接口的 DNS 禁用掉。方法也很简单,在设置跃点数的框框上方,【Use DNS servers advertised by peer】去掉勾,【Use custom DNS servers】留空就好。这样,OpenWRT 只会选择 电信 接口查询 DNS。

huifwejkf.JPG
(电信接口)
bisdbfcikwdes.JPG
(联通接口)

保存并生效后,在 Network → Static Routes 下,ADD 一条规则:

InterfaceTargetNetmaskGatewayMetricSource Address
UNION梯子 IP默认即可 UNION 接口获取到的网关5192.168.X.0/24(内网网段)

huiewbfiwelf.JPG
fldvdfdf.JPG

如果有其他需要通过联通接口走出去的目标,依次添加即可,跃点数都可以设置成【5】。

最后保存并生效,等待 5 秒后 tracert 梯子 IP,可以看到第二跳是 UNION 接口的网关,而 tracert 百度 IP 依然为原来的电信网关。这说明刚刚配置的路由已经生效。(为保护隐私这里就不放图了)

(三 令人生草的测速环节

本测速环节毫无任何严谨性,仅供各位看官参考

下面进入正片,灯光音效全开!
测试时间某年某月某日晚高峰(23 点整),地点华南,目标节点谷歌云香港 C 区,启用 BBR 拥塞控制

第一项,HTTP GET 大文件测试

正宫优先,有请中国奠信选手登场!

bhsdjvbehjkvbke.JPG
号称百兆的电信选手实际只达到了 2 MB/s 的速度,在后期甚至下滑到了 700 KB/s
差评!╰(‵□′)╯ 镜头左转

qwqwqwqwqwq.jpg
同样百兆的联通选手以 13 MB/s 的稳定速度完美击败了对方!

第二项,国际惯例油管 4K

测试视频为 [MMD] Catch The Wave
上回合胜利的联合通信选手优先登场!
bfikwelfiweklf.JPG

在 4K 画质下联通选手迅速加载了画面并取得了 7 万的佳绩,甚至在缓存达到饱和前,速度仍有上升的趋势。
可惜视频最大缓存似乎只有 23 秒,联通选手并未能展示出全部实力。
而电信选手是否能在第二项测试中挽回局面呢?
dgwbiqd.JPG

卡了!卡了!我老婆 MIKU 她卡住了!!
奠信选手经过了数秒的黑屏后终于摸出了第一帧,然而在短短的半 s 后画面停滞不前,加载光环牢牢地套在了我老婆头上
又等待了一会儿,电信选手蓄力后放出致命一招,拿到了 0.8 万的超超超高分,后一瞬降温维持在了 0.6 万的分数并再起不能。

< 全剧终 >
v2-0068f1333f2990706ce076e3d94f7b10_720w.jpg
(图源水印)

(四 总结

  1. WR1200JS 本身只带 1 个 WAN 口,但经过刷机并增加一条 VLAN 后可以实现双 WAN 接入
  2. 接上一条,再增加一条 VLAN 后还可增加一只 WAN 口
    但再加一条其他二流运营商的线路毫无意义,就算是移动这样免费送的宽带也只是浪费网口
  3. 联通 NB!联通 NB!联通 NB!!

(五 后续

v2-db83ac77223b3ea0b1cd94e250cb89e9_r.jpg
(图源水印)

某网课平台由于众所周知的大原因,在高峰时段登陆成功的概率如中彩票一般。后来咱向 华南电信 DNS nslookup 了一下它的 API 主机名,竟返回了二十个 北京联通 的 IP,还出自同一个 /24 网段。这运维人员水平有多低,我暂且蒙在北京联通网段里。

于是,咱让这个网段下的所有主机都享受了梯子级待遇,在静态路由中将该平台的整个网段划给了联通。具体操作 Target 填写X.X.X.0,Netmask 填写255.255.255.0,其他与上文相同。保存生效后,整个平台打开速度有了百分之千的提升。

世界清静了

原本为了加速梯子而掏钱办理的宽带

竟成为了网课平台的学习利器!!

从网课的大坑中有幸爬出又掉落回去的我

枯了

(六 后续的后续

这两天在折腾反代的时候发现,GCP 连不上电信 IP 暴露的端口。以为是电信又炸了,后来在不同时段重试了几次还是相同的结果。一番排查下来发现是OpenWRT将回复的SYN+ACK包通过联通发出去了。这并不是咱希望看到的。咱希望的只是从家庭内网中主动走出去的流量转发到联通,而电信入方向的流量原路走出去(毕竟联通上传龟速,还没有公网 IP。如果真拿联通挂 PT 啥的,我号已经没了)。

为了解决这个问题,咱使用了mwan3这个用于均衡负载的软件包。在某屎黄色 LOGO 网站上 不是 PronHub有很多老司机写过多拨的教程,参照那些配置一下。与多拨不同的是,按不同的运营商分别建立两个PoliciesRules那里写下需要分流的目标,调整好顺序保存就可以了。

需要注意的是mwan3有时候并不会直接生效,保存后可能需要重启一下路由器。
这可能是mwan3的 Bug,也可能是 Future

本文链接:https://blog.hiirachan.moe/archives/1584273110.html
This blog is under a CC BY-NC-SA 3.0 Unported License

本站不提供任何可用于侵入、非法控制计算机信息系统的程序、工具
不提供非法定信道进行国际联网

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.