docker构建elasticsearch集群无法外网访问 IPv4 forwarding is disabled. Networking will not work
场景:
玩家A突然告诉我,通过dockerpose构建elasticsearch集群简单又方便。
于是,自己就照搬官网的构建文件“https://www.elastic.co/guide/en/elasticsearch/reference/5.6/docker.html”,
3秒钟在腾讯云构建了一个2个节点的elastic集群(正常应该要有3个节点),方便至极兴奋的跳起来了。
问题:
打开浏览器验证集群:“网页无法正常访问”。
排查过程:
- 服务器中直接使用curl 127.0.0.1:9200 访问正常
- 查看防火墙,发现防火墙已关闭,排除防火墙原因
- 腾讯云嘛,经常玩的都懂,于是提工单,在腾讯云的帮助下,腾讯云工程师果断撇清腾讯云服务器
(事实证明人家真没有问题,但同时也暴露一个问题:防火墙关闭、安全组也打开了9200,腾讯云
工程师协助检查,发现9200依旧被过滤,无法访问) - 反复启动多次容器,仔细查看日志
发现一条WARNING: IPv4 forwarding is disabled. Networking will not work.
直接粘贴“百度”发现了标准的解决方案
更改 /etc/sysctl.conf中的“ net.ipv4.ip_forward=1”,默认其实是0.
更改后执行“systemctl restart network”,再次启动elasticsearch则可以通过外网访问!