天天看點

Linux 故障排查-測試網絡端口連通性

作者:Linux碼農

1、telnet 方法

telnet 協定是 TCP/IP 協定族中的一員,是 Internet 遠端登陸服務的标準協定和主要方式。

它為使用者提供了在本地計算機上完成遠端主機工作的能力。是以我們可以使用telnet 來測試遠端機器的連通性。

telnet 軟體包安裝

1、檢測 telnet 包是否安裝

# rpm -qa | grep telnet

2、未安裝,則安裝 telnet 軟體包

# yum install telnet

3、檢測安裝包是否安裝成功

# rpm -qa | grep telnet

telnet-0.17-66.el7.x86_64

以上我們完成了 telnet 用戶端軟體的安裝。

具體用法格式如下:

# telnet serverIP port

例如:

//連接配接一個存在的端口,連接配接成功
# telnet 10.198.25.126 5546
Trying 10.198.25.126...
Connected to 10.198.25.126.
Escape character is '^]'.

//連接配接一個不存在的端口,連接配接被拒絕
# telnet 10.198.25.126 1234
Trying 10.198.25.126...
telnet: connect to address 10.198.25.126: Connection refused

//連接配接一個不存在的網絡,出現逾時
# telnet 10.198.25.13 6
Trying 10.198.25.13...
telnet:connected to 10.198.25.126: Connection timed out


           

2、weg 方法

wget 是一個從網絡上自動下載下傳檔案的自由工具,支援通過 HTTP、HTTPS、FTP 三個最常見的 TCP/IP 協定下載下傳,并可以使用 HTTP 代理。

wget 名稱的由來是 “World Wide Web” 與 “get” 的結合,它也可以用來測試端口的連通性。

具體用法格式如下 :

# wget ip:port

例如:

//連接配接一個存在的端口
# wget 1.1.1.1:6666
--2021-11-25-- http://1.1.1.1:6666/
Connecting to 1.1.1.1:6666... connected.
...

//連接配接一個不存在的端口
# wget 1.1.1.1:6621
--2021-11-25-- http://1.1.1.1:6621/
Connecting to 1.1.1.1:6621... failed: Connection refused.
           

3、curl 方法

curl 是利用 URL 文法在指令行方式下工作的開源檔案傳輸工具。也可以用來測試端口的連通性。

具體用法格式如下 :

# curl ip:port

例如:

//連接配接一個存在的端口,輸出正常資訊
# curl 1.1.1.1:2010
<!DOCTYPE html>
<thml lang="en">
<head>
<title>...</title>
...

//連接配接一個不存在的端口,拒絕連接配接
# curl 1.1.1.1:2019
curl: (7) Failed connect to 1.1.1.1:2019; Connection refused
           

4、ssh 方法

ssh 是目前較可靠,專為遠端登入會話和其他網絡服務提供安全性的協定,在 linux上可以通過 ssh 指令來測試端口的連通性。

具體用法格式如下:

# ssh -v -p port username@ip
或者
# ssh -v -p port ip

例如:

# ssh -v -p 9215 1.1.1.1
OpenSSH_7.4pl, OpenSSL 1.0.2k-fips 26 Jan 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 58: Applying options for *
debug1: Connecting to 1.1.1.1 [1.1.1.1] port 9215.
debug1: Connection established. //出現該行表示連接配接成功
...


//連接配接一個不存在的端口
# ssh -v -p 92 1.1.1.1
ssh: connect to host 1.1.1.1 port 92: Connection refused            

5、tcping 工具方法

tcping 是一個可以替代 ping 指令來檢測網絡狀态的一個工具。因為 ping 指令隻能檢測ICMP封包,當對方禁止了 ping 協定,自然 ping 指令也就無法檢測了,這個時候可以通過 tcping 指令來檢測網絡的連通性。

tcping 有 windows 版和 linux 版本,可以根據自己的需求自行下載下傳使用。

windows 版本下載下傳位址

https://www.elifulkerson.com/projects/tcping.php

使用例子如下:

D:\test> tcping.exe 10.12.113.40 2543
Probing 10.12.113.40:2543/tcp - Port is open -time=4.706ms
Probing 10.12.113.40:2543/tcp - Port is open -time=0.946ms
Probing 10.12.113.40:2543/tcp - Port is open -time=0.806ms
Probing 10.12.113.40:2543/tcp - Port is open -time=1.706ms

Ping statistics for 10.12.113.40:2543
4 probes sent.
4 successful, 0 failed. <0.00% fail>
Approximate trip times in milli-seconds:
Minimum = 0.806ms, Maximum = 4.706ms, Average = 1.885ms           

linux 版下載下傳位址

http://linuxco.de/tcping/tcping-1.3.5.tar.gz

使用例子如下:

# gcc -o tcping tcping.c
# cp tcping /usr/bin

# tcping www.baidu.com 80
www.baidu.com port 80 open.

# tcping 10.25.12.153 2335
10.25.12.153 port 2335 open
           

6、tcpdump 方法

當需要測試封包是否發送到對端,也可以使用 tcpdump 指令進行抓包分析。

通常使用的方式是通過 tcpdump 指令抓取資料包,然後通過 wireshake 工具進行分析。

使用方式如下:

//監視指定網絡接口、某個具體端口号接收的tcp封包的資料包
# tcpdump -i eth0 -n tcp port 2443

//也可以指定ip, 例如擷取所有210.27.48.1 的主機收到的和發出的所有資料包
# tcpdump host 210.27.48.1 

//也可以把抓取的資料包儲存到cap格式的檔案中,通過使用wireshark進行分析
# tcpdump tcp -i eth0 -w /test.cap
           

繼續閱讀