图片。Julien Tromeur/Adobe Stock
网络是许多技术背后的支柱,虽然独立的设备由于其本地处理能力而不是没有重要的价值,但商业运作背后的面包和黄油涉及通信。也就是说,让系统和设备在网络上相互通信,以访问或共享数据,维护安全和监控操作。
当使用TCP/IP(网络的通用语言)时,检查端口以确保它们被配置、监听和接受流量的过程是系统和网络管理员的标准操作。端口与在目标系统上运行的进程相关,如网络服务器、电子邮件服务器、活动目录域控制器和其他集中式资源。收集关于它们的信息对于正确的通信功能是至关重要的。
查看。Linux 30岁了:庆祝开源操作系统(免费PDF)(TechRepublic)
这里有10种方法,你可以用Linux的端口来排查问题和维护操作。
如何查看与某一服务相关的协议和端口
这个命令可以向你显示一个参考指南,它将告诉你任何服务所使用的协议和端口(理论上),以防你寻找更多的信息。它不会告诉你什么是主动监听,而是用来帮助缩小任何特定功能可能或应该使用的范围,如FTP或SSH。
运行。
cat /etc/services | less
输出将显示一个广泛的列表,其中包括几十个服务和与之相关的端口,以帮助作为你的一个参考点。
如何查看从本地系统或到本地系统有哪些端口在活动连接
运行ss 命令,你将看到一个特定系统连接的端口列表,无论是本地还是远程。细节将取决于所涉及的系统和功能。
如何使用nmap来扫描远程系统的开放端口
nmap工具,也被称为ncat,是一把方便的瑞士军刀,适用于Linux和Windows,可以用来查看远程系统上有哪些端口是开放的。请记住,端口扫描可能会引起安全小组的注意,所以只为授权的商业目的进行扫描。
比方说,你想看看微软的远程系统网站上有哪些端口是开放的。
在Linux中,运行。
nmap microsoft.com
结果将显示该主机上的开放端口,类似于下面的情况。
Starting Nmap 7.92 ( https://nmap.org ) at 2022-05-05 15:32 Eastern Daylight Time
Nmap scan report for microsoft.com (20.81.111.85)
Host is up (0.018s latency).
Other addresses for microsoft.com (not scanned): 20.84.181.62 20.103.85.33 20.53.203.50 20.112.52.29
Not shown: 998 filtered tcp ports (no-response)
PORT STATE SERVICE
80/tcp open http
443/tcp open https
Nmap done: 1 IP address (1 host up) scanned in 47.51 seconds
要检查一个特定的端口,如443,运行nmap -p 443 microsoft.com 。
你可以用nmap -p 80,443 microsoft.com 检查多个端口,如80和443。
如何检查本地系统以查看哪个应用程序与某个端口有关
假设你想看看哪个本地应用程序正在监听8443端口。
运行。
netstat -tulpn | grep 8443
这将返回进程ID(PID),例如8971(可能有多个PID),以及应用程序的名称(在这个例子中是Java)。
如何杀死一个与特定端口相关的应用程序或服务
对于你不认识的、怀疑可能是恶意的应用程序或服务,这可能很方便。按照上面的命令,获得PID,然后运行。
kill -9 (PID)
根据需要对每个PID进行重复,以杀死该进程。
如何用telnet检查远程系统,看一个端口是否在监听并能被连接到
假设你想看看一个叫host.company.com的远程系统是否在监听443端口并且可以被连接。
运行。
telnet host.company com 443
如果你看到一个连接的响应,说明该主机正在监听该端口,并且可以被连接。
如果你得到一个连接拒绝的错误,或者连接超时,则说明该主机没有在监听,访问可能被阻止,或者你无法进入该主机(检查防火墙访问)。
如何在没有telnet的情况下检查远程系统,看一个端口是否在监听并能被连接到
并非每个系统都安装了telnet,虽然你通常可以使用yum install telnet从yum软件库中安装它,但有时软件库不包含该软件包,或者系统被锁定,无法安装任何软件。你也可能因为太匆忙而无法进行yum安装。比方说,你想看看IP为10.37.39.141的主机是否在监听636端口。
echo > /dev/tcp/10.37.39.141/636
讽刺的是,如果你没有得到回应,这实际上是一件好事,意味着访问成功了。
如果你得到一个连接拒绝的错误,或者连接超时,说明该主机没有在监听,访问可能被阻止,或者你不能进入该主机(检查防火墙访问)。
如何用curl检查远程系统,看一个TCP端口是否在监听?
这与上一步的结果相同,但这是一个方便的方法,可以让你了解curl应用程序的方向。
假设你想看看IP地址为10.37.34.21的主机是否在监听16667端口。
运行。
curl -v telnet://10.37.34.21:16667
如果你看到一个连接的响应,说明该主机正在监听该端口,并且可以被连接。
如果你得到一个连接拒绝的错误或连接超时,则说明该主机没有在监听,从该主机的访问可能被阻止,或者你无法进入该主机(检查防火墙访问)。
请注意,这只适用于TCP端口。
如何检查哪个SSL证书正在监听某个端口
这是我的最爱之一,在更换SSL证书期间,为了确保事情做得正确,它是我的救星。
假设你有一个名为splunk.company.com的服务器,它的SSL证书连接到8000端口,你刚刚更换了它,想确认它是否存在。
运行。
openssl s_client -connect splunk.company.litle.com:8000 2>/dev/null | openssl x509 -noout
这将返回SSL证书的全部细节,如CN和发行者。
如何检查监听端口的SSL证书的到期日
为了快速确定有关服务器是否有正确的证书连接到该端口,请运行。
openssl s_client -connect splunk.company.litle.com:8000 2>/dev/null | openssl x509 -noout -dates
这将返回类似于以下的输出。
notBefore=May 31 21:46:06 2021 GMT
notAfter=May 31 21:56:06 2022 GMT
有了上述信息,你就可以放心地知道正确的证书已经到位。