ubuntu - Cassandra 节点无法相互通信
问题描述
我已经在 3 个 AWS EC2 实例上安装了 cassandra,但它们都不能相互 ping 通,7000 上的 telnet 也不能。
telnet tm1 7000
Trying 172.31.30.37...
telnet: Unable to connect to remote host: Connection timed out
下面是 netstat 的输出
netstat -na|grep LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
我了解 cassandra 节点间通信我需要打开 7000 端口,但想知道如何让它在 ubuntu 上监听。
任何帮助,将不胜感激 !
解决方案
好的,所以你在7000
这里测试端口的 TCP 通信,但这实际上可以是任何端口。您需要做的第一件事是设置一个进程来侦听端口,然后测试连接(必须先打开 TCP 套接字,然后才能测试到它的连接性)。
您可以使用netcat
( nc
) 这是一个理想的工具来检查这一点。确保首先安装它,然后您可以运行“服务器”以绑定到端口,如下所示:
nc -l 0.0.0.0 7000
然后您可以检查以确保其收听
$ netstat -lnt | awk '/7000/;NR==2'
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:7000 0.0.0.0:* LISTEN
最后检查来自其他节点的连接,如下所示:
$ nc -v -w2 10.1.2.3 7000
Connection to 10.1.2.3 7000 port [tcp/afs3-bos] succeeded!
-v
是冗长的,是-w
超时的
请注意,在测试端口之外,ping 并不是测试一般连接性的好方法,因为在很多情况下 ICMP 数据包会被丢弃(安全性)。因此,如果它不 ping,这并不意味着您有连接问题。
推荐阅读
- javascript - 不和谐.JS | TypeError:无法读取 null 的属性“运行”
- wordpress - 直接访问 wp-cron.php
- lua - Roblox Studio Lua:杀死脚本问题的现金
- android - 安卓。触摸侦听器在两个视图之间混合
- javascript - 针对浏览器窗口大小?
- laravel-passport - Laravel 个人访问令牌过期
- javascript - 是否可以使用用户定义的 JS 变量字符串来输入 Flask 变量?
- reactjs - 如果我们使用 Typescript,我们如何使用 CDN URL 机制进行包管理?
- javascript - 如何安装 npm peerDependencies 以删除警告
- nginx - Nginx 批量 URL 重定向