如何判斷服務器之間的服務是否可用?ping 還是 telnet?


1. 背景

  機器A需要調用機器B的服務,為此要保證服務的可用性,我們有時候用ping,有時候用telent來驗證機器A和B的連通性,但有時候會出現這種情況,A可以ping通B,但A調用B的服務會一直報服務超時?如果telnet通了,則不會發送這種情況,這是為什么呢?

2. 分析

  ping 可以測試到目標機器的連通性。用的是ICMP協議,和服務是否可用無關。

  telnet 用於遠程管理連接主機。同時也是測試目標機器的TCP端口是否開放,如果連接失敗,可能是防火牆屏蔽。可以簡稱服務是否可用。

3. 深入

ping的用法

C:\Users\dell>ping

用法: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
            [-r count] [-s count] [[-j host-list] | [-k host-list]]
            [-w timeout] [-R] [-S srcaddr] [-c compartment] [-p]
            [-4] [-6] target_name

選項:
    -t             Ping 指定的主機,直到停止。
                   若要查看統計信息並繼續操作,請鍵入 Ctrl+Break;
                   若要停止,請鍵入 Ctrl+C。
    -a             將地址解析為主機名。
    -n count       要發送的回顯請求數。
    -l size        發送緩沖區大小。
    -f             在數據包中設置“不分段”標記(僅適用於 IPv4)。
    -i TTL         生存時間。
    -v TOS         服務類型(僅適用於 IPv4。該設置已被棄用,
                   對 IP 標頭中的服務類型字段沒有任何
                   影響)。
    -r count       記錄計數躍點的路由(僅適用於 IPv4)。
    -s count       計數躍點的時間戳(僅適用於 IPv4)。
    -j host-list   與主機列表一起使用的松散源路由(僅適用於 IPv4)。
    -k host-list    與主機列表一起使用的嚴格源路由(僅適用於 IPv4)。
    -w timeout     等待每次回復的超時時間(毫秒)。
    -R             同樣使用路由標頭測試反向路由(僅適用於 IPv6)。
                   根據 RFC 5095,已棄用此路由標頭。
                   如果使用此標頭,某些系統可能丟棄
                   回顯請求。
    -S srcaddr     要使用的源地址。
    -c compartment 路由隔離艙標識符。
    -p             Ping Hyper-V 網絡虛擬化提供程序地址。
    -4             強制使用 IPv4。
    -6             強制使用 IPv6。

telnet用法

C:\Users\dell>telnet -help

telnet [-a][-e escape char][-f log file][-l user][-t term][host [port]]
 -a      企圖自動登錄。除了用當前已登陸的用戶名以外,與 -l 選項相同。
 -e      跳過字符來進入 telnet 客戶端提示。
 -f      客戶端登錄的文件名
 -l      指定遠程系統上登錄用的用戶名。
         要求遠程系統支持 TELNET ENVIRON 選項。
 -t      指定終端類型。
         支持的終端類型僅是: vt100, vt52, ansi 和 vtnt。
 host    指定要連接的遠程計算機的主機名或 IP 地址。
 port    指定端口號或服務名。

4. 拓展

  linux中怎樣關閉ICMP回應功能,即ping不通

echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
如果需要ping通則輸入:
echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all
 
  Linux 開啟telnet服務
/etc/xinetd.d/telnet,將disable=yes改成disable=no;
關閉telnet服務
/etc/xinetd.d/telnet,將disable=no改成disable=yes;
5.總結
  ping通常是用來檢查網絡是否通暢或者網絡連接速度的命令。
  而telnet是用來探測指定ip是否開放指定端口的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM