在对网络连接或特定于应用程序的问题进行故障排除时,首先要检查的是系统上实际使用的端口以及在特定端口上侦听的应用程序。
网络端口由其编号、相关的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
)
要旨
总之,检查哪些端口是打开的,以及可以从接受这些端口上连接的服务中获得哪些信息,可以为您提供锁定服务器所需的信息。
例如,恶意用户可能会利用机器泄露的任何无关信息来利用已知漏洞或开发新的漏洞。他们想得越少越好。
相关推荐
默认情况下,SSH服务器在端口22上运行。但是,有时它在不同的端口中运行。 的 选项可以指定使用时要连接到的端口号 ssh 命令。 例如,如果您想访问在端口2222上侦听的远程服务器,那么只需键入: ssh 2222 使用者 主办 代码语言: CSS ( css ) 如何更改SSH服务器端口 尽管拥有强大而安全的密码是大多数远程服务器用户采取的唯一网络安全步骤,但始终建议使用额外的安全层。 您可以
Hyprland 0.37.0是一个巨大的更新,庆祝该项目两年的增长和发展。对于那些不熟悉的人来说,它是一个动态平铺的Wayland合成器,旨在为Linux桌面提供一个灵活、可扩展和轻量级的环境。 Hyprland的设计考虑到了定制和性能,迎合了那些希望根据自己的需求和偏好定制计算环境的用户。 由于该软件的受欢迎程度显著上升,其主要开发者最近宣布计划改变许可政策。对于那些没有了解到这一消息的人,你
如果您最近注意到Apple Watch跟踪您的步数和锻炼的准确性有所下降,则可能需要进行校准。您应该根据身体的重要指标定期配置Apple Watch的传感器—以下是方法。 1.使用Apple Watch进行测试 首先,明智的做法是在传感器上做一些试验。在Apple Watch上打开健身应用程序,选择 户外跑步然后以稳定的速度慢跑20—30分钟。 然后,将结果与几个月前记录的结果进行比较。推出 健身
如果Siri经常难以识别你的声音,或者你无法让“嘿Siri”正常工作,你可以在苹果设备上重置Siri。这样做可以让你重新训练Siri,更好地识别你的声音。我们会教你怎么做。 重置iPhone或iPad上的Siri 不幸的是,苹果并没有为Siri提供“重置”按钮。然而,您可以在需要时使用iOS/iPadOS设置应用程序中的简单切换来重置Siri。请遵循以下步骤: 打开 设置 iPhone或iPad上
Linux发行版的一个主要优点是它们的包管理系统。Linux上的包管理器允许您自动化软件安装,并只需使用几个命令就完成工作。 与其他包管理器不同,Snap具有良好的依赖管理属性。但有一个警告,Snap包往往非常庞大,消耗大量的磁盘空间。幸运的是,在Linux上清理Snap包很容易。 为什么Snap套餐会很大? 管理软件依赖性一直是Linux包管理器的致命弱点。软件依赖性是指一个软件依赖于其他软件包
回到顶部