乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      如何使用 Shell 腳本來查看多個(gè)服務(wù)器的端口是否打開?

       Coder編程 2022-06-20 發(fā)布于北京

      我們在進(jìn)行服務(wù)器配置的時(shí)候,經(jīng)常要查看服務(wù)器的某個(gè)端口是否已經(jīng)開放。如果服務(wù)器只有一兩臺的話,那很好辦,只需要使用 nc 命令一個(gè)個(gè)查看即可。

      但是,如果你的服務(wù)器是個(gè)集群,有很多臺呢?那如果還一個(gè)個(gè)手動去檢查的話,效率肯定是無比低下的,年底裁員名單里肯定有你。

      在這種情況下,我們完全可以使用 Shell 腳本配合 nc 命令來達(dá)到我們的目的。而且,不管服務(wù)器有幾臺,需要檢查的端口有幾個(gè),都可以實(shí)現(xiàn)這樣的目標(biāo)。

      在本文里,我們用 Shell 腳本來實(shí)現(xiàn)兩個(gè)需求:

      • 掃描多臺服務(wù)器的一個(gè)端口是否打開
      • 掃描多臺服務(wù)器的多個(gè)端口是否打開

      在開始之前,我們先來了解一下 nc 命令。

      nc 命令簡介

      nc 是英文單詞 netcat 的縮寫,它是通過使用 TCP 或 UDP 的網(wǎng)絡(luò)協(xié)議的連接來讀或?qū)憯?shù)據(jù),可以直接被第三方程序或腳本直接調(diào)用。

      同時(shí),它是一款功能非常強(qiáng)大的網(wǎng)絡(luò)調(diào)試工具,因?yàn)樗梢詣?chuàng)建幾乎所有你所需要的連接方式。

      nc 工具主要有三種功能模式:連接模式、監(jiān)聽模式、通道模式。它的一般使用格式如下:

      $ nc [-options] [HostName or IP] [PortNumber]
      

      接下來,我們就用 Shell 腳本結(jié)合 nc 命令來實(shí)現(xiàn)我們的兩個(gè)需求。

      1. 掃描多臺服務(wù)器的一個(gè)端口是否打開

      在這里,我們先把需要查詢的所有服務(wù)器地址全部放在一個(gè) server-list.txt 文件里,每個(gè)地址單獨(dú)一行,如下:

      # cat server-list.txt
      192.168.1.2
      192.168.1.3
      192.168.1.4
      192.168.1.5
      192.168.1.6
      192.168.1.7
      

      然后,我們再用 for 循環(huán)依次掃描 server-list.txt 里對應(yīng)服務(wù)器的端口是否打開。在這里,我們掃描 22 端口是否打開。

      # vi port_scan.sh
      
      #!/bin/sh
      for server in `more server-list.txt`
      do
      #echo $i
      nc -zvw3 $server 22
      done
      

      最后,我們給這個(gè)腳本賦予可執(zhí)行權(quán)限即可。

      $ chmod +x port_scan.sh
      

      之后,我們就可以用這個(gè)腳本來自動依次檢查多個(gè)服務(wù)器的 22 端口是否已打開。

      # sh port_scan.sh
      
      Connection to 192.168.1.2 22 port [tcp/ssh] succeeded!
      Connection to 192.168.1.3 22 port [tcp/ssh] succeeded!
      Connection to 192.168.1.4 22 port [tcp/ssh] succeeded!
      Connection to 192.168.1.5 22 port [tcp/ssh] succeeded!
      Connection to 192.168.1.6 22 port [tcp/ssh] succeeded!
      Connection to 192.168.1.7 22 port [tcp/ssh] succeeded!
      

      2. 掃描多臺服務(wù)器的多個(gè)端口是否打開

      在這里,我們同樣把需要查詢的所有服務(wù)器地址全部放在一個(gè) server-list.txt 文件里,每個(gè)地址單獨(dú)一行。這里就不重復(fù)演示了。

      與此同時(shí),我們也把需要查詢的服務(wù)器端口放在另一個(gè) port-list.txt 文件里,每個(gè)端口單獨(dú)一行,如下所示:

      # cat port-list.txt
      22
      80
      

      然后,我們再用 for 循環(huán)依次掃描 server-list.txt 里對應(yīng)服務(wù)器 port-list.txt 所列的端口是否打開。注意,這里用到了兩個(gè) for 循環(huán),第一層是服務(wù)器列表,第二層是端口列表。

      # vi multiple_port_scan.sh
      
      #!/bin/sh
      for server in `more server-list.txt`
      do
      for port in `more port-list.txt`
      do
      #echo $server
      nc -zvw3 $server $port
      echo ""
      done
      done
      

      最后,我們給這個(gè)腳本賦予可執(zhí)行權(quán)限即可。

      $ chmod +x multiple_port_scan.sh
      

      之后,我們就可以用這個(gè)腳本來自動依次檢查多個(gè)服務(wù)器的多個(gè)端口是否已打開。

      # sh multiple_port_scan.sh
      Connection to 192.168.1.2 22 port [tcp/ssh] succeeded!
      Connection to 192.168.1.2 80 port [tcp/http] succeeded!
      
      Connection to 192.168.1.3 22 port [tcp/ssh] succeeded!
      Connection to 192.168.1.3 80 port [tcp/http] succeeded!
      
      Connection to 192.168.1.4 22 port [tcp/ssh] succeeded!
      Connection to 192.168.1.4 80 port [tcp/http] succeeded!
      
      Connection to 192.168.1.5 22 port [tcp/ssh] succeeded!
      Connection to 192.168.1.5 80 port [tcp/http] succeeded!
      
      Connection to 192.168.1.6 22 port [tcp/ssh] succeeded!
      Connection to 192.168.1.6 80 port [tcp/http] succeeded!
      
      Connection to 192.168.1.7 22 port [tcp/ssh] succeeded!
      Connection to 192.168.1.7 80 port [tcp/http] succeeded!
      

      公眾號:良許Linux

        本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多