API节点中转

如果边缘节点和API节点之间无法保持稳定的连接,不仅影响到配置更新、访问日志,也会影响到统计和计费(商业版),此时可以考虑在第三个服务器上设置一个中转服务,类似于以下结构:

------------         -----------------         -----------------
|  边缘节点 |  <--->  |  中转服务:端口  |   <---> |  API节点:端口  |
------------         -----------------         -----------------

步骤1:设置中转服务

中转服务可以使用nftables、iptables等常用软件完成,请自行查找相关资料,这里不再赘述。

GoEdge也提供了一个简单的TCP端口转发的工具,使用方法可以参考本文的 EdgeForward 部分。

步骤2:配置中转

注意:GoEdge v1.2.7以前版本中的边缘节点配置文件为 api.yaml,并且配置内容有所不同,请对照字段修改。

中转服务设置完成后,可以修改 edge-node/configs/api_node.yaml (或老版本中的 api.yaml) 中的 endpoints 网址,并加入 disableUpdate 字段,比如:

rpc.endpoints: [ "http://175.178.206.125:8001" ]
rpc.disableUpdate: true
nodeId: "a222cc85347f1310ff47d22ad17f92cd"
secret: "I4AqvmW3QmlL6imszspt7FSNMMpNP2fV"
其中:

  • rpc.endpoints - 是API节点的协议、地址和端口,中转后,需要将地址和端口改为中转服务的地址和端口
  • rpc.disableUpdate - 如果设置了 disableUpdate,那么在管理平台修改API节点地址时,节点不会自动更新,避免因为自动更新导致设置的中转失效

修改 api_node.yaml 配置后,需要重启 edge-node 进程:

bin/edge-node restart

从v0.5.8以后,如果要想让节点启动时不需要修改配置文件,可以在”节点设置” – “系统设置” – “API节点地址”中添加节点使用的API节点中转地址,这样即使不修改节点的 api_node.yaml 配置,也可以自动使用配置的中转地址。

智能DNS节点相关

对于商业版的智能DNS的节点可以和CDN边缘节点同样设置。

EdgeForward

GoEdge提供了一个简单的TCP端口转发的工具EdgeForward,以下是使用方法:

下载

安装和配置

上传到要做中转的服务器,然后使用 unzip 解压:

# 下载,以 x86_64 版本为例
wget "https://dl.goedge.cn/edge-forward/v1.0.0/edge-forward-linux-amd64-v1.0.0.zip"

# 解压
unzip -o edge-forward-linux-amd64-v1.0.0.zip

# 进入到 edge-forward 目录
cd edge-forward/

# 复制配置
cp configs/forward.template.yaml configs/forward.yaml

# 修改配置
vi configs/forward.yaml

forward.yaml 中的配置说明:

  • rules - 规则列表
    • src - 当前中转服务端端口
    • dest - 目标服务主机地址和端口,如果是做API节点中转,那么这里就是API节点(非管理系统)的主机地址和端口,默认是管理系统IP:8001

单个规则的例子:

rules:
  - src: 8001
    dest: 192.168.1.100:8001

多个规则的例子:

rules:
  - src: 8001
    dest: 192.168.1.100:8001
  - src: 8002
    dest: 192.168.1.101:8001

配置完成后,可以使用以下命令对配置进行简单的测试:

bin/edge-forward test

启动

可以使用以下命令启动:

bin/edge-forward start

启动后可以在 logs/run.log 中查看是否有异常。

每次修改配置后,都要重新启动才会生效:

bin/edge-forward restart

GoEdge文档