共有兩個指令碼,
port1.sh和port2.sh
port1.sh指令碼
#!/bin/bashport2.sh指令碼server=$1port=$2
if [ $# -ne 2]
then
echo -e "\033[35musage:`basename $0` ipaddress port\033[0m"exit 1fi
/bin/ping -c 1 -w 1 $server > /dev/null
if [ $? -eq 0]
then
echo -e "\033[35m$server is ok!\033[0m"
/usr/bin/nc -z -v -w3 $server $port > /dev/null 2>$1
if [ $? -eq 0]
then
echo -e "\033[35mport $port is open\033[0m"
else
echo -e "\033[35mport $port is closed\033[0m"fi
else
echo -e "\033[35m$server is donw!\033[0m"fi
#!/bin/bash埠通就返回200,埠不通就返回400server=$1port=$2
if [ $# -ne 2]
then
echo -e "\033[35musage:`basename $0` ipaddress port\033[0m"exit 1fi
/usr/bin/nc -z -v -w3 $server $port > /dev/null 2>$1
if [ $? -eq 0]
then
echo -e "\033[35mport $port is open\033[0m"
else
echo -e "\033[35mport $port is closed\033[0m"fi
ps: \033[35m \033[0m 表示的是字型顏色,所以可以刪除
兩個指令碼的功能不同,其中port1.sh指令碼功能是帶ping檢查的埠檢測,port2.sh指令碼功能不帶ping檢查的埠檢測。
a. port1.sh帶ping檢查的指令碼針對的是遠端伺服器可以使用ping命令ping通,指令碼先使用ping命令檢則網路連通性再檢測埠是否開放。如果網路不通會提示遠端伺服器是down狀態退出指令碼,如果網路可以ping通但埠沒有開放,會提示網路可以連通但遠端埠是closed狀態。
b. port2.sh不帶ping檢查的指令碼針對的是遠端伺服器禁止ping命令,無法ping通,但是伺服器端口對外開放,所以指令碼中不使用ping命令測試網路連通性而直接檢測埠是否開放,如果埠開放會提示埠open狀態,不開放會提示埠closed狀態。
指令碼可放在任意目錄下執行,前提條件:
1. 伺服器必須先安裝nc-1.84-24.el6.x86_64軟體包,才能執行埠檢測,可使用rpm -qa | grep nc檢視伺服器有沒有安裝
2.如果伺服器沒有安裝,請安裝該軟體包,使用命令yum install nc即可
#!/bin/bashserver=$1port=$2
if [ $# -ne 2]
then
echo "`basename $0` ipaddress port"exit 1fi
/usr/bin/nc -z -v -w3 $server $port > /dev/null 2>$1
if [ $? -eq 0]
then
echo "200"
else
echo "400"fi
伺服器端口
本文介紹伺服器端口。伺服器端口分為兩類,一類是硬體埠,另一類是軟體埠,其中硬體埠為鍵盤介面 滑鼠介面 顯示器介面 網線介面等,主機上的所有對外提供功能的引腳都屬於硬體埠,軟體埠為網路套接字 socket 介面,硬介面和軟介面都是用於通訊的介面,都有各自的通訊協議,硬介面通訊協議由序列通訊 並行通訊 ...
伺服器端口
大的方面可以分為2類,一類是真實的物理上的介面,比如鍵盤滑鼠等輸入輸出介面。一類是 伺服器端口。伺服器端口是傳輸層的內容,是面向連線的,它們對應著網路上常見的一些服務。tcp ip協議整合到作業系統核心,此協議中有引入一種稱之為 套接字 的應用程式介面。有這種技術一台計算機就可以通過軟體的方式與任何...
如何測試伺服器端口是否開啟?
一台伺服器為什麼可以同時是web伺服器,也可以是ftp伺服器,還可以是郵件伺服器呢,其中乙個很重要的原因是各種服務採用不同的埠分別提供不同的服務,比如 通常tcp ip協議規定web採用80號埠,ftp採用21號埠等,而郵件伺服器是採用25號埠。這樣,通過不同埠,計算機就可以與外界進行互不干擾的通訊...