端口是一种逻辑结构,用于标识特定的进程/应用程序或网络服务的类型,并且在Linux系统上运行的每个网络服务都使用特定的协议(最常见的是TCP(传输控制协议)和UDP(用户数据报协议)以及用于与其他进程或服务进行通信的端口号。

  1. 列出Linux中的所有开放端口

sudo ss -tulpn
sudo netstat -tulpn
-t tcp
-u udp
-l 仅显示LISTEN
-n 显示端口号、否则显示名称 如无-n显示:ssh 有-n显示:22
-p 显示进程名
问题:为什么ss展示某端口的Send-Q有数据而netstat则Send-Q为0,ss与netstat哪个显示更准确?

  1. 实时监控TCP和UDP开放端口

sudo watch netstat -tulpn
sudo watch ss -tulpn

查看端口占用情况

lsof

  1. lsof -i:PORT

netstat

  1. netstat -tnp | grep PORT