Linux – 打开的端口,但仍然无法使用telnet连接到它

我目前正在研究CentOS 7.3。

为了激活SNMP,我安装了它,使用firewall-cmd命令对它进行了configuration并成功启动了服务。

现在,我意识到我需要打开端口161,使SNMP开始通信。 因此我运行下面的命令。

$sudo firewall-cmd --permanent --add-port=161/udp --zone-public Success $sudo firewall-cmd --reload Success

之后,我检查了新的选项是否被成功添加,并且一切都变好了。

但是,当试图检查如果我没有问题连接到端口161使用telnet,我收到以下错误信息。

 Trying 127.0.0.1... telnet: connect to address 127.0.0.1: Connection refused Trying ::1... telnet: connect to address ::1: No route to host 

我在这一步中是否有任何遗漏?

你不能telnet snmp端口,因为它不是TCP,是UDP;

尝试使用net-snmp软件包中的snmpget命令进行testing:

http://net-snmp.sourceforge.net/tutorial/tutorial-5/commands/snmpget.html

为了提供更多的理解,请在linuxquestions.org上的@tkedwardsfind这篇文章,了解使用telnet检查UDP端口连通性的结果:

“UDP是一种无连接的协议,意味着它只是将包发送到指定的目的地,TCP是面向连接的,意味着它使用”三次握手“build立到另一端的连接。

因此,将“telnet”范例应用于TCP是有意义的 – 即使您没有发送任何数据,并且您可以发送和接收,您仍然保持连接(一段时间)数据连续不断地重新连接。

另一方面,UDP并不适合telnet模式 – 它更像是一个即发即弃(fire-and-forget)系统,在这个系统中,你可以向目的地发送一系列数据包。 然后继续进行其他操作(或者等待无所事事),直到(或者如果)远程进程发回一些数据包。

因此,在恢复UDP它不是你真的可以检查,除非它会给你回来的信息。