我在 Azure 中与 centos7 兼容的 Linux 机器上设置了 apache cassandra。我可以直接 telnet 到机器 IP 地址上的端口 7000 等,但是我无法从外部 telnet 到同一端口。
端口 22 作为端点工作正常,但这些端口都不起作用。唯一的区别是这些端口是我自己创建的,而 22 端口是 Azure 在创建虚拟机时创建的。
我甚至添加了 httpd 并创建了端口 80 端点,但没有成功。
好像我漏掉了一步。我还没有在机器上设置防火墙,这是我目前正在研究的概念验证。我以为只需为外部和内部设置具有相同端口的端点就可以允许流量,但这样做不起作用。
谢谢你的帮助!
答案1
验证 Cassandra 是否配置为监听正确的 IP 地址(通过 cassandra.yaml)。默认情况下,它可能只监听 127.0.0.1。
答案2
事实证明,在 CentOS 7 上,为了关闭 iptables 服务,您需要执行以下操作:
sudo systemctl 停止防火墙
我刚刚以老方式运行命令来关闭 iptables,并没有注意到错误。
现在我可以测试了,如果可行的话,就会将 iptables 规则放回我最终的机器构建中。
谢谢你!
答案3
我遇到了同样的问题。我已将 listen_address 和 rpc_address 的默认设置更改为 VM 内部地址,然后它开始工作。
答案4
首先,您应该检查 Cassandra 服务是否正在运行。然后检查端口监听状态。之后,您应该检查防火墙设置。