📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

配置项作用 #

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

安全考虑 #

生产环境安全配置:

  1. 使用防火墙:限制访问来源
# 仅允许特定网段访问
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.0/8" port protocol="tcp" port="9200" accept'
  1. 配合 xpack/security:启用安全认证
xpack.security.enabled: true
xpack.security.http.ssl.enabled: true
  1. 内网部署:生产节点通常部署在内网

常见问题 #

问题 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.portHTTP 端口9200-9300
transport.port传输端口9300-9400

注意事项 #

  1. 静态配置:修改网络配置需要重启节点
  2. 安全第一:生产环境务必配置防火墙
  3. 网络测试:配置后测试网络连通性
  4. 多网卡:使用 0.0.0.0 确保绑定所有接口
  5. Docker:容器内使用 0.0.0.0 并正确映射端口