Go 语言实现的 Bird-lg(Bird Looking Glass) 的插图

Go 语言实现的 Bird-lg(Bird Looking Glass)

什么是 BIRD?什么是 Bird-lg? BIRD 是 Linux 上常用的一款 BGP 路由软件。我主要 在 DN42 网络内使用 Bird ,与其它用户建立连接。 Bird-lg 是 GitHub 用户 sileht 开发的一款基于 Python 2 的程序。它提供了一个网页面板,可以显示各个服务器上的 BIRD 路由软件的状态,以及查询到指定 IP 的路由。 为什么我要用 Go 语言重写? Bird-lg 基于 Python 2 以及 Flask,因此占用内存较大(20-30 MB)。 Bird-lgproxy 内存占用量也差不多 20 MB,并且每台服务器上都要运行一个。本站所在的 512 MB 内存的 VPS 已经出现过多次由于内存耗尽外加 SWAP 所在硬盘读写缓慢,导致 Docker、nginx、MySQL、PHP 轮流崩的情况,只能重启解决。 Go 重写版本只消耗 6 MB 内存。 Bird-lg 读取多个服务器的状态是 按顺序 进行的,而非并行进行。有时某台服务器网络状态不好,或者 ZeroTier One 抽风,会导致读取时卡较长时间。 Go 重写版本使用 Goroutine 并行 请求多台服务器,...