在对网络连接或特定于应用程序的问题进行故障排除时,首先要检查的是系统上实际使用的端口以及在特定端口上侦听的应用程序。
网络端口由其编号、相关的IP地址和通信协议类型(如TCP或UDP)标识。最重要的是,开放端口是应用程序或进程侦听的网络端口,充当通信端点。
可以使用防火墙打开或关闭(过滤)每个侦听端口。一般来说,开放端口是接受来自远程位置的传入数据包的网络端口。
使用netstat检查开放端口
Netstat(网络统计信息)是一个命令行工具,用于监视传入和传出网络连接,查看路由表、接口统计信息等。对于Linux网络管理员和系统管理员来说,此工具是必不可少的,非常有价值,可以监视和解决其网络相关问题,并确定网络流量性能。
要列出正在侦听的所有TCP或UDP端口,包括使用这些端口的服务和套接字状态,请使用以下命令:
$sudo netstat-tulnp
活动的Internet连接(仅限服务器)
Proto Recv-Q Send-Q本地地址外部地址状态PID/程序名称
tcp 0 127.0.0.1:10024 0.0.0.0:*列出24919/amavisd
tcp 0 0.0.0.0:587 0.0.0.0:*LISTEN 967/master
tcp 0 0 0.0.0.0:8080 0.0.0.0:*LISTEN 800/tinyproxy
tcp 0 0.0.0.0:465 0.0.0.0:*LISTEN 967/master
tcp 0 0.0.0.0:21 0.0.0.0:*LISTEN 844/纯ftpd
tcp 0 0.0.0.0:22 0.0.0.0:*列出768/sshd
tcp 0 0.0.0.0:25 0.0.0.0:*LISTEN 967/master
tcp 0 0 0.0.0.0:993 0.0.0.0:*LISTEN 1001/dovecot
tcp6 0 0::3306::*LISTEN 823/mysqld
tcp6 0 0::1:783:::*收听24911/spamd.pid-d
tcp6 0 0:::80::*LISTEN 781/httpd
tcp6 0 0::21::*LISTEN 844/纯ftpd
tcp6 0 0:::22::*列出768/sshd
tcp6 0 0:::25::*LISTEN 967/master
tcp6 0 0::993::*LISTEN 1001/dovecot
tcp6 0 0:::995:::*LISTEN 1001/dovecot
udp 0 0.0.0.0:47967 0.0.0.0:*460/avahi守护进程:r
udp 0 127.0.0.1:123 0.0.0.0:*472/ntpd
udp 0 0.0.0.0:123 0.0.0.0:*472/ntpd
udp6 0 0:::123::*472/ntpd
此命令中使用的选项具有以下含义:
-t
:显示TCP端口。
u
:显示UDP端口。
-l
:仅显示侦听端口。
n
:显示数字地址,而不是解析主机。
:显示侦听器进程的PID和名称。只有当您以root或sudo用户的身份运行命令时,才会显示此信息。
在我们的案例中,重要的列是:
- Proto–套接字使用的协议。
- 本地地址–进程侦听的IP地址和端口号。
- PID/Program name–PID和进程的名称。
此外,如果要筛选结果,请使用
grep
命令。例如,要查找TCP端口22上侦听的进程,您需要键入:
$sudo netstat-tulnp|grep:22
tcp 0 0.0.0.0:22 0.0.0.0:*列出768/sshd
tcp6 0 0:::22::*列出768/sshd
如果输出为空,则端口上没有任何内容在侦听。有关
netstat
命令,请参阅其手册页。
使用lsof检查开放端口
Lsof,意思是‘
LiSt打开的文件
,'用于找出哪个进程打开了哪些文件。在Linux中,一切都是一个文件。您可以将套接字视为写入网络的文件。
要获取lsof类型的所有侦听TCP端口的列表,请执行以下操作:
$sudo lsof-nP-iTCP-sTCP:听
命令PID用户FD类型设备大小/OFF节点名称
sshd 768根3u IPv4 16112 0t0 TCP*:22(列表)
sshd 768根4u IPv6 16114 0t0 TCP*:22(列表)
httpd 781根4u IPv6 16328 0t0 TCP*:80(列表)
httpd 781根6u IPv6 16336 0t0 TCP*:443(LISTEN)
tinyproxy 800 tinyproxy 0u IPv4 16750 0t0 TCP*:8080(列表)
tinyproxy 805 tinyproxy 0u IPv4 16750 0t0 TCP*:8080(列表)
mysqld 823 mysql 20u IPv6 17479 0t0 TCP*:3306(LISTEN)
纯ftpd 844根4u IPv4 16289 0t0 TCP*:21(LISTEN)
纯ftpd 844根5u IPv6 16290 0t0 TCP*:21(LISTEN)
master 967 root 13u IPv4 17225 0t0 TCP*:25(LISTEN)
master 967 root 103u IPv4 17319 0t0 TCP 127.0.0.1:10025(LISTEN)
dovecot 1001根24u IPv4 18600 0t0 TCP*:995(列表)
dovecot 1001根37u IPv6 18623 0t0 TCP*:993(LISTEN)
httpd 24344 apache 4u IPv6 16328 0t0 TCP*:80(列表)
httpd 24344 apache 6u IPv6 16336 0t0 TCP*:443(LISTEN)
/usr/bin/24911 root 5u IPv4 25208447 0t0 TCP 127.0.0.1:783(LISTEN)
/usr/bin/24911 root 6u IPv6 25208449 0t0 TCP[::1]:783(LISTEN)
垃圾邮件24913根5u IPv4 25208447 0t0 TCP 127.0.0.1:783(列表)
垃圾邮件24913根6u IPv6 25208449 0t0 TCP[::1]:783(列表)
/usr/sbin 24919 amavis 5u IPv4 25208583 0t0 TCP 127.0.0.1:10024(LISTEN)
/usr/sbin 24919 amavis 6u IPv6 25208584 0t0 TCP[::1]:10024(LISTEN)
smtpd 28403 postfix 6u IPv4 17225 0t0 TCP*:25(列表)
smtpd 28403 postfix 7u IPv6 17226 0t0 TCP*:25(列表)
所使用的选项如下:
n
:不要将端口号转换为端口名。
P
:不解析主机名,显示数字地址。
-iTCP-sTCP:听
:仅显示TCP状态为LISTEN的网络文件。
要查找在特定端口(例如端口3306)上侦听的进程,您可以使用:
$sudo lsof-nP-iTCP:3306-sTCP:LISTEN
命令PID用户FD类型设备大小/OFF节点名称
mysqld 823 mysql 20u IPv6 17479 0t0 TCP*:3306(LISTEN)
输出显示MySQL服务器使用端口3306。
了解更多关于
lsof
命令,请参阅其手册页。
使用nmap检查开放端口
Nmap,或
网络映射器
,是一个用于网络探索和安全审计的开源Linux命令行工具。使用nmap,服务器管理员可以快速显示主机和服务,搜索安全问题,并扫描打开的端口。
这个
扫描器
命令可用于检查单个端口或一系列端口是否打开。
以下是如何扫描目标系统上的端口80:
$sudo nmap-p 80 192.168.0.1
192.168.0.1的Nmap扫描报告
主机已启动(0.000073s延迟)。
港口国服务
80/tcp开放http
Nmap完成:0.26秒内扫描1个IP地址(1个主机启动)
扫描目标系统上的端口1到200:
$sudo nmap-p 1-200 192.168.0.1
启动Nmap
6.40
(http:
//nmap.org)于2020-08-21 16:42 EEST
Nmap扫描报告
对于
192.168
.0
1.
主机已启动(
0.0000080
s延迟)。
未显示:
196
封闭端口
港口国服务
21
/tcp开放ftp
22
/tcp开放ssh
25
/tcp开放smtp
80
/tcp开放http
Nmap完成:
1.
IP地址(
1.
主机启动)扫描
在里面
1.45
秒
代码语言:
JavaScript
(
javascript
)
扫描(快速)最常见的端口:
$sudo nmap-F 192.168.0.1
启动Nmap
6.40
(http:
//nmap.org)于2020-08-21 16:44 EEST
Nmap扫描报告
对于
192.168
.0
1.
主机已启动(
0.000014
s延迟)。
未显示:
89
封闭端口
港口国服务
21
/tcp开放ftp
22
/tcp开放ssh
25
/tcp开放smtp
80
/tcp开放http
443
/tcp开放https
465
/tcp开放式smtps
587
/tcp开放提交
993
/tcp开放imaps
995
/tcp开放式pop3
3306
/tcp开放式mysql
8080
/tcp开放http代理
Nmap完成:
1.
IP地址(
1.
主机启动)扫描
在里面
1.46
秒
代码语言:
JavaScript
(
javascript
)
要旨
总之,检查哪些端口是打开的,以及可以从接受这些端口上连接的服务中获得哪些信息,可以为您提供锁定服务器所需的信息。
例如,恶意用户可能会利用机器泄露的任何无关信息来利用已知漏洞或开发新的漏洞。他们想得越少越好。
相关推荐
你是否在寻求对珍贵的照片和视频收藏的更多控制,但对依赖大型公共云服务持谨慎态度?好吧,我正好为你准备好了!让我们来谈谈Immich,这是一个一流、安全、自托管的解决方案,它让您在管理媒体方面占据主导地位。 什么是Immich? Immich是一款免费开源应用程序,深受谷歌照片的启发,旨在为您提供与基于云的照片和视频管理服务类似的功能。不过,有一个转折点——一切都在你的控制之下,在你自己的服务器上。
当天的视频 滚动以继续浏览内容 你有一台无法开机的MacBook或iMac,或者无法通过苹果标志启动?别担心。这很令人沮丧,但通常是可以解决的。 以下是让Mac重新启动所需的所有步骤。只要按顺序完成它们,除非你的Mac在操作系统更新失败后无法启动。在这种情况下,直接跳到步骤8。 MacBook的电源键在哪里? 在你开始之前,确保你知道 如何打开你的Mac . 在较新的MacBook机型上,电源按钮
Epic Games是否停止显示您的游戏库中的游戏?大多数情况下,这是一个小故障,您可以通过重新启动Epic Games Launcher或重新验证您的帐户来修复。 即使这是一个更严重的问题,我们也已经列出了一系列解决方案,以帮助您找回游戏。 1.刷新库 有时,Epic Games Launcher可能会出现同步问题,无法显示新购买的游戏。在这种情况下,您所要做的就是刷新库。在桌面应用程序中,打开
抛弃Windows是相当容易的。只要买一台Mac电脑,花几天时间适应,然后永远不要回头。但对于没有订阅Microsoft 365的Microsoft Office用户来说,再次为Mac购买Office可能是一件昂贵的麻烦事。 当天的视频 滚动以继续浏览内容 如果你在一个运行Excel和Word的传统办公环境中工作,你可能不得不安抚你的同事。但是,如果你已经长大了,仍然需要不时地编辑Office文档
Flatpak在Linux用户和开发人员中越来越受欢迎,因为它有可能简化软件分发,提高安全性,并在不同的Linux分发版中提供一致的应用程序体验。 让我给你举个例子。有时,您可能需要一个较新版本的应用程序,但该应用程序在您的分发版本的存储库中不可用。或者甚至应用程序本身在那里也不可用。 但是,即使您在系统使用的软件包管理器的某个位置找到了此软件包,您也可能无法安装它。为什么? 因为例如,该程序的最
回到顶部