解说 AppNode 受控端连接方式

AppNode 区别于许多面板的一个特点是可以集中管理你的服务器,这个功能主要体现在控制中心的节点管理上。也许你在第一次安装 AppNode 受控端时已经体验过它了,但是控制中心和受控端是怎么进行连接的,可能你并不是很清楚。

下面 AN 君就来向大家解析下几种 AppNode 受控端的连接方式。

基本概念

开始之前,还是让 AN 君先介绍下一些基本概念,帮助大家事半功倍。

AppNode 软件分为两个部分,需要独立安装:控制中心、受控端。

那么这两个部分有什么差别呢?什么场景下应该装哪个软件?

控制中心

在 AppNode 官网安装页面(https://www.appnode.com/install)上介绍的其实就是安装 AppNode 控制中心的方法。

AppNode 控制中心主要用于大批量管理服务器,目前仅包含了几个面板的基础功能,今后会增加集群业务管理功能。控制中心自身没有服务器管理功能,必须通过连接受控端来进行控制。

受控端

受控端是无界面的,但是所有的服务器管理功能均在受控端实现,它提供 API 供控制中心调用实现控制。受控端的安装需要在控制中心的节点管理应用中进行。

控制模型

控制中心通过 API 接口控制受控端,可以在同一服务器内部调用,也可以跨网络跨服务器调用,如图所示:

上图中,服务器 B 上同时安装了控制中心和受控端,而服务器 A 和服务器 C 只安装了受控端。我们需要访问服务器 B 上安装的控制中心才能控制管理这三台服务器。

受控端提供的 API 接口是基于 http/https 协议的,同时 API 调用是需要 API 密钥签名过后才能有效,因此跨机调用也是非常安全的。

受控端的监听配置

安装受控端时,可选用两种网络类型:TCP 连接、Unix 本地连接。

两种网络的区别在于:

  • TCP 连接需要占用网络端口,可由外部网络连接访问
  • Unix 本地连接不需要占用网络端口,只能由本地程序连接访问

因此,这两种网络的最大差别就是会不会对外部暴露 TCP 端口,可以根据自己的需求决定是否暴露端口。

受控端的连接配置

受控端的连接配置,配置的是控制中心连接到受控端的方式。

在上一段落中,我们介绍了两种不同的受控端的监听网络,针对不同的监听网络类型,控制中心所能使用的连接方式也有所不同。

受控端监听网络类型 控制中心可使用的连接方式
TCP 连接 TCP 连接
TCP 连接(基于 SSH 隧道)
Unix 本地连接 Unix 本地连接
Unix 本地连接(基于 SSH 隧道)

使用场景

不同的网络适用于不同的场景,如果控制中心和受控端是在同一台服务器上,那么受控端使用 Unix 本地连接即可,控制中心可直接通过这个 Unix Socket 连接上受控端。

如果是远程服务器,一般选用 TCP 连接,这样受控端会开放一个 TCP 控制端口,这样控制中心就可以通过这个控制端口进行远程控制了。

但是,如果你不希望在远程服务器上开放端口,那么你也可以将受控端配置为使用 Unix 本地连接,这样控制中心和远程服务器之间的通信就需要走 SSH 隧道了。