想知道如何检查两个网络端点之间的连接性?
系统管理员的常见任务之一是检查连接以解决网络问题。这可能是由于您的应用程序无法连接到后端服务、无法从外部 URL 获取数据或无法检查流是否打开等原因造成的。
无论是什么,以下实用程序/命令可能会有所帮助。这些已经在 CentOS 上进行了测试,并且没有理由不能在其他 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 的替代方案。

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进行安装。

威格特
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 命令的一些示例。

卷曲
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等多种协议。

地图
具有数百种功能的流行工具。这通常被认为是一种安全工具。 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 课程。




![2021 年如何设置 Raspberry Pi Web 服务器 [指南]](https://i0.wp.com/pcmanabu.com/wp-content/uploads/2019/10/web-server-02-309x198.png?w=1200&resize=1200,0&ssl=1)

