{{i18nTranslate('_layout.t11')}} {{i18nGetLang()==='zh' ? 'EN' : '中文'}}

# 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`，以下是使用方法：

### 下载

- X86_64版本：https://dl.goedge.cloud/edge-forward/v1.0.0/edge-forward-linux-amd64-v1.0.0.zip
- ARM64版本：https://dl.goedge.cloud/edge-forward/v1.0.0/edge-forward-linux-arm64-v1.0.0.zip

### 安装和配置

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

    # 下载，以 x86_64 版本为例
    wget "https://dl.goedge.cloud/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

{{i18nTranslate('_layout.t27')}}
{{i18nTranslate('_layout.t12')}}