如何使用CLI在Linux中检查打开的端口

时间:2020-01-09 14:16:55  来源:igfitidea点击:

如何列出Linux云服务器中所有打开的端口。
如何使用CLI检查Linux中的开放端口?
可以给我命令检查Linux操作系统中打开的端口吗?
为了排除服务器故障并避免安全问题,需要找出开放的TCP和UDP端口。
在本教程中,您将学习不同的Linux命令,以检查Linux中打开的端口以审计和保护服务器。

什么是TCP和UDP端口?

端口不过是0到65535之间的16位数字。
例如,TCP端口号22可能会转发到OpenSSH服务器。
因此,22端口号是识别sshd(OpenSSH服务器)进程的一种方法。

端口号

  • 众所周知的端口是从" 0"到" 1023"的端口。
  • 注册的端口是从" 1024"到" 49151"的端口。
  • 动态端口和专用端口是从" 49152"到" 65535"的端口。

注册端口是由互联网号码分配机构(IANA)分配并存储在/etc/services文件中的网络端口。
使用cat命令或grep命令/egrep命令查看端口号和服务映射:

cat /etc/services
grep -w '80/tcp' /etc/services
grep -w '443/tcp' /etc/services
egrep -w '22/(tcp|udp)' /etc/services

显示IANA分配的应用程序及其端口的列表

检查Linux中打开的端口

在Linux中监视和显示打开的端口的过程如下:

  • 打开Linux终端应用程序
  • 使用ss命令显示Linux中所有打开的TCP和UDP端口。
  • 另一个选择是使用netstat命令列出Linux中的所有端口。
  • 除了ss/netstat外,还可以使用`lsof'命令列出基于Linux的系统上打开的文件和端口。
  • 最后,也可以使用" nmap"命令来检查TCP和UDP端口。

让我们详细查看所有命令和示例。

使用netstat列出打开的端口

执行以下netstat命令

sudo netstat -tulpn | grep LISTEN

例如,cupsd进程打开的TCP端口631和cupsd仅在环回地址(127.0.0.1)上列出。
同样,通过sshd进程打开的TCP端口22和sshd在ssh连接的所有IP地址上列出:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      PID/Program name 
tcp   0      0      127.0.0.1:631           0.0.0.0:*               LISTEN      0          43385      1821/cupsd  
tcp   0      0      0.0.0.0:22              0.0.0.0:*               LISTEN      0          44064      1823/sshd

其中:

  • -t:所有TCP端口
  • -u:所有UDP端口
  • -l:显示监听服务器套接字
  • -p:显示每个套接字所属的程序的PID和名称
  • -n:不解析名字
  • | grep LISTEN:仅通过应用grep命令过滤器显示打开的端口。

使用ss列出打开的端口

ss命令用于转储套接字统计信息。
它允许显示类似于netstat的信息。
它可以显示比其他工具更多的TCP和状态信息。
语法为:

sudo ss -tulpn

使用lsof命令侦听端口和应用程序

让我们运行以下命令,使用lsof命令检查打开的TCP和UDP端口:

sudo lsof -i -P -n | grep LISTEN

其中:

  • -i:寻找列表端口
  • -P:禁止将网络文件的端口号转换为端口名。禁止转换可能会使lsof运行更快。当端口名称查找无法正常工作时,它也很有用。
  • -n:不使用DNS名称
  • | grep LISTEN:再次仅使用grep命令作为过滤器显示处于LISTEN状态的端口。

nmap命令

此外,对于上述命令,可以使用nmap命令,该命令是用于网络探索和安全审核的开源工具。
我们将使用nmap在Linux中查找并列出打开的端口:

$ sudo nmap -sT -O localhost
$ sudo nmap -sU -O 192.168.2.254 ##[ list open UDP ports ]##
$ sudo nmap -sT -O 127.0.0.1 ##[ list open TCP ports ]##
$ sudo nmap -sTU -O 192.168.2.24

输出示例:

Starting Nmap 7.70 ( https://nmap.org ) at 2019-07-22 23:49 IST
Nmap scan report for localhost (127.0.0.1)
PORT    STATE SERVICE
22/tcp  open  ssh
631/tcp open  ipp
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6.32
OS details: Linux 2.6.32
Network Distance: 0 hops
 
OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 2.31 seconds