zhcn 技术 手机 非公開: 6 个用于测试网络连接的 Linux 实用程序

6 个用于测试网络连接的 Linux 实用程序

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

系统管理员的常见任务之一是检查连接以解决网络问题。这可能是由于您的应用程序无法连接到后端服务、无法从外部 URL 获取数据或无法检查流是否打开等原因造成的。

无论是什么,以下实用程序/命令可能会有所帮助。这些已经在 CentOS 上进行了测试,并且没有理由不能在其他 Linux 发行版上运行。

让我们探索一下……

6 个用于测试网络连接的 Linux 实用程序
6 个用于测试网络连接的 Linux 实用程序

远程登录

广泛使用的命令之一,用于测试服务器之间以及服务器与另一个网络设备的 IP 之间的关键连接。命令语法很简单。

 telnet $destinationIP $PORT

假设您要测试是否可以连接到 IP 地址 10.0.0.1 的端口 8080。在这种情况下,命令将是:

 telnet 10.0.0.1 8080

如果连接没有问题,您将看到一条已连接消息。

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

注意:如果在运行 Telnet 时找不到该命令,则需要按照此处所述安装 Telnet。

Telnet 在大多数情况下都很有用。但是,如果您需要其他选项,这里有一些 Telnet 的替代方案。

6 个用于测试网络连接的 Linux 实用程序
6 个用于测试网络连接的 Linux 实用程序

ncat 或 nc

Ncat(也称为 nc)是一个功能强大的网络实用程序,具有许多功能,例如绑定和接受连接、远程运行命令以及写入和读取数据。适用于 IPv4 和 IPv6。

要快速测试端口是否打开,请运行以下命令:

 nc -vz $HOSTNAME $PORT

我们以测试.com上的443端口为例。

 [root@-lab ~]# nc -vz .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@-lab ~]#

如前所述,您还可以使用nc绑定连接并侦听特定端口。如果您没有运行真正的服务但想要确保连接存在,这非常有用。

要开始侦听端口:

 nc -l $PORTNUMBER

将端口绑定到指定号码。

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

6 个用于测试网络连接的 Linux 实用程序
6 个用于测试网络连接的 Linux 实用程序

威格特

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

 wget $URL

这是来自tools..com 的示例测试

[root@-lab ~]# wget tools..com
--2019-05-09 20:40:01--  http://tools..com/
Resolving tools..com (tools..com)... 104.25.134.107, 104.25.133.107, 2606:4700:20::6819:866b, ...
Connecting to tools..com (tools..com)|104.25.134.107|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://tools..com/ [following]
--2019-05-09 20:40:01--  https://tools..com/
Connecting to tools..com (tools..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@-lab ~]#

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

查看此内容以查看常用 wget 命令的一些示例。

6 个用于测试网络连接的 Linux 实用程序
6 个用于测试网络连接的 Linux 实用程序

卷曲

Curl 是一个多用途工具。

您知道可以使用curl Telnet 到端口吗?

好吧,你现在明白了。

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

下面是一个真实的例子。

 [root@-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)

如果没有监听端口或防火墙问题,它会说正在尝试…

 [root@-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等多种协议。

6 个用于测试网络连接的 Linux 实用程序
6 个用于测试网络连接的 Linux 实用程序

地图

具有数百种功能的流行工具。这通常被认为是一种安全工具。 nmap允许您在单个 IP/端口或某个范围内进行测试。

测试单个端口

nmap -p $PORT $IP

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

[root@-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@-lab ~]#

请查看状态栏。如果显示“open”,则表示连接良好。另外,如果状态被过滤,则意味着连接不存在。

别针

一项广泛使用的命令是检查远程主机是否正在响应 ICMP ECHO_REQUEST。请注意,如果 ICMP 被远程网络的防火墙阻止,结果可能不准确。如果没有,您可以按如下方式 ping IPv4 或 IPv4 网络端点:

 ping $ipaddress
ping $url

例如,.com 成功结果

chandan@192 ~ % ping .com
PING .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 .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

如果需要通过Internet进行远程Ping,可以使用在线Ping工具。

结论

Telnet 在最新的 Linux 版本中已被淘汰。感谢上面提到的 Telnet 替代方案。

如果您是 Linux 新手并且想要学习,请查看此Udemy 课程

《6个测试网络连接的Linux实用工具》浅显易懂讲解!您必须观看的最佳 2 个视频

【Linux技術動画】ネットワーク設定&ターミナル接続
https://www.youtube.com/watch?v=x2o6E5oW-wk&pp=ygVPIDYg44ON44OD44OI44Ov44O844Kv5o 6l57aa44KS44OG44K544OI44GZ44KLIExpbnV4IOODpuODvOODhuOCo-ODquODhuOCoyZobD1KQQ%3D%3D
【ネットワーク基礎講座8(Linux基礎講座8)】ネットワーク監視コマンド1 / ping / route / ネットワーク設定ファイル【6:52】
https://www.youtube.com/watch?v=tKv1sQfMk2A&pp=ygVPIDYg44ON44OD44OI44Ov44O844Kv5o 6l57aa44KS44OG44K544OI44GZ44KLIExpbnV4IOODpuODvOODhuOCo-ODquODhuOCoyZobD1KQQ%3D%3D

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

系统管理员的常见任务之一是检查连接以解决网络问题。这可能是由于您的应用程序无法连接到后端服务、无法从外部 URL 获取数据或无法检查流是否打开等原因造成的。

无论是什么,以下实用程序/命令可能会有所帮助。这些已经在 CentOS 上进行了测试,并且没有理由不能在其他 Linux 发行版上运行。

让我们探索一下……

6 个用于测试网络连接的 Linux 实用程序
6 个用于测试网络连接的 Linux 实用程序

远程登录

广泛使用的命令之一,用于测试服务器之间以及服务器与另一个网络设备的 IP 之间的关键连接。命令语法很简单。

 telnet $destinationIP $PORT

假设您要测试是否可以连接到 IP 地址 10.0.0.1 的端口 8080。在这种情况下,命令将是:

 telnet 10.0.0.1 8080

如果连接没有问题,您将看到一条已连接消息。

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

注意:如果在运行 Telnet 时找不到该命令,则需要按照此处所述安装 Telnet。

Telnet 在大多数情况下都很有用。但是,如果您需要其他选项,这里有一些 Telnet 的替代方案。

6 个用于测试网络连接的 Linux 实用程序
6 个用于测试网络连接的 Linux 实用程序

ncat 或 nc

Ncat(也称为 nc)是一个功能强大的网络实用程序,具有许多功能,例如绑定和接受连接、远程运行命令以及写入和读取数据。适用于 IPv4 和 IPv6。

要快速测试端口是否打开,请运行以下命令:

 nc -vz $HOSTNAME $PORT

我们以测试.com上的443端口为例。

 [root@-lab ~]# nc -vz .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@-lab ~]#

如前所述,您还可以使用nc绑定连接并侦听特定端口。如果您没有运行真正的服务但想要确保连接存在,这非常有用。

要开始侦听端口:

 nc -l $PORTNUMBER

将端口绑定到指定号码。

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

6 个用于测试网络连接的 Linux 实用程序
6 个用于测试网络连接的 Linux 实用程序

威格特

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

 wget $URL

这是来自tools..com 的示例测试

[root@-lab ~]# wget tools..com
--2019-05-09 20:40:01--  http://tools..com/
Resolving tools..com (tools..com)... 104.25.134.107, 104.25.133.107, 2606:4700:20::6819:866b, ...
Connecting to tools..com (tools..com)|104.25.134.107|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://tools..com/ [following]
--2019-05-09 20:40:01--  https://tools..com/
Connecting to tools..com (tools..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@-lab ~]#

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

查看此内容以查看常用 wget 命令的一些示例。

6 个用于测试网络连接的 Linux 实用程序
6 个用于测试网络连接的 Linux 实用程序

卷曲

Curl 是一个多用途工具。

您知道可以使用curl Telnet 到端口吗?

好吧,你现在明白了。

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

下面是一个真实的例子。

 [root@-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)

如果没有监听端口或防火墙问题,它会说正在尝试…

 [root@-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等多种协议。

6 个用于测试网络连接的 Linux 实用程序
6 个用于测试网络连接的 Linux 实用程序

地图

具有数百种功能的流行工具。这通常被认为是一种安全工具。 nmap允许您在单个 IP/端口或某个范围内进行测试。

测试单个端口

nmap -p $PORT $IP

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

[root@-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@-lab ~]#

请查看状态栏。如果显示“open”,则表示连接良好。另外,如果状态被过滤,则意味着连接不存在。

别针

一项广泛使用的命令是检查远程主机是否正在响应 ICMP ECHO_REQUEST。请注意,如果 ICMP 被远程网络的防火墙阻止,结果可能不准确。如果没有,您可以按如下方式 ping IPv4 或 IPv4 网络端点:

 ping $ipaddress
ping $url

例如,.com 成功结果

chandan@192 ~ % ping .com
PING .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 .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

如果需要通过Internet进行远程Ping,可以使用在线Ping工具。

结论

Telnet 在最新的 Linux 版本中已被淘汰。感谢上面提到的 Telnet 替代方案。

如果您是 Linux 新手并且想要学习,请查看此Udemy 课程

《6个测试网络连接的Linux实用工具》浅显易懂讲解!您必须观看的最佳 2 个视频

【Linux技術動画】ネットワーク設定&ターミナル接続
https://www.youtube.com/watch?v=x2o6E5oW-wk&pp=ygVPIDYg44ON44OD44OI44Ov44O844Kv5o 6l57aa44KS44OG44K544OI44GZ44KLIExpbnV4IOODpuODvOODhuOCo-ODquODhuOCoyZobD1KQQ%3D%3D
【ネットワーク基礎講座8(Linux基礎講座8)】ネットワーク監視コマンド1 / ping / route / ネットワーク設定ファイル【6:52】
https://www.youtube.com/watch?v=tKv1sQfMk2A&pp=ygVPIDYg44ON44OD44OI44Ov44O844Kv5o 6l57aa44KS44OG44K544OI44GZ44KLIExpbnV4IOODpuODvOODhuOCo-ODquODhuOCoyZobD1KQQ%3D%3D