API节点中转

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

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

步骤1:设置中转服务

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

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

步骤2:配置中转

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

  1. rpc:
  2. endpoints: [ "http://175.178.206.125:8001" ]
  3. disableUpdate: true
  4. nodeId: "a222cc85347f1310ff47d22ad17f92cd"
  5. secret: "I4AqvmW3QmlL6imszspt7FSNMMpNP2fV"

其中:

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

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

  1. bin/edge-node restart

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

智能DNS节点相关

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

EdgeForward

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

下载

安装和配置

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

  1. # 下载,以 x86_64 版本为例
  2. wget "https://dl.goedge.cn/edge-forward/v1.0.0/edge-forward-linux-amd64-v1.0.0.zip"
  3. # 解压
  4. unzip -o edge-forward-linux-amd64-v1.0.0.zip
  5. # 进入到 edge-forward 目录
  6. cd edge-forward/
  7. # 复制配置
  8. cp configs/forward.template.yaml configs/forward.yaml
  9. # 修改配置
  10. vi configs/forward.yaml

forward.yaml 中的配置说明:

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

单个规则的例子:

  1. rules:
  2. - src: 8001
  3. dest: 192.168.1.100:8001

多个规则的例子:

  1. rules:
  2. - src: 8001
  3. dest: 192.168.1.100:8001
  4. - src: 8002
  5. dest: 192.168.1.101:8001

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

  1. bin/edge-forward test

启动

可以使用以下命令启动:

  1. bin/edge-forward start

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

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

  1. bin/edge-forward restart