檢測tcp/udp埠是否可用
telnet
我們一般檢查服務的埠是否可用,通常使用telnet工具。
使用方法:
# telnet 192.168.173.82 22 Trying 192.168.173.82... Connected to 192.168.173.82. Escape character is '^]'. SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.8 ^C Connection closed by foreign host.
但如果是udp的服務,telnet檢測就會失效,因為telnet是基於tcp協議的。此時可以使用uc這個工具,大多linux發行版都自帶這個工具。
nc
使用方法:
# nc -vuz 192.168.173.103 750 Connection to 192.168.173.103 750 port [udp/kerberos4] succeeded!
上面例子顯示結果是通的。
但是要注意,如果對端開啟了防火牆,防火牆把包DROP了,那麼是收不到埠不可達訊息的,那麼使用nc命令就會發現實際不通的埠是通的。
仔細想想UDP的原理就清楚了,UDP不像TCP一樣需要ACK,所以過一段時間沒收到埠不可達,UDP就認為埠是通的,但是實際上UDP資料被防火牆DROP了。