配置项作用 #
network.host 配置项指定 Easysearch 绑定的网络地址,决定节点监听哪些网络接口。此配置影响节点是否能被其他节点和客户端访问。
配置项类型 #
该配置项为静态配置,需要在启动时设置,修改后需要重启节点才能生效。
默认值 #
未配置(使用 _local_,即回环地址)
是否必需 #
生产环境必需(开发环境可选)
配置值说明 #
| 值 | 说明 |
|---|---|
_local_ | 仅本地回环地址(127.0.0.1、[::1]) |
_site_ | 本地站点地址(所有网卡) |
_global_ | 所有地址(等同于 0.0.0.0) |
| 特定 IP | 绑定到指定 IP 地址 |
| 主机名 | 绑定到主机名解析的地址 |
使用示例 #
开发/测试环境:
# 使用默认值(仅本地访问)
# network.host: _local_
# 或明确配置
network.host: 127.0.0.1
生产环境(推荐):
# 绑定到所有网络接口
network.host: 0.0.0.0
# 或使用 _site_
network.host: _site_
# 或绑定到特定 IP
network.host: 192.168.1.10
多网卡服务器:
# 绑定到特定网卡
network.host: 192.168.1.10
# 绑定到多个地址(使用数组格式在某些版本)
# network.host: ["192.168.1.10", "192.168.2.10"]
特殊值说明 #
1. local(默认) #
仅绑定回环地址,只能本机访问:
┌─────────────────────────────────────────────┐
│ 节点仅监听本地回环地址 │
│ 127.0.0.1 (IPv4) │
│ [::1] (IPv6) │
└─────────────────────────────────────────────┘
↑
仅本地 curl http://localhost:9200
适用场景:
- 开发测试
- 单机部署
- 本地验证
2. site #
绑定到所有站点的网络接口:
┌─────────────────────────────────────────────┐
│ 节点监听所有网卡 │
│ │
│ ┌────────┐ ┌────────┐ ┌────────┐ │
│ │ eth0 │ │ wlan0 │ │ docker0│ │
│ │10.0.1.│ │192.168.│ │172.17. │ │
│ └────────┘ └────────┘ └────────┘ │
└─────────────────────────────────────────────┘
适用场景:
- 单机多网卡
- 需要局域网访问
3. 0.0.0.0 或 global #
绑定到所有可用网络接口:
┌─────────────────────────────────────────────┐
│ 节点监听所有网络接口 │
│ │
│ ┌────────┐ ┌────────┐ ┌────────┐ │
│ │ eth0 │ │ wlan0 │ │ docker0│ │
│ │10.0.1.│ │192.168.│ │172.17. │ │
│ └────────┘ └────────┘ └────────┘ │
│ │
│ 公网 IP (如果有的话) │
└─────────────────────────────────────────────┘
适用场景:
- 生产服务器
- 需要公网访问(配置防火墙)
- 多网卡服务器
推荐设置建议 #
| 环境 | 推荐配置 | 说明 |
|---|---|---|
| 开发 | _local_ 或不配置 | 仅本地访问 |
| 测试 | _local_ 或 0.0.0.0 | 根据需要 |
| 生产 | 0.0.0.0 或 _site_ | 允许外部访问 |
| 容器 | 0.0.0.0 | 容器内通信 |
完整网络配置示例 #
# 集群配置
cluster.name: production
node.name: node-1
# 网络配置(重要)
network.host: 0.0.0.0
# HTTP 服务端口
http.port: 9200
# 传输端口
transport.port: 9300
# 节点发现
discovery.seed_hosts:
- 192.168.1.10:9300
- 192.168.1.11:9300
安全考虑 #
生产环境安全配置:
- 使用防火墙:限制访问来源
# 仅允许特定网段访问
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.0/8" port protocol="tcp" port="9200" accept'
- 配合 xpack/security:启用安全认证
xpack.security.enabled: true
xpack.security.http.ssl.enabled: true
- 内网部署:生产节点通常部署在内网
常见问题 #
问题 1:节点无法被其他节点发现
检查:
network.host是否正确配置- 防火墙是否开放传输端口(默认 9300)
- 网络连接是否正常
问题 2:只能本机访问
原因:未配置 network.host,使用默认的 _local_
解决方案:
network.host: 0.0.0.0
问题 3:多网卡绑定到错误地址
明确指定要绑定的 IP 地址:
network.host: 192.168.1.10
IPv6 支持 #
支持 IPv6 地址配置:
# IPv6 地址
network.host: "[::1]"
# IPv6 全局地址
network.host: "[::]"
# 同时指定 IPv4 和 IPv6
# network.host: ["0.0.0.0", "[::]"]
验证网络配置 #
启动节点后验证:
# 检查监听端口
netstat -an | grep -E '9200|9300'
# 检查绑定的地址
curl http://localhost:9200/_cat/nodes?v
# 查看节点网络信息
GET /_nodes
相关配置项 #
| 配置项 | 作用 | 默认值 |
|---|---|---|
network.bind_host | 绑定地址 | 同 network.host |
network.publish_host | 发布地址 | 同 network.host |
http.port | HTTP 端口 | 9200-9300 |
transport.port | 传输端口 | 9300-9400 |
注意事项 #
- 静态配置:修改网络配置需要重启节点
- 安全第一:生产环境务必配置防火墙
- 网络测试:配置后测试网络连通性
- 多网卡:使用
0.0.0.0确保绑定所有接口 - Docker:容器内使用
0.0.0.0并正确映射端口





