在Linux系统中检查运行中的程序及其监听的端口,可以通过以下命令和步骤实现:
ps
命令ps aux | grep <程序名或关键字>
bash
ps aux | grep nginx
top
或 htop
top # 动态查看进程资源占用
htop # 更友好的交互式工具(需安装)
netstat
命令sudo netstat -tulnp
-t
:TCP端口-u
:UDP端口-l
:仅显示监听中的端口-n
:以数字形式显示端口(不解析服务名)-p
:显示进程名/PID(需sudo权限)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1234/sshd
ss
命令(推荐,更高效)sudo ss -tulnp
netstat
类似,但性能更好(现代Linux系统推荐使用)。lsof
命令sudo lsof -i -P -n | grep LISTEN
-i
:显示网络连接-P
:禁用端口到服务名的解析(直接显示端口号)-n
:禁用IP到域名的解析sshd 1234 root 3u IPv4 12345 0t0 TCP *:22 (LISTEN)
# 通过进程名查找(如nginx)
sudo ss -tulnp | grep nginx
# 通过端口号查找(如80端口)
sudo ss -tulnp | grep ':80'
sudo iptables -L -n # 检查iptables规则
sudo firewall-cmd --list-all # 若使用firewalld(CentOS/RHEL)
sudo ufw status # 若使用UFW(Ubuntu)
telnet <IP> <端口> # 测试TCP端口连通性
nc -zv <IP> <端口> # 使用netcat测试(需安装)
curl -v telnet://<IP>:<端口> # 使用curl测试
root
权限。ss
或lsof
确认)。通过以上方法,你可以全面掌握Linux系统中程序与端口的状态。根据需求选择工具,ss
和lsof
通常是首选!