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版本:/dl/edge-forward/v1.0.0/edge-forward-linux-amd64-v1.0.0.zip
- ARM64版本:/dl/edge-forward/v1.0.0/edge-forward-linux-arm64-v1.0.0.zip
安装和配置
上传到要做中转的服务器,然后使用 unzip 解压:
# 下载,以 x86_64 版本为例
wget "/dl/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