最近网络服务商comcast地下的线缆有问题导致上不了网。报修说the fix could be as quick as two months. 因为要申请许可，然后用工程机械在路面下面施工。只能自救了。做了很多尝试，折腾了很多东西，把心得记录一下。

1. 在发现Starlink排队要排到下半年以后，我们尝试的第一个方案是手机tether。技术框架就是 手机 <--Wifi--> 电脑。这里发现各家运营商差异巨大，att在室内可以到8mbps，comcast mobile和tmobile就只能2mbps，会都开不了。但即使是att也不是很稳定，经常出现延时巨大甚至卡顿的情况。我们后来选择了tmobile的50刀100G的套餐，最便宜。下面主要就是改善信号。
2. 第二个方案是LTE modem。技术框架是 LTE Modem <--网线--> 电脑。这里LTE Modem自己也是个路由器，带路由和DHCP功能。这里的问题是单纯的LTE modem在室内信号也不好，显示0-1格信号，网速和手机相差不大。但购入大约11db的外置定向天线以后，可以在室内把信号撑到3格，网速涨到5mbps。器材结构变成了 定向天线 <--TS9连线--> LTE Model <--网线--> 电脑。
3. 接下来我们发现室内外对信号影响还是蛮大的。在室外的话信号可以到4格，网速可以到10-15mbps。定量测量之后更是惊人。同样的天线朝向和位置，就单纯的从窗外移到窗内，位置变动1cm，LTE的信号可以变化20dB之巨。所以天线必须要放在室外了。但室外没有网线插口，又不想在墙上打洞传网线。所以就只能先把LTE Modem在室外接到一个老无线路由上，然后在家里用另一个无线路由桥接组网。器材的结构一下复杂了好多，变成了 定向天线 <--TS9连线--> LTE Model <--网线--> 无线路由 <--Wifi--> 无线路由当repeater用 <--网线--> 路由器 <--网线--> 电脑。这里为什么电脑端用了两层路由，是因为只用一层路由做客户端网桥的话，后面交换机连的家里的内网其他设备往往拿不到IP，还不知道是什么原因。因为LTE Modem不是专门的室外设备，所以要用个塑料袋套起来。用的是买的夏威夷面包的袋子，充满了热带风情。

![Hawaiian rolls](https://yage.ai/images/network_hawaiian.jpg)

4. 但这样用了一段时间发现流量可能还是不够。我们已经办了3个unlimited套餐，每个月230G的tether流量，不想继续花钱了。所以就买了个偷网神器（tplink cpe710，BTW做工极差，但架不住便宜），用23db的定向天线对准200m外的xfinity wifi，根据信号强度精确调整指向。这下网速涨到了25mbps，流量焦虑也解决了，这个偷网设备本身就是防水的所以也不用特殊处理了。网络结构是 CPE710 <--网线--> 无线路由当AP用 <--Wifi--> 无线路由当repeater用 <--网线--> 路由器 <--网线--> 电脑。不同于LTE Modem，这里电脑端的路由器是必须的。这是因为公共Wifi桥接的话，设备直接就暴露在公开的网络里面，所以用了一个路由器+防火墙隔离内外网。
5. 这样用了一段时间，发现公共Wifi的稳定性仍然不是很好。平时上网也许可以，但用来开会的话基本上5分钟要断一次。所以还是得需要两个网一起使用。但这样就带来一个问题，家里的无线设备不够用了，网桥弄不起来。于是我就把电脑端的无线路由刷成了OpenWRT，在上面用软件的方法实现了无线桥接，从而省出来一个无线路由在外面当AP。家庭内网因为隐私和可靠性的考虑连LTE网络，需要看视频，同步OneDrive的电脑连偷的Wifi，从而大致解决了用网的需求。也是考虑到可靠性的原因，也给器材们打印了一个盒子防雨，不用躲在塑料袋里面了。
6. 又用了一段时间，发现OpenWRT无线网桥的稳定还是有问题。刚开始两天用的比较好，后面就需要不断重启，到最后甚至重启一次只能保10分钟平安，然后网桥就断开了。调研显示无线网桥就是没有什么稳定的软件方案。尝试了比如WDS透明网桥，Ubuntu的网络共享，手动配路由表转发等等，没有一个能用的。最靠谱的方法还是得用repeater。于是被迫上亚麻花了13块钱巨款买了个repeater。

![Final solution](https://yage.ai/images/network_cpe710.jpg)

在整个过程中踩了很多很多的坑，折腾了一段时间，对网络设备的理解感觉更深刻了。以前玩的都是家用路由，其实是个交换机+AP+路由器+DHCP服务器+网关+防火墙的合体。这段时间对每个设备干的事情都有了更深的认识。比如每种设备拿来干什么，以及不再局限于设备本身来看待问题，而是会根据实际需求来组合硬件。比如现在回头看第5步的网络，其实室外可以用一台家用无线路由就解决问题。LTE Modem插LAN 1口，配成DHCP client；CPE710插WAN口，配成WAN，提供DHCP server服务。然后在系统里把LAN 1设成一个VLAN，和2.4G radio桥接。WAN设成另一个VLAN，和5G radio桥接。这样就可以一把提供所有功能。也就是这个家用路由器不再是"无线路由"一个东西，而是5个网口，2个radio，一个CPU。CPU可以干很多软件上的事情，比如桥接，路由，网段隔离，DHCP，防火墙等等。观念上改变以后，结合一些比较开放的系统比如OpenWRT，就可以做很多有意思的东西了。另一个例子是Multi WAN，也就是LTE和Wifi之间load balancing来同时使用增加网速，这个往往是比较高端的企业路由器才会提供的功能，但其实我们用家用路由通过合理编写路由表，或者直接使用一些库比如mwan3，也可以轻松实现这样的功能。

玩到了这一层以后下一步就会自然提出问题：家用路由器的硬件其实都比较弱鸡，就算用OpenWRT的话，不久也会碰到性能瓶颈。有没有可能自己攒机做路由器/网关呢？那是肯定的。我这里也没有什么经验，但有很多人自己组fanless机器装pfsense或者OPNSense来实现非常灵活的网络功能的。我自己因为时间限制不能折腾得过深，用了firewalla的菜鸟版路由也还行。

嘛，总之希望网络尽快修好吧。

<script async data-uid="49b08a3e73" src="https://yage-ai.kit.com/49b08a3e73/index.js"></script>
