本文概述
想知道如何检查两个网络端点之间的连接?
sysadmin的常见任务之一是检查连接以解决网络问题。可能是因为应用程序无法连接到后端服务, 无法从外部URL获取数据, 验证流是否已打开等。
无论是什么, 以下实用程序/命令都将为你提供帮助。它们已经在CentOS 7.x上进行了测试, 我看不出有任何理由不能在其他Linux发行版上运行。
让我们来探索…
远程登录
一种广泛使用的命令, 用于测试服务器之间的基本连接, 即服务器与另一台网络设备的IP。该命令的语法很简单。
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时未找到命令, 则需要安装telnet, 如我在此处所述。
在大多数情况下, telnet应该会提供帮助。但是, 如果你需要其他选择, 则可以使用以下telnet替代方法。
ncat或nc
Ncat(又名nc)是一个功能强大的网络实用程序, 具有许多功能, 例如绑定和接受连接, 远程执行命令, 写入和读取数据等。它同时适用于IPv4和IPv6。
要进行简单测试以检查端口是否打开, 你将执行以下操作。
nc -vz $HOSTNAME $PORT
让我们以在geekflare.com上测试443端口为例。
[[email protected] ~]# nc -vz geekflare.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.
[[email protected] ~]#
如前所述, 你还可以使用nc绑定连接以侦听特定端口。当你没有实际的服务在运行但想要确保存在连接时, 这会很方便。
要开始监听端口:
nc -l $PORTNUMBER
它将绑定给定编号的端口。
如果未安装ncat, 则可以在CentOS / RHEL服务器上使用yum install nc来完成。
get
wget是用于下载/测试HTTP, HTTPS和FTP的有用命令。如果你是一名Web工程师, 或者经常处理与Web相关的问题, 那么wget是你的朋友。使用wget进行测试非常简单。
wget $URL
这是测试工具的示例。geekflare.com
[[email protected] ~]# wget tools.geekflare.com
--2019-05-09 20:40:01-- http://tools.geekflare.com/
Resolving tools.geekflare.com (tools.geekflare.com)... 104.25.134.107, 104.25.133.107, 2606:4700:20::6819:866b, ...
Connecting to tools.geekflare.com (tools.geekflare.com)|104.25.134.107|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://tools.geekflare.com/ [following]
--2019-05-09 20:40:01-- https://tools.geekflare.com/
Connecting to tools.geekflare.com (tools.geekflare.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]
[[email protected] ~]#
如果显示已连接, 则说明没有连接问题。
curl
卷发是一种多功能工具。
你知道可以使用curl远程登录到端口吗?
好吧, 现在你知道了。
curl -v telnet://$IP:$PORT
以下是一个工作示例。
[[email protected] ~]# 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)
而且, 当没有侦听端口或防火墙问题时, 你将看到尝试…
[[email protected] ~]# 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
具有数百种功能的流行工具。通常, 这被视为安全工具。 nmap可让你测试单个IP /端口或该范围内的IP。
测试单个端口
nmap -p $PORT $IP
在siterelic.com上测试端口443的示例
[[email protected] ~]# 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
[[email protected] ~]#
查看状态列。如果看到打开, 则表示连接正常。而且, 如果状态被过滤, 则表示不存在连通性。
总结
telnet正在逐步淘汰最新的Linux版本。由于上述telnet替代方案。
如果你是Linux的新手并希望学习, 请查看此Udemy课程。
评论前必须登录!
注册