宿舍网络调试小记(第一章 光猫、路由器和AP)
最开始的时候,我的宿舍网络是由一个小光猫构成的,
光猫不仅可以拨号,还能作为无线接入点,手机直接连光猫的Wi-Fi就可以无线上网,
这也是大部分简单的家庭网络的模样:
不过,很快就会发现连光猫的Wi-Fi很卡,一是光猫(北京联通)的无线模块只能提供50Mbps的网速,二是光猫无线吞吐性能不行,同时上网的设备一多就会掉帧丢包,100Mbps的网速到手机上只有30Mbps左右。怎么办呢?买个路由器。市面上的路由器,WiFi信号一般要好于光猫的信号,所以在网络中加上了路由器后,无线速度明显变快了,电脑也因为直接使用有线连接路由器,可以达到很快的网速了。
随着宿舍无线设备的增多,我发现在线设备较多的时候,还是会出现丢包降速的情况,而且电脑直接用网线连路由器也只能跑到不到200Mbps,但是宽带是300Mbps,剩下的那100Mbps哪去了呢?
想来想去,应该是光猫的性能问题,CPU转发性能较低,在一直满速的情况下会发热,无法长时间保持稳定满速。
于是我考虑将光猫改成桥接模式,也就是变成一个纯二层光转电设备,把PPPOE拨号这些事情交给转发性能更强的路由器的CPU来做。
在这样调整之后,路由器进行PPPOE拨号,这时候我发现路由器获得了一个公网IP,虽然是动态的,但是可以用手机直接访问路由器开放出去的端口。
于是我ssh登到路由器(小米R1D)上,编译了一个LNMP环境(路由器的Linux系统+Nginx+MySQL+PHP),放了一个简单的Wordpress博客在路由器上,然后把Wordpress端口开放到公网,这样就可以通过IP来访问我的博客了。
这样就又产生了一个问题,网络一重启,博客的IP就会变化,谁能每次都记得住IP呢。
于是我做了下面三件事:
1.注册了一个域名,并把域名备案;
2.找了一个脚本,让路由器每次重启的时候都获取一下PPPOE接口的IP,并绑定到域名上;
3.弄了个脚本,让路由器每次重启后发微信告诉我最新的IP。
这样就可以通过http://域名:55555来访问我的博客了。
为什么不用默认的80和443端口呢?因为家用宽带不会给你开放这两个端口(所以后来把博客迁移到云端了,后续更新)。
然后要做的事就是折腾Wordpress博客了,因为Wordpress博客的服务器全都在国外,对国内网络支持不太好,一下载插件就会502-Timeout,所以我需要让路由器遇到国外的IP时自动切换为外国的网络。
当时用的是小米R1D,R1D是最早带硬盘的国产家用路由器,硬盘不能浪费掉,于是又开了个下载服务,想看的电影可以先离线下载到路由器硬盘上,再使用Samba服务把路由器里面的硬盘挂载到电脑上,晚上打开下载后就可以关掉电脑了,白天起来直接就可以在电脑上观看下载好的电影了。
这样,越来越多的服务在小米R1D上运行,路由器的芯片有些吃不消,
所以又从小米R1D换成便宜实用的斐讯K3,
再后来,又从斐讯K3又换成了比较贵的华硕路由器ASUS-AC86U
运行在路由器上面的服务也就越来越多了
偶然的机会,发现自己的网络支持迅雷快鸟,打开迅雷快鸟的App后,网速会从300Mbps临时变更为700Mbps,这就很划算了,但是迅雷快鸟的App只能电脑登录或者是手机登录,电脑关掉或者手机休眠的时候,宽带就又变回300Mbps了。
正好我认识参与梅林插件的开发者Sadog,我和Sadog说了一下,他给我做了一个可以在AC86u路由器上运行的迅雷快鸟插件,这样,我路由器就可以一直保持700Mbps的网速了。
迅雷快鸟插件的雏形:
700Mbps的网速,导致我的路由器一下子就过时了。跑了那么多的服务,还想要Wi-Fi速度能达到700Mbps,有点痴人说梦。
这种路由器性能不足的情况持续了大概有半年的时间,我发现了新的解决方法。
将需要CPU算力的功能分给计算性能强的主机,将需要发射Wi-Fi信号的功能分给信号超级好的AP,这样的话就可以保持网络和运算性能都均衡了。
于是我跑到淘宝,买了一个3855u软路由,用于拨号,包转发,以及7层的App运行。
又买了一个Tp-LINK的AP2608GC,用于发射Wi-Fi信号。
3855u买回来之后不太会用,把之前路由器的功能迁移过来,大概这个样子:
因为之前接触的x86平台一般是用来装Windows或者Ubuntu系统的,突然给了我一个没用过的系统,Koolshare的LEDE系统,就不会用了,面对LEDE的应用商店眼花缭乱的功能,我陷入了沉思。
这时候,我的朋友Luckybeans给我发了一个Lean自编译Openwrt系统的Github连接,我又糊涂了,这软路由到底怎么用呢。
[blueacc open="open" title="未完待续"]关于之后将博客部署到云主机+阿里WAF+OSS+CDN的网络中、用Openwrt开源代码定制X64固件、在软路由的ESXi系统搭建旁路双DNS缓存服务防污染、将应用从路由系统分离到Alpine_Docker的这些故事,我会在后续几章里面更新(咕咕咕)。[/blueacc]
[greenpro value="20"]PROGRESS[/greenpro]