中文字幕视频在线看,亚洲精品无码久久久久av老牛,亚洲精品无码av片,亚洲av影院一区二区三区,亚洲国产精品成人久久久

linux測試端口通不通命令(Linux怎么測試端口是否可達(dá))

在實(shí)際運(yùn)維中,客戶會(huì)經(jīng)常要求協(xié)助測試某一地址和端口是否是聯(lián)通狀態(tài),但有時(shí)客戶反饋實(shí)際使用中有時(shí)是能訪問通,有時(shí)訪問不對(duì),于是,按客戶的要求,測試下來,發(fā)現(xiàn):

telnet結(jié)果是通的,但客戶反饋服務(wù)訪問此地址時(shí),很大概率還會(huì)出現(xiàn)超時(shí)的情況。基礎(chǔ)部門建議循環(huán)telnet看下,是不是不穩(wěn)定。

linux測試端口通不通命令(Linux怎么測試端口是否可達(dá))

當(dāng)時(shí)是手動(dòng)多次重復(fù)執(zhí)行telnet命令,發(fā)現(xiàn)確實(shí)有部分telnet不通的情況。

telnet 測試方法

telnet  192.168.1.9 443

批量telnet腳本

以下為通過腳本形式,實(shí)現(xiàn)批量telnet的方法:

192.168.1.9節(jié)點(diǎn)的tmp目錄下新建過cheng文件夾。

循環(huán)telnet,shell腳本如下:

# ====================腳本開始============
PORT=XXXX
count=0
for i in $(cat ip_list.txt)
do
((count++))
echo "count=$count"
# 關(guān)鍵代碼,1s自動(dòng)結(jié)束telnet
(sleep 1;) | telnet $i $PORT >>telnet_result.txt
done
# 根據(jù)結(jié)果判斷出正??梢詐ing通的ip
cat telnet_result.txt | grep -B 1 ] | grep [0-9] | awk '' | cut -d '.' -f 1,2,3,4 >telnet_alive.txt
# 差集,得到ping不同的ip
cat ip_list.txt telnet_alive.txt | sort | uniq -u >telnet_die.txt
# ====================腳本結(jié)束==================

執(zhí)行步驟:

1、在Linux環(huán)境中運(yùn)行,首先建文件夾如cheng(mkdir cheng),然后vim創(chuàng)建telnet.sh(vi telnet.sh)文件將上述代碼復(fù)制進(jìn)去,修改XXXX為實(shí)際端口號(hào)例如linux的遠(yuǎn)程端口22,保存退出。

2、在cheng文件夾中創(chuàng)建ip_list.txt(vim ip_list.txt)的文件,并輸入要檢查的服務(wù)器IP地址,每行一個(gè)地址。

linux測試端口通不通命令(Linux怎么測試端口是否可達(dá))

3、執(zhí)行telnet.sh(sh telnet.sh 或 bash telnet.sh)文件,等待結(jié)果。

4、cheng文件夾目錄文件介紹

shell文件夾中會(huì)新出現(xiàn)3個(gè)新的文件,如下:

telnet_alive.txt#端口通的地址集合

telnet_die.txt#端口不通的地址集合

telnet_result.txt#所有地址檢查結(jié)果

5、查看腳本執(zhí)行結(jié)果,一般我們查看telnet_alive.txt文件即可。

腳本執(zhí)行時(shí),可能會(huì)報(bào)錯(cuò):syntax error near unexpected token `

linux測試端口通不通命令(Linux怎么測試端口是否可達(dá))

報(bào)銷是因?yàn)槲以趙indows7里寫的shell腳本,傳到CentOS系統(tǒng)里運(yùn)行就可以會(huì)提示syntax error near unexpected token `錯(cuò)誤,是因?yàn)閮蓚€(gè)系統(tǒng)的換行符不一樣導(dǎo)致的。

需要使用notepad++轉(zhuǎn)換下格式,轉(zhuǎn)換方法

1、把腳本使用notepad++打開,點(diǎn)擊“視圖”->“顯示符號(hào)”->顯示所有字符,將所有字符顯示出來,調(diào)整完成就會(huì)發(fā)現(xiàn)文檔中出現(xiàn)CR LF,表示換行回車符

linux測試端口通不通命令(Linux怎么測試端口是否可達(dá))

2、接下來,點(diǎn)擊“編輯”->“檔案格式轉(zhuǎn)換”->“轉(zhuǎn)換為UNIX格式”,目的是將windows的格式轉(zhuǎn)為linux或unix格式

linux測試端口通不通命令(Linux怎么測試端口是否可達(dá))

3、轉(zhuǎn)換完成,換行回車符自動(dòng)變成【LF】,這里再上傳到服務(wù)上就可以了。

以上方式是固定端口。要telnet多個(gè)不同端口的話腳本需要修改一下,去掉上面腳本的Port部分,并改用while read line循環(huán):

Shell腳本for和while的區(qū)別,for是按行讀取,但如果行內(nèi)文字有空格或tab等,則分開讀取,即一次讀取一個(gè)字符串。

如m.z1146.cn 80,就會(huì)變成兩行了,m.z1146.cn一行, 80一行。telnet就會(huì)執(zhí)行不下去。

While是整行讀取,不管行內(nèi)有多少段文字。

另外ip_list.txt需要改為ip + 端口

linux測試端口通不通命令(Linux怎么測試端口是否可達(dá))

腳本如下:

count=0
cat ip_list.txt|while read line
do
((count++))
echo "count=$count"
echo "$line"
# 關(guān)鍵代碼,1s自動(dòng)結(jié)束telnet
(sleep 1;) | telnet $line >>telnet_result.txt
done
# 根據(jù)結(jié)果判斷出正常可以ping通的ip
cat telnet_result.txt | grep -B 1 ] | grep [0-9] | awk '' | cut -d '.' -f 1,2,3,4 >telnet_alive.txt
# 差集,得到ping不同的ip
cat ip_list.txt telnet_alive.txt | sort | uniq -u >telnet_die.txt

但這個(gè)多端口的方式,生成的telnet_alive.txt始終為空,telnet_die.txt也有不對(duì)的情況出現(xiàn)(比如m.z1146.cn 80實(shí)際是通的,卻出現(xiàn)在telnet_die.txt里)??赡苁莍p_list.txt加了端口,相應(yīng)的判斷也需要改下。也可能是sleep 1時(shí)間不夠長,前一個(gè)地址超時(shí)等待的時(shí)候,下一個(gè)地址又開始telnet,造成統(tǒng)計(jì)結(jié)果不準(zhǔn)確。

其實(shí)從sh telnet.sh的執(zhí)行結(jié)果上就能看出通不通了,下圖報(bào)timed out的就是不通的。

linux測試端口通不通命令(Linux怎么測試端口是否可達(dá))

使用nc命令判斷端口情況

在Linux中有如下一條語句,也可以檢驗(yàn)端口是否通

nc -zv origin-creation.com 443

沒有nc的服務(wù)器,需要 yum install -y nc 安裝一下。

這個(gè)命令不像telnet,需要手動(dòng)退出才能執(zhí)行下一個(gè)命令。可以使用此方法,手動(dòng)多次重復(fù)執(zhí)行,判斷是否有不通的情況。

linux測試端口通不通命令(Linux怎么測試端口是否可達(dá))

在Docker容器里也可以安裝nc命令,安裝命令:

apk add nc?

安裝之后可以在docker容器里,測試端口情況。

使用CURL命令判斷端口情況

除telnet、nc之后,還可以通過curl來判斷端口是否通,語句如下:

curl origin-creation.com:443   #注意地址和端口間的冒號(hào)“:”,一定不要落下

使用curl命令,相當(dāng)于使用瀏覽器訪問或使用postman等接口調(diào)用工具返回,返回只要不是timeout,基本均不通的狀態(tài),返回內(nèi)容取決于端口返回內(nèi)容

linux測試端口通不通命令(Linux怎么測試端口是否可達(dá))

批量curl,循環(huán)curl腳本

在服務(wù)器任意位置創(chuàng)建文件,建議使用root用戶,避免權(quán)限問題

vim forcurl
#!/bin/bash
  for i in {1..1000}
 do
    echo '第一個(gè)IP: 192.168.1.9  8000端口,第' $i '次訪問.........,'
    time curl '192.168.1.9:8000'
    echo '第二個(gè)IP: 10.11.12.100  8000端口,第' $i '次訪問.........'
    time curl '10.11.12.100:32767 '
    echo '如果有多個(gè)ip,可以繼續(xù)按照上邊,繼續(xù)寫下去,腳本里不限制。。。。。'
    echo '======用于區(qū)分次數(shù)============='
 done

以上腳本是循環(huán)1000次,測試兩個(gè)ip和端口的暢通性,每次均記錄次數(shù)和訪問結(jié)果,可自動(dòng)調(diào)整次數(shù),調(diào)整方法,將 for i in {1..1000}中的1000,換成對(duì)應(yīng)次數(shù)即可。

腳本編寫完成后,按esc鍵,再按“冒號(hào)wq”,保存退出。

使用以下命令執(zhí)行并查看結(jié)果:

sh forcurl

以上即為Linux系統(tǒng)常見的檢測端口暢通情況~

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至2705686032@qq.com 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。原文轉(zhuǎn)載: 原文出處:

(0)
尊云-小張的頭像尊云-小張
上一篇 2024 年 5 月 8 日 09:17
下一篇 2024 年 5 月 8 日 09:21

相關(guān)推薦

發(fā)表回復(fù)

登錄后才能評(píng)論

聯(lián)系我們

400-900-3935

在線咨詢: QQ交談

郵件:cong@zun.com

工作時(shí)間:365天無休服務(wù) 24小時(shí)在線

添加微信