Firewall

Linux - 打開埠,但仍然無法使用 telnet 連接到它

  • August 7, 2017

我目前正在開發 CentOS 7.3。

為了啟動 SNMP,我安裝了它,配置了它並使用firewall-cmd命令成功啟動了服務。

現在,我意識到我需要打開 161 埠才能使 SNMP 開始通信。因此我在下面執行了以下命令。

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

之後,我檢查了是否成功添加了新選項,結果一切正常。

但是,在嘗試檢查使用 telnet 連接到埠 161 是否沒有問題時,我收到了以下錯誤消息。

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 命令對其進行測試:

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

為了提供更多的理解,請從linuxquestions.org上的@tkedwards 找到這篇文章,以了解使用 telnet 檢查 UDP 埠連接的結果:

“UDP 是一種無連接協議,這意味著它基本上只是將數據包發送到指定的目的地。TCP 是面向連接的,這意味著它使用‘3 次握手’建立到另一端的連接。

因此,將“telnet”範例應用於 TCP 是有意義的——您連接到特定的主機和埠,即使您沒有發送任何數據並且您可以發送和接收,您仍然保持連接(一段時間)連續數據,而無需在兩者之間重新連接。

另一方面,UDP 並不真正適合 telnet 模型——它更像是一個即發即棄的系統,您可以在其中向目的地發送一系列數據包。然後你繼續做其他事情(或者只是等待什麼都不做),直到(或者如果)遠端程序發回一些數據包。”

因此,在恢復 UDP 中,除非它會給您返回資訊,否則您無法真正檢查它。

引用自:https://serverfault.com/questions/867194