實時監控伺服器某個埠狀態TCPing

来源:https://www.cnblogs.com/lovedxl/archive/2019/08/07/11315336.html
-Advertisement-
Play Games

在給客戶做運維服務期間,發現了一個奇怪的現象:備份系統(第三方國產)告警日誌顯示,每天晚上備份伺服器的客戶端在3點左右離線然後上線,再離線再上線,每晚兩次,很是詭異。 聯繫了廠家技術支持,前後花了兩天時間也沒給出個答案,一會讓我測試網路是否連接正常,一會讓我重啟客戶端服務試試,最終不了了之,很不專業 ...


在給客戶做運維服務期間,發現了一個奇怪的現象:備份系統(第三方國產)告警日誌顯示,每天晚上備份伺服器的客戶端在3點左右離線然後上線,再離線再上線,每晚兩次,很是詭異。

聯繫了廠家技術支持,前後花了兩天時間也沒給出個答案,一會讓我測試網路是否連接正常,一會讓我重啟客戶端服務試試,最終不了了之,很不專業,體驗極差。

我通過長ping生成日誌,發現在3點左右網路是正常的,沒有出現丟包現象。

 

思索著既然網路沒有問題,查看系統日誌在3點左右沒任何異常日誌,就猜測是不是埠異常,如何實時監聽要做備份的客戶端跟備份伺服器制定埠連接情況?網上搜索了很久找到了TCPing這個工具,很好用。做個記錄,也分享給大家。

Windows版本下載地址:https://elifulkerson.com/projects/tcping.php

 

參數如下:

NAME
    tcping - simulate "ping" over tcp by establishing a connection to network hosts.
    Measures the time for your system to [SYN], receive the target's [SYN][ACK] and send [ACK].  Note that the travel time for
    the last ACK is not included - only the time it takes to be put on the wire a tthe sending end.

SYNOPSIS
    tcping [-tdsvf46] [-i interval] [-n times] [-w interval] [-b n] [-r times][-j depth] [--tee filename] [-f] destination [port]

DESCRIPTION
    tcping measures the time it takes to perform a TCP 3-way handshake (SYN, SYN/ACK, ACK) between itself and a remote host.
    The travel time of the outgoing final ACK is not included, only the (minimal) amount of time it has taken to drop it on
    the wire at the near end.  This allows the travel time of the (SYN, SYN/ACK) to approximate the travel time of the
    ICMP (request, response) equivalent.
    
OPTIONS
    -4      Prefer using IPv4

    -6      Prefer using IPv6

    -t      ping continuously until stopped via control-c

    -n count
            send _count_ pings and then stop.  Default 4.
    
    -i interval
            Wait _interval_ seconds between pings.  Default 1.  Decimals permitted.
    
    -w interval
            Wait _interval_ seconds for a response.  Default 2.  Decimals permitted.

    -d      include date and time on every output line
    
    -f      Force sending at least one byte in addition to making the connection.

    -g count
            Give up after _count_ failed pings.
    
    -b type
            Enable audible beeps.
            '-b 1' will beep "on down".  If a host was up, but now its not, beep.
            '-b 2' will beep "on up".  If a host was down, but now its up, beep.
            '-b 3' will beep "on change".  If a host was one way, but now its the other, beep.
            '-b 4' will beep "always".

    -c      only show output on a changed state
    
    -r count
            Every _count_ pings, we will perform a new DNS lookup for the host in case it changed.

    -s      Exit immediately upon a success.        

    -v      Print version and exit.

    -j      Calculate jitter.  Jitter is defined as the difference between the last response time and the historical average.

    -js depth
            Calculate jitter, as with -j but with an optional _depth_ argument specified. If _depth_ is specified tcping will
            use the prior _depth_ values to calculate a rolling average.

    --tee _filename_
            Duplicate output to the _filename_ specified.  Windows can still not be depended upon to have a useful command line 
            environment. Don't tease me, *nix guys.

    --append
            When using --tee, append to rather than overwrite the output file.
            
    --file
            Treat the "destination" option as a filename.  That file becomes a source of destinations, looped through on a
            line by line basis.  Some options don't work in this mode and statistics will not be kept.


    destination
            A DNS name, an IP address, or (in "http" mode) a URL.
            Do not specify the protocol ("http://") in "http" mode.  Also do not specify server port via ":port" syntax.
            For instance:   "tcping http://www.elifulkerson.com:8080/index.html" would fail
            Use the style:  "tcping www.elifulkerson.com/index.html 8080" instead.
                                
    port
            A numeric TCP port, 1-65535.  If not specified, defaults to 80.

    --header
            include a header with the command line arguments and timestamp.  Header is implied if using --tee.
            
HTTP MODE OPTIONS   
    -h      Use "http" mode.  In http mode we will attempt to GET the specified document and return additional values including
            the document's size, http response code, kbit/s.
    -u      In "http" mode, include the target URL on each output line.
    
    --post  Use POST instead of GET in http mode.
    --head  Use HEAD instead of GET in http mode.
    --get   Shorthand to invoke "http" mode for consistency's sake.

    --proxy-server _proxyserver_
            Connect to _proxyserver_ to request the url rather than the server indicated in the url itself.
    --proxy-port _port_
            Specify the numeric TCP port of the proxy server.  Defaults to 3128.
    --proxy-credentials username:password
            Specify a username:password pair which is sent as a 'Proxy-Authorization: Basic' header.


RETURN VALUE
    tcping returns 0 if all pings are successful, 1 if zero pings are successful and 2 for mixed outcome.

BUGS/REQUESTS
    Please report bugs and feature requests to the author via contact information on http://www.elifulkerson.com
    
AVAILABILITY
    tcping is available at http://www.elifulkerson.com/projects/tcping.php

翻譯如下:

描述
在本地主機和遠程主機之間,tcping可以測試出執行TCP三次握手所需的時間(SYN,SYN / ACK,ACK)。最終ACK傳送時間不包括在內,只有最少的時間才能將其丟棄在近端的電線。 


概要
# tcping [-tdsvf46] [-i interval] [-n times] [-w interval] [-b n] [-r times][-j depth] [--tee filename] [-f] destination [port]

選項
-4,優先使用IPv4

-6,優先使用IPv6

-h,使用http模式

-t,讓命令持續運行,直到使用ctrl + c指令退出

-n 數字,發送命令的次數,預設4次

-i 數字,發送ping命令的時間間隔,預設1s,可以為小數

-w 數字,等待響應的時間間隔,預設2s,可以為小數

-d,使輸出的每一行顯示時間和日期

-f,強制ping命令至少發送一個比特(byte)

-g 數字,失敗指定次就放棄(註意預設是80埠,若其他埠沒開也算失敗)

-b 數字,開啟蜂鳴器,參數4會一直響鈴

-c,只顯示改變的信息(ping時間很短一般不會改變)

-r 數字,每發送指定個數據包,就重新查找主機一次(通過DNS或路由查找)

-s,ping通就立即退出

-u,與-h命令連用,每一行輸出目標的url

-v,顯示版本信息

-j,使用預設的方法,求ping的均值減小波動,網路有一定的不穩定性時,用此參數可以減小波動

-js 數字,用指定個實例求平均值減小波動,使用這個參數,系統會tcping 指定次,然後求出平均值作為一次結果顯示,減小波動

–tee file_path,將結果輸出到指定位置,tcping –tee /data/test.txt192.168.0.100,會把ping的結果保存在/data下的test文件中

–file,從文件中獲得ping的來源;在/data下新建一個test.txt文件,並輸入要tcping的所有ip或功能變數名稱,一行一個,然後執行命令tcping –file /data/test.txt,就會依次tcping文件中指定的地址

destination,可以是DNS地址、IP地址、URL(需要使用-h,http模式)。使用http模式時,不要加https//或:port,例如:tcping http://www.elifulkerson.com:8080/index.html就會失敗,使用tcping www.elifulkerson.com/index.html 8080就會成功

port 數字,指定tcp埠(1-65535),如果不指定,預設是80

–header,在頭部顯示時間和日期,與–tee顯示的格式差不多

–block,tcping不通的等待時間,預設是20秒(很長)。–block可以把-w參數衝突掉 ,例如tcping --block www.baiu.com網址不正確,顯然tcpping不通,預設會等待20s 。 tcping -w 0.5 –block www.baiu.com還是會等20s,而不是0.5s,因為–block選項會把-w選項衝突掉。

HTTP模式選項
–post,在http模式中,使用post方法

–head,在http模式中,使用head方法

–get Shorthand to invoke “http” mode for consistency’s sake.

–proxy-server,指定代理服務

–proxy-port,指定代理服務埠

–proxy-credentials username:password,使用代理的安全驗證,需要輸入用戶名和密碼

返回值
如果所有的pings是成功的,返回0;如果所有ping都失敗,返回1;混合結果,返回2

測試:tcping 200.209.200.15 21

 

 

我主要用的功能是長ping和輸出存檔:tcping.exe -t -d --tee d:/tcpping.log 192.168.**.** 9952

自動保存到D盤目錄。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 公司項目中一部分文件放到了阿裡雲 OSS 上,其中有些音頻文件是 amr 類型的,在後期使用的時候比較麻煩,所以需要轉換成 mp3 的文件,方便以後使用。本來想使用 ffmpeg 處理,但由於文件都存放在阿裡雲 OSS 上,使用 ffmpeg 就需要把文件從遠程下載下來,轉碼之後再重新傳回阿裡雲上,... ...
  • 啟用審批流時,BE插件解決方案目標框架必須採用.Net Framwork3.5, BE插件相關DLL部署位置:Applicationser/libs、MailServer/libs BE插件配置文件XML部署位置:MailServer/bin ...
  • private void Window_PreviewKeyDown(object sender, KeyEventArgs e) { //單個按鍵e.Key方式判斷 if (e.Key == Key.Enter) { MessageBox.Show("Key.Ent... ...
  • C# 讀取XML ...
  • 1.前言 選項(Options)模式是對配置(Configuration)的功能的延伸。在12章(ASP.NET Core中的配置二)Configuration中有介紹過該功能(綁定到實體類、綁定至對象圖、將數組綁定至類)而選項模式又有個選項類(TOptions),該選項類作用是指:把選項類中的屬性 ...
  • [toc] 實時同步sersync實戰 什麼是實時同步 實時同步是一種只要當前目錄發生變化則會觸發一個事件,事件觸發後會將變化的目錄同步至遠程伺服器。 sersync和rsync+inotify對比 提到數據同步就必然會談到 ,一般簡單的伺服器數據傳輸會使用 等方式,但是這樣的方式效率不高,不支持差 ...
  • 1.一切皆文件 2.有眾多單一目的的小程式,一個程式只實現一個功能,多個程式組合完成複雜任務 3.文本文件保存配置信息 4.儘量避免與用戶交互 ...
  • 如何判斷當前Linux系統是否安裝在VMware上面呢? 因為公司大部分伺服器位於VMware上,也有小部分系統部署在物理機上面。今天老大要求統計一下VMware和物理機上伺服器的數量,個人簡單測試、驗證了一下,當然也測試驗證了多台伺服器,但是限於手頭的VMware版本以及Linux版本,不代表所有... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...