在对网络连接或特定于应用程序的问题进行故障排除时,首先要检查的是系统上实际使用的端口以及在特定端口上侦听的应用程序。
网络端口由其编号、相关的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
)
要旨
总之,检查哪些端口是打开的,以及可以从接受这些端口上连接的服务中获得哪些信息,可以为您提供锁定服务器所需的信息。
例如,恶意用户可能会利用机器泄露的任何无关信息来利用已知漏洞或开发新的漏洞。他们想得越少越好。
相关推荐
在之前的3.3版本(由Liquorix内核6.7.11提供动力)发布三个月后,代号为“pl”的Nitrux3.4终于发布了。它带来了许多更新、错误修复、性能增强和全面的硬件支持,有望提供更强大、更用户友好的体验。 Nitrux 3.4.0的新增功能 最新版本引入了各种更新和新功能,旨在改善用户体验: 更新的组件: Firefox 124.0.1、MauiKit 3.3.0和Nitrux更新工具系统
如果你的手机或平板电脑掉进水里了,别担心,你的设备可能还没有永久受损。但你应该迅速采取行动,防止水损坏内部部件。遵循这些简单的提示,有望挽救你的设备。 不要马上打开湿式电话 哈姆林·罗扎里奥/MakeUseOf 水和电根本不能相处;潮湿的设备可能会短路,甚至会触电。水可能会损坏屏幕,并渗入挡板、屏幕下的插槽和电池内腔。如果处理不当,所有这些情况都会严重损坏您的设备。 因此,如果你的智能手机或平板电
USB—C端口已成为现代Windows笔记本电脑上数据传输、视频输出和充电的标准。虽然这很方便,但当您通过USB—C将笔记本电脑插入电源适配器时,它会感到沮丧,它不会充电。 由于这种收费问题可能有几个原因,所以没有一个放之四海而皆准的解决方案。请放心,遵循这些提示应该让您的Windows笔记本电脑通过USB—C快速充电。 1.确保笔记本电脑支持USB—C充电 笔记本电脑上的USB-C端口并不一定意
GParted(GNOME分区编辑器)是Linux中最著名的GUI分区管理工具之一。与其他广泛使用的Linux应用程序一样,它是一个免费的开源实用程序。用户界面很简单,可以完成任务。 GParted是用C++编写的,作为一个带有GUI的工具,它对任何人来说都相对容易使用。用户可以使用发行版的软件中心在最流行的Linux发行版上安装该应用程序。 然而,这里有一个关键的细节需要记住。与大多数分区管理器
拱门易于安装。本指南向您展示如何使用GNOME Desktop安装Arch Linux,为成功安装铺平道路。 许多Linux用户想尝试Arch Linux,但Arch很难安装和学习的普遍观念阻止了他们。当人们说这很“难”时,他们的意思是这需要努力。他们是对的——你必须花更多的精力安装你的系统,设置一切,并阅读如何做你想做的事情。 然而,作为对你努力的回报,你最终会得到一个你很了解的系统,并按照你想
回到顶部