6 Linux实用工具用于测试网络连接性

想知道如何检查两个网络节点之间的连接性吗?

系统管理员的常见任务之一是检查连接性以排除故障。可能是应用程序无法连接到后端服务,无法从外部URL获取数据,验证流是否打开等等。

无论是什么情况,以下的工具/命令都会对您有所帮助。它们在CentOS上进行了测试,并且我认为在其他Linux发行版上也能正常工作。

让我们来探索一下吧…

telnet

telnet是一种广泛使用的测试服务器之间、服务器与其他网络设备之间连接的命令。该命令的语法很简单。

telnet $destinationIP $PORT

假设您想测试是否可以连接到10.0.0.1 IP地址上的8080端口,那么命令应该是这样的。

telnet 10.0.0.1 8080

如果连接没有问题,那么您应该会看到连接成功的消息。

Trying 10.0.0.1...
Connected to 10.0.0.1.
Escape character is '^]'.

注意:如果在执行telnet时出现命令未找到的错误,那么您需要install telnet as I explained here

在大多数情况下,telnet应该能帮助您。然而,如果您需要其他选项,这里有一些telnet的替代方案。

ncat或nc

Ncat(又名nc)是一个功能强大的网络工具,具有许多功能,比如绑定和接受连接,远程执行命令,读写数据等等。它同时支持IPv4和IPv6。

要进行一个简单的测试以检查端口是否打开,您可以执行以下命令。

nc -vz $HOSTNAME $PORT

让我们以在yaoweibin.com上测试443端口为例。

[root@yaoweibin-lab ~]# nc -vz yaoweibin.com 443
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 104.25.133.107:443.
Ncat: 0 bytes sent, 0 bytes received in 0.02 seconds.
[root@yaoweibin-lab ~]#

如上所述,您还可以使用nc来绑定连接到某个端口。当您没有实际运行的服务但希望确保连接性存在时,这很方便。

要开始监听某个端口:

nc -l $PORTNUMBER

它将绑定到给定的端口号。

如果未安装ncat,则可以在CentOS/RHEL服务器上使用yum install nc进行安装。

wget

wget是一个有用的命令,用于下载/测试HTTP、HTTPS和FTP。如果您是一名网络工程师或经常处理与Web相关的问题,那么wget是您的好朋友。使用wget进行测试很简单。

wget $URL

下面是一个测试tools.yaoweibin.com的例子

[root@yaoweibin-lab ~]# wget tools.yaoweibin.com
--2019-05-09 20:40:01--  http://tools.yaoweibin.com/
Resolving tools.yaoweibin.com (tools.yaoweibin.com)... 104.25.134.107, 104.25.133.107, 2606:4700:20::6819:866b, ...
Connecting to tools.yaoweibin.com (tools.yaoweibin.com)|104.25.134.107|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://tools.yaoweibin.com/ [following]
--2019-05-09 20:40:01--  https://tools.yaoweibin.com/
Connecting to tools.yaoweibin.com (tools.yaoweibin.com)|104.25.134.107|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: 'index.html.2'

    [                                                                                                                                   ] 15,139      --.-K/s   in 0.001s  

2019-05-09 20:40:02 (12.8 MB/s) - 'index.html.2' saved [15139]

[root@yaoweibin-lab ~]#

如果显示已连接,则表示没有连接问题。

查看此链接以了解一些常用的链接:

curl

curl是一种多功能工具。

你知道你可以使用curl telnet到一个端口吗?

好了,现在你知道了。

curl -v telnet://$IP:$PORT

以下是一个可行的示例。

[root@yaoweibin-lab ~]# curl -v telnet://chandan.io:443
* About to connect() to chandan.io port 443 (#0)
*   Trying 104.31.68.106...
* Connected to chandan.io (104.31.68.106) port 443 (#0)

当没有监听端口或有防火墙问题时,你将看到trying…

[root@yaoweibin-lab ~]# curl -v telnet://chandan.io:4434
* About to connect() to chandan.io port 4434 (#0)
*   Trying 104.31.68.106...

你也可以使用curl下载数据。它支持多种协议 – HTTP,HTTPS,FTP,IMAP,LDAP,POP3,SCP,SFTP,GOPHER等。

nmap

一个拥有数百个功能的流行工具。通常被视为安全工具,它允许您测试单个IP/端口或范围。

测试单个端口

nmap -p $PORT $IP

测试siterelic.com上端口443的示例

[root@yaoweibin-lab ~]# nmap -p 443 siterelic.com
Starting Nmap 7.70 ( https://nmap.org ) at 2019-05-10 06:55 UTC
Nmap scan report for siterelic.com (104.27.174.50)
Host is up (0.0079s latency).
Other addresses for siterelic.com (not scanned): 104.27.175.50 2606:4700:30::681b:ae32 2606:4700:30::681b:af32

PORT    STATE SERVICE
443/tcp open  https

Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds
[root@yaoweibin-lab ~]#

看看状态列。如果看到开放,表示连接正常。如果状态是过滤,则表示连接不存在。

Ping

最常用的命令之一是检查远程主机是否响应ICMP ECHO_REQUEST。请记住,当远程网络的ICMP被阻止时,这可能不会给您准确的结果。假设不是这种情况,您可以按照下面的示例ping IPv4或IPv4网络终点。

ping $ipaddress
ping $url

例如,yaoweibin.com的成功结果

chandan@192 ~ % ping yaoweibin.com
PING yaoweibin.com (104.27.119.115): 56 data bytes
64 bytes from 104.27.119.115: icmp_seq=0 ttl=53 time=7.944 ms
64 bytes from 104.27.119.115: icmp_seq=1 ttl=53 time=8.870 ms

例如,内部IP的失败结果。

chandan@192 ~ % ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1

如果终端支持IPv6,你可以使用以下ping6命令。

chandan@192 ~ % ping6 yaoweibin.com
PING6(56=40+8+8 bytes) 2a01:4b00:88e4:8700:d8ca:bf50:159c:2a1d --> 2606:4700:20::681b:7673
16 bytes from 2606:4700:20::681b:7673, icmp_seq=0 hlim=250 time=8.650 ms
16 bytes from 2606:4700:20::681b:7673, icmp_seq=1 hlim=250 time=8.738 ms

如果你需要通过互联网进行远程ping,你可以使用链接7。

结论

telnet正在逐渐退出最新的Linux版本。感谢上面的telnet替代方法。

如果你是Linux新手并且想要学习,请查看此链接8。

类似文章