网络端口配置
本文档描述了各种网络端口范围及其用途。
所有Redis企业版软件的部署都跨越多个物理/虚拟节点。您需要在这些节点之间保持多个端口开放。本文档描述了各种端口范围及其用途。
Redis Enterprise Software 使用的端口和端口范围
Redis企业版软件的端口使用分为三大类:
- 内部:用于集群节点之间或内部的流量
- 外部:用于来自客户端应用程序或外部监控资源的流量
- Active-Active: 用于与托管Active-Active数据库的集群之间的流量
协议 | 端口 | 可配置 | 连接源 | 描述 |
---|---|---|---|---|
TCP | 8001 | ❌ 否 | 内部, 外部 | 从应用程序到Redis企业软件的流量 发现服务 |
TCP | 8070 | ❌ 否 | 外部 | 由网络代理导出和管理的指标 |
TCP | 3347-3349, 8000, 8071, 9091, 9125 | ❌ 否 | 内部 | 内部指标端口 |
TCP | 8443 | ✅ 是 | 内部, 外部 | 安全 (HTTPS) 访问管理网页界面 |
TCP | 9081 | ✅ 是 | 内部 | 用于Active-Active管理的CRDB协调器(内部) |
TCP | 9443, 8080 | ✅ 是 | 内部, 外部, 主动-主动 | REST API 流量,包括集群管理和节点引导 |
TCP | 10050 | ❌ 否 | 内部 | Zabbix 监控 |
TCP | 10000-10049, 10051-19999 | ✅ 是 | 内部, 外部, 主动-主动 | 数据库流量 |
UDP | 53, 5353 | ❌ 否 | 内部, 外部 | DNS/mDNS 流量 |
TCP | 1968 | ❌ 否 | 内部 | 代理流量 |
TCP | 3333-3345, 3350, 36379, 36380 | ❌ 否 | 内部 | 节点间通信 |
TCP | 20000-29999 | ❌ 否 | 内部 | 数据库分片流量 |
TCP | 8002, 8004, 8006 | ✅ 是 | 内部 | 默认系统健康监控(envoy 管理,envoy 管理服务器,gossip envoy 管理) |
TCP | 8444, 9080 | ❌ 否 | 内部 | Web代理与cnm_http/cm之间的流量 |
更改端口配置
保留端口
Redis 企业版软件默认保留了一些端口(system_reserved_ports
)。要保留其他端口或端口范围并防止集群将它们分配给数据库端点,请使用以下方法之一配置 reserved_ports
:
-
rladmin cluster config reserved_ports <端口列表/端口范围>
例如:
rladmin cluster config reserved_ports 11000 13000-13010
-
更新集群设置 REST API 请求
PUT /v1/cluster { "reserved_ports": ["端口列表/端口范围"] }
例如:
PUT /v1/cluster { "reserved_ports": ["11000", "13000-13010"] }
更改集群管理器UI端口
Redis Enterprise 软件集群管理器 UI 默认使用端口 8443。只要新端口未被其他进程使用,您可以将其更改为自定义端口。
要更改此端口,请运行:
rladmin cluster config cm_port <new-port>
更改Redis Enterprise Software Web UI端口后,您必须将添加到集群的任何新节点连接到具有自定义端口号的UI:
https://newnode.mycluster.example.com:
<nonstandard-port-number>
更改envoy端口
对于系统健康监控,Redis默认使用以下端口:
-
用于envoy管理的端口8002
-
用于envoy管理服务器的端口8004
-
用于gossip envoy管理的端口8006
您可以使用rladmin cluster config
命令将每个envoy端口更改为自定义端口,只要新端口未被其他进程使用。当您更改envoy_admin_port
时,预计envoy会重新启动。
要更改envoy管理端口,请运行:
$ rladmin cluster config envoy_admin_port <new-port>
Updating envoy_admin_port... restarting now
要更改envoy管理服务器端口,请运行:
$ rladmin cluster config envoy_mgmt_server_port <new-port>
Cluster configured successfully
要更改八卦使者管理端口,请运行:
$ rladmin cluster config gossip_envoy_admin_port <new-port>
Cluster configured successfully
更改REST API端口
对于REST API,Redis Enterprise Software默认使用端口9443(安全)和端口8080(不安全)。只要新端口未被其他进程使用,您可以将其更改为自定义端口。
要更改这些端口,请运行:
rladmin cluster config cnm_http_port <new-port>
rladmin cluster config cnm_https_port <new-port>
Ubuntu与端口53冲突
如果端口53正在使用中,安装将失败。这种情况可能发生在Ubuntu 18.04和20.04的默认安装中,其中systemd-resolved
(DNS服务器)正在运行。
为了防止这个问题,在安装之前更改系统配置以使该端口可用。
-
编辑
/etc/systemd/resolved.conf
:sudo vi /etc/systemd/resolved.conf
-
在文件的最后一行添加
DNSStubListener=no
并保存文件。 -
重命名当前的
/etc/resolv.conf
文件:sudo mv /etc/resolv.conf /etc/resolv.conf.orig
-
为
/etc/resolv.conf
创建一个符号链接:sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
注意:您可能会遇到一个临时的名称解析错误(sudo: unable to resolve host {hostname}: Temporary failure in name resolution
),这应该在下一步重新启动systemd-resolved
时得到解决。 -
重新启动DNS服务:
sudo service systemd-resolved restart
更新 sysctl.conf
以避免端口冲突
为了避免端口冲突,更新 /etc/sysctl.conf
以包含:
net.ipv4.ip_local_port_range = 30000 65535
配置HTTPS
要求API端点使用HTTPS
默认情况下,Redis Enterprise Software API 支持通过 HTTP 和 HTTPS 进行通信。但是,您可以关闭 HTTP 支持,以确保 API 请求被加密。
在关闭HTTP支持之前,请确保将使用HTTP的任何脚本或代理配置迁移到加密的API端点,以防止连接中断。
要关闭API端点的HTTP支持,请运行:
rladmin cluster config http_support disabled
关闭HTTP支持后,发送到未加密API端点的流量将被阻止。
HTTP 到 HTTPS 重定向
从版本6.0.12开始,您不能使用自动HTTP到HTTPS重定向。
要从metrics_exporter
轮询指标或访问集群管理器UI,请在请求中使用HTTPS。对于这些服务,HTTP请求不会自动重定向到HTTPS。
不同VLAN上的节点
同一集群中的节点必须位于同一VLAN上。如果无法将节点托管在同一VLAN上,则必须在它们之间打开所有端口。