如何检查在Linux中打开的端口
时间:2019-11-20 08:53:43 来源:igfitidea点击:
在Linux中,如何查看系统打开了哪些端口?
什么是TCP和UDP端口?
端口是0到65535之间的16位数字。
例如,OpenSSH服务器使用TCP端口号22。
所以22端口号是识别sshd(OpenSSH服务器)进程的一种方法。
端口号
一般情况下
- 常用服务的端口是从" 0"到" 1023"的端口。
- 注册的端口是从" 1024"到" 49151"的端口。
- 动态端口和专用端口是从" 49152"到" 65535"的端口。
注册端口是由互联网号码分配机构(IANA)分配并存储在/etc/services
文件中的网络端口。
查看端口号和服务映射:
cat /etc/services grep -w '80/tcp' /etc/services grep -w '443/tcp' /etc/services egrep -w '22/(tcp|udp)' /etc/services
使用netstat查看Linux中打开的端口
执行以下netstat命令
sudo netstat -tulpn | grep LISTEN
可以看到cupsd进程在地址127.0.0.1打开了TCP端口631
而sshd进程在所有IP地址上打开了TCP端口22:
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:不解析名字
使用ss查看打开的端口
ss命令用于转储套接字统计信息。
语法为:
sudo ss -tulpn
使用lsof命令侦听端口和应用程序
使用lsof命令检查打开的TCP和UDP端口:
sudo lsof -i -P -n | grep LISTEN
其中
- -i:寻找列表端口
- -P:禁止将网络文件的端口号转换为端口名。
- -n:不使用DNS名称
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