我已经在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上进行监听。
任何帮助将不胜感激!
答案 0 :(得分:3)
好的,所以你在这里测试端口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,则并不意味着您有连接问题。