服务器监控与网状网络
CreateYourVPN 如何留意服务器健康状况:自我检测、服务器之间的网状互检网络,以及自动把不可达的服务器从用户视野中隐藏。
服务器总会在最不合时宜的时候掉链子:服务崩溃了、托管商重启了机器——更糟的是,服务器在某个用户所在的国家被封锁了,尽管它技术上依然在运行,却已经无法访问。你的用户永远不该注意到这些问题。这一课讲的是 CreateYourVPN 如何看护你的服务器,以及当某台服务器出问题时会发生什么。
两层检测
系统会从两个角度审视每一台服务器。
1. 服务器自我检测
每隔几分钟,每台服务器都会上报一次:443 端口的流量监听器是否存活,VPN 服务是否在运行?第 3 课里的那些指标也会随同这份报告一起上报。如果报告说"我状态不好",服务器就会得到**"服务器不可用"状态。如果报告彻底停止上报,状态就会变成"服务器无数据"**——这台机器可能已经断电,或者失去了网络连接。
2. 服务器之间互相"敲门"
自我检测抓不住最狡猾的那种情况:一台服务器自认为很健康,但从外部却无法访问——比如它的 IP 已经被封了。这就是为什么你所有的服务器都被组织进了一个互相检测的网状网络:每台服务器都会定期尝试连接自己的每个邻居——就像用户的应用会做的那样。
接下来会进行一次"投票":
- 单次敲门失败不能说明任何问题——网络可能只是抖了一下。只有持续的失败连续记录才算数。
- 只有当多台相互独立的服务器都持续无法访问某台服务器时,它才会被标记为**"从您的服务器无法访问"**——单台服务器的意见不算定论。
- 还有一道针对"不靠谱证人"的保护:如果某台服务器突然声称自己看不到一半的邻居,那问题多半出在它自己身上——它的投票会被忽略。
正是这套机制能捕捉到封锁:如果一台服务器在你其他服务器所在的国家被封了,那个国家的邻居会很快无法访问它,形成法定人数,系统就会把这台服务器标记为不可达。与此同时,没有被封锁的国家里的服务器依然能看到它——这种意见分歧会让情况一目了然。
有问题的服务器会怎样
这些状态会直接反馈到负载均衡:处于"服务器不可用"和"从您的服务器无法访问"状态的服务器会被移出轮换——不会再有新连接被分配给它们,在用户的订阅里,它们的位置会被同一路由中的健康服务器取代。
与此同时,系统非常谨慎——它建立在"无害"原则之上:
- 一条路由永远不会被清空。 如果一条路由上的所有服务器都被判定为"不好",系统宁可给用户提供现有最好的选项,也不会给出一份空列表——否则应用会以为服务器都消失了,把它们全部清除掉。
- 沉默不算定论。 "服务器无数据"状态本身不会让服务器自动退出轮换:没有新数据的情况下,系统不会贸然行动。
一切都会自愈
没有任何一个状态会永久"粘住"——状态始终是根据最新数据重新推导出来的:
- 服务器再次上报健康状态 → "服务器不可用"会被解除;
- 邻居重新能访问它 → 失败连续记录清零,"从您的服务器无法访问"标记消失;
- 上报恢复 → "服务器无数据"消失。
修好服务器(或者等它解封)——它就会自己重新投入服务。不需要手动"重新打开"。
在面板哪里能看到这些
打开任意用户的卡片 → 它的服务器列表:每台服务器旁边都有一个状态点,出了问题时会有一行说明原因:"服务器不可用""从您的服务器无法访问"(包括有多少台你的服务器看不到它),或者"服务器无数据"。服务器卡片上也会有间接迹象:指标上的"数据过时"标记和"暂无数据——代理未响应"。
网状检测极其节省资源:每次探测都是极小的一次触碰,每天的总量也有严格的上限——完全不会影响你服务器的流量或性能。
关键要点
- 两层控制:服务器自我检测,网状网络里的邻居从外部检测它。
- 封锁是通过多台服务器的"投票"来捕捉的——不会因为一次偶发波动就大惊小怪。
- 有问题的服务器会退出轮换;用户会悄无声息地转移到健康的服务器上。
- 一切都会自愈:服务器一恢复正常,就会自动重新加入。
下一课
基础设施知道怎么自我修复,但有一样东西值得单独保护——你的用户群。